Komma im Feld "Journal"

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: Komma im Feld "Journal"

von Kobalt » So 12. Feb 2012, 17:30

Danke, habe es jetzt verstanden.

Grüße

von cgnieder » So 12. Feb 2012, 16:50

\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.

von Kobalt » So 12. Feb 2012, 16:45

... 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.

von cgnieder » So 12. Feb 2012, 16:34

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ß

von Kobalt » So 12. Feb 2012, 16:27

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!

von cgnieder » Sa 11. Feb 2012, 23:29

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ß

Komma im Feld "Journal"

von Kobalt » Di 7. Feb 2012, 15:05

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.

Nach oben