
Ich habe ein Problem entdeckt, wenn ich BibLaTeX
' cite-style apa
zusammen mit mhchem
der Bib-Datei verwende, die chemische Formeln mit tiefgestellten/hochgestellten Ziffern enthält. Der MWE ist
\documentclass{article}
\usepackage[version=4]{mhchem}
\usepackage[style=apa, backend=biber]{biblatex}
%\usepackage[style=authoryear, backend=biber]{biblatex}
\addbibresource{Bib.bib}
\begin{document}
This is a citation with only simple chemistry: \parencite{Cite1}.
This is a citation with superscript: \parencite{Cite2}.
\printbibliography
\end{document}
Cite1 enthält nur eine einfache chemische Formel und funktioniert einwandfrei:
@Article{Cite1,
author = {Author, A.},
date = {2020},
journaltitle = {A Journal},
title = {A title with just some \ce{Mg/Ca} chemistry},
issue = {2},
pages = {1--4},
volume = {1},
timestamp = {2020-03-27},
}
Zitat 2 enthält hochgestellte Zeichen und führt zu 14 Fehlern:
@Article{Cite2,
author = {Author, B.},
date = {2020},
journaltitle = {Another Journal},
title = {A title with some more complicated \ce{\delta^{18}O} chemistry and a longer title},
issue = {1},
pages = {2--6},
volume = {8},
timestamp = {2020-03-27},
}
Das Problem scheint zu sein, dass BibLaTeX
in den Mathmode gewechselt wird, obwohl \ce
das verhindert werden sollte:
Ein einfaches \protect
, wie in {\protect\ce{\delta^{18}O}}
, löst dieses Problem, schafft aber ein neues, da das „O“ jetzt klein geschrieben wird.
Ich bräuchte die etwas umständliche Variante, {\protect\ce{\delta^{18}\MakeUppercase{O}}}
um endlich das richtige Ergebnis zu bekommen:
Da die eigentliche Bib-Datei viele Einträge enthält, möchte ich diese verständlicherweise nicht alle manuell ändern. Kurioserweise funktioniert es mit dem authoryear
-Stil einwandfrei, das Problem ist anscheinend apa
-spezifisch. Ich wäre für alle Vorschläge, wie ich dieses Problem lösen kann, sehr dankbar.
Antwort1
biblatex-apa
wendet die Groß- und Kleinschreibung von Sätzen mit an \MakeSentenceCase*
. Dieses Makro ist recht komplex und kann grundsätzlich nur einfachen Text verarbeiten, ohne unterbrochen zu werden.
Wenn Ihre Titel komplexe Makros enthalten, müssen Sie diese mit Klammern verbergen/schützen.
Die komplexen Regeln des Zahnspangenschutzes erfordernzweiKlammernpaare, wenn der Inhalt in den Klammern mit einem Makro beginnt und Sie die Großschreibung beibehalten möchten.
\documentclass{article}
\usepackage[version=4]{mhchem}
\usepackage[style=apa, backend=biber]{biblatex}
\begin{filecontents}{\jobname.bib}
@Article{Cite1,
author = {Author, A.},
date = {2020},
journaltitle = {A Journal},
title = {A Title with Just Some {{\ce{Mg/Ca}}} Chemistry},
issue = {2},
pages = {1--4},
volume = {1},
}
@Article{Cite2,
author = {Author, B.},
date = {2020},
journaltitle = {Another Journal},
title = {A Title with Some More Complicated {{\ce{\delta^{18}O}}}
Chemistry and a Longer Title},
issue = {1},
pages = {2--6},
volume = {8},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
This is a citation with only simple chemistry: \parencite{Cite1}.
This is a citation with superscript: \parencite{Cite2}.
\printbibliography
\end{document}