PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : biblatex, "Standard", JabRef



humpenjack
16-11-2012, 10:03
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

humpenjack
16-11-2012, 18:55
Bin ich der einzige, der Normen in seiner Literatur einfügt und verwendet? Wie macht ihr das sonst? Werden diese anders von euch angegeben? Wäre um jeden Rat dankbar - so ists aktuell irgendwie doof!

u_fischer
16-11-2012, 19:34
Ja biblatex lässt sich erweitern. Aber ob es nötig ist und wenn ja mit wie viel Aufwand kann ich ngesichts deiner mageren Problembeschreibung nicht sagen.

humpenjack
19-11-2012, 11:02
Ich versuche es mal genauer zu beschreiben ... also in nutze JabRef! Dort können z.B. DIN Normen, Eurocodes oder ähnliches im Format "Standard" eingegeben werden. Damit erhalte ich anschließend folgenden Text:


@STANDARD{DIN10452008,
title = {{Tragwerke aus Beton, Stahlbeton und Spannbeton - Teil 1: Bemessung und Konstruktion}},
organization = {Normenausschuss Bauwesen (NABau)},
institution = {Deutsches Institut für Normung e.V.},
author = {{DIN 1045-1}},
year = {2008},
keywords = {Norm}
}

Ich habe einen author bisher eingegeben, damit beim zitieren des Eintrags auch dies entsprechend angegeben wird. Somit erhalte ich ein Format, was fast so aussieht, wie ich es mir wünsche. LaTex gibt mir beim kompilieren dann immer wieder einen Fehler bzw. eine Warnung aus, dass er "Standard" nicht kennt. Meine Überlegung war nun, dass ich diese Normen als Bücher eintrage und den Rest dazu mogel - Sprich Institution und Organisation so zusammenfasse, dass es ordentlich aussieht. Leider sehe ich in JabRef nicht immer sofort all diese Normen, was mich stört. Und richtig gut ist es auch nicht, halt gemogelt.
Leider kann ich nicht einschätzen, ob es sich lohnt biblatex zu variieren oder es gar schon fertig Lösungen dafür gibt. Daher war meine Frage nun, wie ihr es mit Normen und dem Zitieren dieser handhabt.

Ich nutze für die Bibliografie folgende Einstellungen bisher:

\usepackage[
backend=biber,
sortlocale=de_DE,
citestyle=authoryear,
bibstyle=authoryear,
firstinits=true, %Vornamen abkürzen - es erzeugt conflicting options
sorting=nyvt,
isbn=false,
abbreviate=false,
url=false]{biblatex}

Ich hoffe ich konnte mein Problem genauer erläutern - vielen Dank für die Unterstützung! Grüße

Lilliane
19-11-2012, 15:05
Hallo humpenjack,

hab leider auch keine Antwort auf Deine Frage, würd aber gerne eine Antwort kennen ;)

Dafür hab ich eine andere Frage an Dich: Wie kriegst Du es hin, dass JabRef @STANDARD akzeptiert? Bei mir wird daraus direkt ein @OTHER. @REFERENCE geht und ist imho für Normen gut geeignet.

VG

Lilly

humpenjack
19-11-2012, 15:51
Hallo Lilly,
das läuft automatisch, JabRef Version 2.8.1 ... LaTex macht da wohl irgendwas drauß, vllt auch "other". Exportierst du deine Daten vllt irgendwie? Bei mir liest LaTex direkt aus der *.bib heraus!
@REFERENCE bietet mir JabRef gar nicht an ... :confused:

Viele Grüße, Jakob

u_fischer
19-11-2012, 18:10
Ich versuche es mal genauer zu beschreiben

Eine genaue Beschreibung wäre ein lauffähiges Minimalbeispiel.

Ansonsten:
http://tex.stackexchange.com/questions/65637/how-to-cite-a-standard-iso-etc-in-biblatex

Lilliane
20-11-2012, 10:29
Hallo Lilly,
das läuft automatisch, JabRef Version 2.8.1 ... LaTex macht da wohl irgendwas drauß, vllt auch "other". Exportierst du deine Daten vllt irgendwie? Bei mir liest LaTex direkt aus der *.bib heraus!
@REFERENCE bietet mir JabRef gar nicht an ... :confused:

Viele Grüße, Jakob

In biblatex.pdf steht STANDARD unter 2.1.3 Unsupported Types:

The types in this section are similar to the custom types @custom[a-f], i.e., the standard bibliography styles provide no support for these types. When using the standard styles, they will be treated as @misc entries.

Das siehst Du auch im log-file:

Package biblatex Warning: No driver for entry type 'standard'.
(biblatex) Using fallback driver on input line 118.

Die Variante REFERENCE bietet JabRef an, wenn unter
Optionen > Einstellungen > Erweitert
der Haken bei "BibLaTeX-Modus" (ganz unten) gesetzt ist. Dann gibt es allerdings kein STANDARD mehr. Für die Norm-Zitier-Frage bringt weder STANDARD noch REFERENCE etwas, weil beide keine sinnvolle Norm-Zitierweisen liefern.

Ich bastel mal ein MB für Norm-Zitate, damit wir eine bessere Grundlage haben.

VG

Lilly

Lilliane
20-11-2012, 12:11
Hier mal ein Beispiel zu Norm-Zitaten. Die biblatex-Optionen von humpenjack hab ich fast alle auskommentiert (wegen Options-Clash und um das Standard-Verhalten besser darstellen zu können):


\documentclass[bibliography=totoc]{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{xcolor}

\usepackage{filecontents}
\begin{filecontents}{isonorm.bib}
@STANDARD{ISO12345-1,
title = {Haustiere},
organization = {ISO},
url = {www.iso.org},
author = {{irgendein ISO-Komitee}},
number = {{ISO 12345-1:2005}},
sortkey = {{ISO 12345-1:2005}},
year = {2005},
address = {Genf}
}
\end{filecontents}
\addbibresource{isonorm.bib}

\begin{document}

\section*{Norm-Zitat ohne TeX-Code-Schnipsel für STANDARD}

\verb|\cite{ISO12345-1}| liefert: \textcolor[rgb]{0.65,0.16,0}{\cite{ISO12345-1}}

\verb|\cite*{ISO12345-1}| liefert: \textcolor[rgb]{0.65,0.16,0}{\cite*{ISO12345-1}}

\subsection*{gewünschte Zitier-Ausgabe:}

\textcolor[rgb]{0,0,1}{ISO 12345-1}\\
oder\\
\textcolor[rgb]{0,0,1}{ISO 12345-1:2005}\\
d. h. Zitat ohne die zusätzliche (überflüssige) zweite Jahreszahl

\textcolor[rgb]{0.65,0.16,0}{\printbibliography}

\subsection*{gewünschte Bibliographie-Ausgabe}

\textcolor[rgb]{0,0,1}{ISO 12345-1:2005. \textit{Haustiere.} Genf: ISO. \textsc{url}: \url{www.iso.org}}
\\
ohne die zusätzliche (überflüssige) zweite Jahreszahl in runden Klammern
\end{document}

Ergebnis: isonorm1.pdf.

Ausgabe (Zitat & Eintrag):
irgendein ISO-Komitee 2005
irgendein ISO-Komitee (2005). Haustiere. Genf: ISO. url: www.iso.org.

Anschließend habe ich den Code-Schnipsel zur STANDARD-Definition von tex.exchange.com (http://tex.stackexchange.com/questions/65637/how-to-cite-a-standard-iso-etc-in-biblatex) (danke Ulrike!) eingefügt:


\documentclass[bibliography=totoc]{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{xcolor}

\usepackage{filecontents}
\begin{filecontents}{isonorm.bib}
@STANDARD{ISO12345-1,
title = {Haustiere},
organization = {ISO},
url = {www.iso.org},
author = {{irgendein ISO-Komitee}},
number = {{ISO 12345-1:2005}},
sortkey = {{ISO 12345-1:2005}},
year = {2005},
address = {Genf}
}
\end{filecontents}
\addbibresource{isonorm.bib}
\DeclareDatamodelEntrytypes{standard}
\DeclareDatamodelEntryfields[standard]{type,number}
\DeclareBibliographyDriver{standard}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\usebibmacro{author}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit\newblock
\printfield{number}%
\setunit{\addspace}\newblock
\printfield[parens]{type}%
\newunit\newblock
\usebibmacro{location+date}%
\newunit\newblock
\iftoggle{bbx:url}
{\usebibmacro{url+urldate}}
{}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\usebibmacro{related}%
\usebibmacro{finentry}}

\begin{document}

\section*{Norm-Zitat mit TeX-Code-Schnipsel für STANDARD}

\verb|\cite{ISO12345-1}| liefert: \textcolor[rgb]{0.65,0.16,0}{\cite{ISO12345-1}}

\verb|\cite*{ISO12345-1}| liefert: \textcolor[rgb]{0.65,0.16,0}{\cite*{ISO12345-1}}

\subsection*{gewünschte Zitier-Ausgabe:}

\textcolor[rgb]{0,0,1}{ISO 12345-1}\\
oder\\
\textcolor[rgb]{0,0,1}{ISO 12345-1:2005}\\
d. h. Zitat ohne die zusätzliche (überflüssige) zweite Jahreszahl

\textcolor[rgb]{0.65,0.16,0}{\printbibliography}

\subsection*{gewünschte Bibliographie-Ausgabe}

\textcolor[rgb]{0,0,1}{ISO 12345-1:2005. \textit{Haustiere.} Genf: ISO. \textsc{url}: \url{www.iso.org}}
\\
ohne die zusätzliche (überflüssige) zweite Jahreszahl in runden Klammern
\end{document}

Ergebnis: isonorm2.pdf.

Ausgabe (Zitat & Eintrag):
irgendein ISO-Komitee 2005
irgendein ISO-Komitee (2005). Haustiere. ISO 12345-1:2005. Genf. url: www.iso.org.

Der zusätzliche number-Eintrage "ISO 12345-1:2005" wird jetzt angezeigt, nur leider an der falschen Stelle (hinter dem title statt davor).

Wenn ich \printfield{number} und \usebibmacro{author} vertausche, steht die Nummer vorne:

\documentclass[bibliography=totoc]{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{xcolor}

\usepackage{filecontents}
\begin{filecontents}{isonorm.bib}
@STANDARD{ISO12345-1,
title = {Haustiere},
organization = {ISO},
url = {www.iso.org},
author = {{irgendein ISO-Komitee}},
number = {{ISO 12345-1:2005}},
sortkey = {{ISO 12345-1:2005}},
year = {2005},
address = {Genf}
}
\end{filecontents}
\addbibresource{isonorm.bib}
\DeclareDatamodelEntrytypes{standard}
\DeclareDatamodelEntryfields[standard]{type,number}
\DeclareBibliographyDriver{standard}{%
\usebibmacro{bibindex}%
\usebibmacro{begentry}%
\printfield{number}%
%\usebibmacro{author}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit\newblock
%\printfield{number}%
\usebibmacro{author}%
\setunit{\addspace}%\newblock
%\printfield[parens]{type}%
\newunit\newblock
\usebibmacro{location+date}%
\newunit\newblock
\iftoggle{bbx:url}
{\usebibmacro{url+urldate}}
{}%
\newunit\newblock
\usebibmacro{addendum+pubstate}%
\setunit{\bibpagerefpunct}\newblock
\usebibmacro{pageref}%
\newunit\newblock
\usebibmacro{related}%
\usebibmacro{finentry}}

\begin{document}

\section*{Norm-Zitat mit verändertem TeX-Code-Schnipsel für STANDARD}

\verb|\cite{ISO12345-1}| liefert: \textcolor[rgb]{0.65,0.16,0}{\cite{ISO12345-1}}

\verb|\cite*{ISO12345-1}| liefert: \textcolor[rgb]{0.65,0.16,0}{\cite*{ISO12345-1}}

\subsection*{gewünschte Zitier-Ausgabe:}

\textcolor[rgb]{0,0,1}{ISO 12345-1}\\
oder\\
\textcolor[rgb]{0,0,1}{ISO 12345-1:2005}\\
d. h. Zitat ohne die zusätzliche (überflüssige) zweite Jahreszahl

\textcolor[rgb]{0.65,0.16,0}{\printbibliography}

\subsection*{gewünschte Bibliographie-Ausgabe}

\textcolor[rgb]{0,0,1}{ISO 12345-1:2005. \textit{Haustiere.} irgendein ISO-Komitee. Genf: ISO. \textsc{url}: \url{www.iso.org}}
\\
ohne die zusätzliche (überflüssige) zweite Jahreszahl in runden Klammern
\end{document}

Ergebnis: isonorm3.pdf.

Ausgabe (Zitat & Eintrag):
irgendein ISO-Komitee 2005
ISO 12345-1:2005. Haustiere. irgendein ISO-Komitee (2005). Genf. url: www.iso.org.

Damit bleiben noch folgende Baustellen:

Zitieren des Inhalts vom number-Eintrag (ISO 12345-1:2005) statt author (irgendein ISO-Komitee)
eingeklammerte Jahreszahl hinter der author-Angabe soll weg


Sehr schön wäre es, wenn die Jahreszahl-Angabe statt in runden Klammern hinter author ohne Klammern mit Doppelpunkt hinter number eingefügt würde, um doppelte Einträge in der Datenbank zu vermeiden. Also statt
number. title. author (year). location.
so etwas wie
number:year. title. author. location.
Dann würde die Norm-Nummer ohne Jahresangabe eingegeben.

VG

Lilly

Lilliane
22-11-2012, 12:30
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 (mirror.ctan.org/macros/latex/contrib/biblatex/doc/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




\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/questions/65637/how-to-cite-a-standard-iso-etc-in-biblatex
http://tex.stackexchange.com/questions/52369/show-only-the-last-two-year-digits-in-biblatex-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 (http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=35484) und DIN EN ISO 1234:1998-02 (http://www.beuth.de/de/norm/din-en-iso-1234/3360492).

Mag da vielleicht noch jemand anderes seine/ihre Meinung zu kundtun?

Jakob, ist das für Dich eine brauchbare Lösung?

VG

Lilly