biblatex, "Standard", JabRef
Hallo,
ich habe in meinem Literaturverzeichnis Normen und Regelwerke angegeben. Diese habe ich mit JabRef wie alle anderen Einträge verfasst - dort unter dem Entrytype: "Standard". Jetzt gibt mir LaTex beim kompilieren an, dass er diesen type "Standard" nicht kennt, gibt die Norm aber dennoch aus. Verwendet dafür wohl einen anderen.
Wie kann ich diesen type nun mit einbringen bzw. um diesen erweitern, weiß da jemand was von euch?
Beste Grüße, Jakob
Normen mit biblatex+biber
Nachdem sich irgendwie niemand für dieses Thema begeistern konnte, hab ich selbst was gebastelt. Ob das sauberer Code ist, kann ich nicht sagen. Es funktioniert einfach so, wie ich das will ;)
Hier die Beschreibung:
Probleme bei Normen:
- Der Eintrags-Typ STANDARD ist zwar in biblatex definiert, gehört aber zu den unsupported types (s. 2.1.3 biblatex.pdf). Einträge in der bib-Datei mit @STANDARD werden deshalb automatisch in ein @MISC umgewandelt.
- Standardmäßig wird ein Literatureintrag nach dem Autor sortiert. Bei Normen gibt es i. A. keinen Autor; Normen werden von einer Organisation im Namen der Organisation veröffentlicht (z. B. ISO, DIN, ASTM).
- Die übliche Zitierweise mit \cite{<key>} (z. B. \cite{Isphording2001}) liefert Autor Jahr (bei der authoryear-Option). Bei Normen sollte das Zitat unabhängig von den anderen Einstellungen beim Zititerstil immer Normbezeichnung:Jahr oder nur Normbezeichnung sein.
Eine Lösung für einen neuen Typ @NORM
Zunächst wird ein neuer Typ @NORM definiert. (Das geht genauso mit @STANDARD, habe ich aber nicht gemacht, um keine Konflikte mit späteren biber-entry types zu bekommen, die vielleicht irgendwann einmal direkt einen @STANDARD-entry type bereitstellen.) Anstelle des author-Eintrags wird für die Norm der label-Eintrag in der Bibliografie verwendet.
Anschließend wird ein neuer Zitierbefehl \citenorm definiert, der Normbezeichnung:Jahr ausgibt (z. B. \citenorm{DINISO12345-1} DIN ISO 12345-1:2005).
bib-Einträge, die @NORM in der Bibliografie anzeigen kann:
- label notwendig
- sortkey Angabe mit doppelter Klammer: {{...}} notwendig für die korrekte Sortierung
- year notwendig
- title
- organization
- location
- publisher
- pageref
- related
- isbn
- url
- urldate
- addendum
- pubstate
Code:
\documentclass[bibliography=totoc,parskip=half]{scrartcl}
\usepackage{selinput}
\SelectInputMappings{
adieresis={ä},
germandbls={ß},
Euro={€}
}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage[backend=biber,%
%sortlocale=de_DE,%
citestyle=authoryear,%
bibstyle=authoryear,%
%firstinits=true,%
%sorting=nyvt,%
%isbn=false,%
%abbreviate=false,%
%url=false%
]{biblatex}
\usepackage[german=quotes]{csquotes}
\usepackage{filecontents}
\begin{filecontents}{norm1.bib}
@NORM{DIN1234,
label = {DIN EN ISO 1234:1998-02},
title = {Splinte},
organization = {Deutsches Institut f{\"u}r Normung (DIN)},
sortkey = {{DIN EN ISO 1234:1998-02}},
url = {www.din.de},
publisher = {Beuth Verlag},
year = {1998-02},
isbn = {978-5555-6883},
address = {Berlin},
addendum = {Noch etwas Text},
pubstate = {zur{\"u}ckgezogen}
}
\end{filecontents}
\addbibresource{norm1.bib}
\DeclareDatamodelEntrytypes{norm}
\DeclareDatamodelEntryfields[norm]{
label,
sortkey,
year
}
\DeclareBibliographyDriver{norm}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\printfield{label}%
\addcolon
\printfield{year}%
\newunit\newblock
\printfield{title}%
\newunit\newblock
\printlist{organization}%
\newunit\newblock
\printlist{location}%
\iflistundef{publisher}
{\setunit*{\addcomma\space}}
{\setunit*{\addcolon\space}}%
\printlist{publisher}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\usebibmacro{related}%
\newunit\newblock
\printfield{isbn}%
\newunit
\iftoggle{bbx:url}
{\usebibmacro{url+urldate}}
{}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\usebibmacro{finentry}}
\newcommand*{\citenorm}{\addspace}
\DeclareCiteCommand{\citenorm}{}{\printfield{label}}{}{\addcolon\printfield{year}}
\begin{document}
\verb|\cite{DIN1234}| liefert falsche Ausgabe (Leerzeichen zwischen Normbezeichnung und Jahreszahl):\\ \cite{DIN1234}
\verb|\citenorm{DIN1234}| liefert richtige Ausgabe:\\ \citenorm{DIN1234}
\printbibliography
\end{document}
Verwendete Quellen und Code-Schnipsel:
http://www.ehow.com/how_6956643_cite-iso-standards.html
http://www.garshol.priv.no/blog/47.html
http://tex.stackexchange.com/questio...tc-in-biblatex
http://tex.stackexchange.com/questio...latex-citation
http://www.ctan.org/pkg/biblatex
Warum in den englischen Threads auf tex.stackexchange.com ein Leerzeichen zwischen dem Doppelpunkt und der Jahreszahl eingefügt wird (ISO 1234: 1998), erschließt sich mir nicht. Bei den offiziellen ISO- und DIN-Normbezeichnungen steht die Jahreszahl direkt hinter der Normbezeichungs, s. z. B. ISO 12345:2002 und DIN EN ISO 1234:1998-02.
Mag da vielleicht noch jemand anderes seine/ihre Meinung zu kundtun?
Jakob, ist das für Dich eine brauchbare Lösung?
VG
Lilly