Komma im Feld "Journal"

Erstellung eines Literaturverzeichnisses mit BibTeX, Biber, BibLaTeX und Co.


Kobalt
Forum-Anfänger
Forum-Anfänger
Beiträge: 18
Registriert: So 22. Jan 2012, 20:47

Komma im Feld "Journal"

Beitrag von Kobalt »

Meine Frage ist vermutlich schon in den Weiten des Internets beantwortet, aber ich konnte die Nadel im Heuhaufen bisher leider nicht finden. Also frage ich nochmal direkt danach.

Als Beispiel hier ein Artikel-Eintrag für Biblatex:
@Article{mustermann2012,
author = {Mustermann, M.},
journal = {J. Chem. Soc., Chem. Commun.},
year = {2012},
volume = {100},
pages = {1000--1005},
}
Es geht um den dick hervorgehobenen Eintrag für das Feld "journal". Es gibt eine Reihe von Zeitschriften, die ein Komma im Namen enthalten. Wenn ich das Komma so wie gezeigt einfüge, dann wird es einfach ignoriert und in der Ausgabe taucht es nicht auf. Meine Recherche hat ergeben, dass es einen Befehl "\addcomma" für Literaturverzeichnisse gibt. Setze ich diesen an die Stelle des Kommas so ein:

journal = {J. Chem. Soc. \addcomma Chem. Commun.},

dann rutschen "Soc." und das zweite "Chem." zusammen ("Soc.Chem."), aber mehr passiert leider auch nicht.

Ich benutze Biblatex mit Biber-Backend und einem speziellen Style.
(\usepackage[backend=biber, style=chem-angew]{biblatex})

Vielleicht kann mir hier jemand helfen.

Danke schonmal im Voraus.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Nicht die geringste Ahnung, wieso das Komma verschwindet. »journal« als Alias für »journaltitle« ist ein »literal field«, sollte also nach meinem Verständnis wörtlich (inkl. der Satzzeichen) ausgegeben werden.

Es ist jedenfalls möglich, das Komma durch ein Makro einzufügen. Dabei gibt es mehrere Möglichkeiten, wie man verhindert, dass das Leerzeichen verschluckt wird:
\documentclass{article}
\usepackage[ngerman]{babel}
\usepackage[babel]{csquotes}
\usepackage{xspace}

\begin{filecontents}{\jobname.bib}
@Article{mustermann2012,
  author  = {Mustermann, M.},
  journal = {J. Chem. Soc.\bibcomma\ Chem. Commun.},
  year    = {2012},
  volume  = {100},
  pages   = {1000--1005},
}
@Article{musterfrau2012,
  author  = {Musterfrau, M.},
  journal = {J. Chem. Soc.\BibComma Chem. Commun.},
  year    = {2012},
  volume  = {100},
  pages   = {1000--1005},
}
\end{filecontents}
\usepackage[backend=biber, style=chem-angew]{biblatex}
\addbibresource{\jobname.bib}

\newcommand\bibcomma{,}
\newcommand\BibComma{,\xspace}

\begin{document}

\cite{mustermann2012,musterfrau2012}

\printbibliography

\end{document}
Gruß
Clemens
Paketauthor

Kobalt
Forum-Anfänger
Forum-Anfänger
Beiträge: 18
Registriert: So 22. Jan 2012, 20:47

Beitrag von Kobalt »

cgnieder hat geschrieben:Es ist jedenfalls möglich, das Komma durch ein Makro einzufügen. Dabei gibt es mehrere Möglichkeiten, wie man verhindert, dass das Leerzeichen verschluckt wird:
Danke sehr, das funktioniert!
\newcommand\bibcomma{,}
in Verbindung mit
journal = {J. Chem. Soc.\bibcomma\ Chem. Commun.},
funktioniert einwandfrei, während
\newcommand\BibComma{,\xspace}
in Verbindung mit
 journal = {J. Chem. Soc.\BibComma Chem. Commun.},
zu fehlern bei der Kompilierung führt.

Alternativ kann man aber folgendes benutzen:
\newcommand\bibcomma{, }
in Verbindung mit
 journal = {J. Chem. Soc.\bibcomma Chem. Commun.},
So geht es auch. Das Leerzeichen ist also direkt und nicht über einen Steuerbefehl eingefügt.

Dass ich einen Fehler bei der Benutzung von "\xspace" erhalte, habe ich erst darauf zurückgeführt, dass man in der .bib-Datei gar keine Steuerbefehle einsetzen kann (z.B. auch nicht \AA für Å), was mir schon bekannt war und den gleichen Fehler ergibt wie "\xspace". Warum ich keine Steuerbefehle in der .bib-Datei verwenden kann, weiß ich nicht, vielleicht wegen des Styles "angew-chem". Steuerbefehle funktionieren im Text der .tex-Datei normalerweise einwandfrei, aber mit "\xspace" erhalte ich auch dort immer den Fehler: "Unknown control sequence."

Nichtsdestotrotz ist mein Problem gelöst, danke nochmal!

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Kobalt hat geschrieben:Dass ich einen Fehler bei der Benutzung von "\xspace" erhalte, habe ich erst darauf zurückgeführt, dass man in der .bib-Datei gar keine Steuerbefehle einsetzen kann (z.B. auch nicht \AA für Å), was mir schon bekannt war und den gleichen Fehler ergibt wie "\xspace". Warum ich keine Steuerbefehle in der .bib-Datei verwenden kann, weiß ich nicht, vielleicht wegen des Styles "angew-chem". Steuerbefehle funktionieren im Text der .tex-Datei normalerweise einwandfrei, aber mit "\xspace" erhalte ich auch dort immer den Fehler: "Unknown control sequence."
Mein Beispiel lief bei mir fehlerfrei. Hast Du
\usepackage{xspace}
in die Präambel eingefügt?

Gruß
Clemens
Paketauthor

Kobalt
Forum-Anfänger
Forum-Anfänger
Beiträge: 18
Registriert: So 22. Jan 2012, 20:47

Beitrag von Kobalt »

... das habe ich übersehen. Mein Fehler, sorry.

Allerdings erschließt sich mir nicht ganz, weshalb ich den Befehl benutzen sollte, wenn ich doch einfach ein normales Leerzeichen in der Definition einfügen kann.

Auf der Internetseite von xspace steht, dass es bei Makrodefinitionen das Leerzeichen einfügt, weil dieses oft verschwindet. So war es ja auch bei mir, wenn ich das Komma nur mit
\newcommand\bibcomma{,}
definiert habe. Wenn ich aber
\newcommand\bibcomma{, }
benutze, ist das Leerzeichen ja auch da. Also wozu xspace?

Ist zwar etwas offtopic, aber wäre wirklich interessant zu wissen.

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

\xspace
fügt einen Leerraum ein, falls kein anderes Zeichen direkt auf den Befehl folgt.

Vergleiche:
\documentclass{article}
\usepackage{xspace}
\newcommand\foo{foo }
\newcommand\baz{baz\xspace}
\begin{document}
\foo Text und \foo, Text

\baz Text und \baz, Text
\end{document}
Zugegeben, in diesem Fall ist es wohl unnötig.
Clemens
Paketauthor

Kobalt
Forum-Anfänger
Forum-Anfänger
Beiträge: 18
Registriert: So 22. Jan 2012, 20:47

Beitrag von Kobalt »

Danke, habe es jetzt verstanden.

Grüße

Antworten