\cites
Gibt es einen besonderen Grund, warum man für mehr als eine Verwendungbibtex-key
anstelle von verwenden muss\cite
?
Unter Berücksichtigung des folgenden MWE:
\documentclass{article}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}
\let\cite\cites
\begin{document}
\cite[12]{westfahl:space}[e.g.][23]{angenendt}
\cites[12]{westfahl:space}[e.g.][23]{angenendt}
\printbibliography
\end{document}
Mit \let\cite\cites
habe ich kein Problem damit, bibtex-key
dem \cite
-Befehl ein weiteres hinzuzufügen, daher macht es nichts, wenn ich das s
in \cites
für mehrere vergesse bibtex-keys
.
Wenn dies sicher ist, könnte es sich dann nicht um ein Standardverhalten von handeln biblatex
?
Antwort1
Natürlich ist das eine Designentscheidung und wir können den ursprünglichen Betreuer des Pakets nicht fragen, da er nicht mehr aktiv ist. Soweit ich das beurteilen kann, ist die Trennung zwischen dem normalen Cite-Befehl und dem Multicite-Befehl (mits
) war von Anfang an dabei.
Das Verhalten des \cite
Befehls biblatex
stimmt weitgehend mit dem Verhalten dieses Befehls in anderen Paketen überein. Die Multicite-Versionen bieten jedoch zusätzliche Funktionen, die nicht viele (keine?) andere Pakete bieten.
Die Syntax der Multicite-Befehle ist vollständig abwärtskompatibel mit der der Standard-Cite-Befehle. \let\cite\cites
Es treten also nicht mehr Probleme auf, als wenn Sie \cites
ausschließlich verwenden und sich nie erlauben würden, zu verwenden \cite
. (Denken Sie daran, \let
alle Befehle auf ihre Multicite-Gegenstücke zu übertragen, Sie möchten keine Inkonsistenzen.)
Ich würde jedoch dringend davon abraten, Multicite zur Norm zu machen. Das Verhalten der Cite- und Multicite-Befehle in Biblatex ist so bekannt und etabliert, dass es nicht geändert werden sollte. Schließlich sind die Multicite-Befehle aufgrund ihrer Argumentstruktur viel ausgefeilter und komplizierter, sodass es besser ist, sie nur bei Bedarf und nicht als Standard zu verwenden.
Die für den Multi-Cite-Befehl erforderliche Einrichtung ist offensichtlich etwas komplizierter als bei den Standardbefehlen. Deshalb definieren wir zuerst die Standardbefehle und dann die Multi-Cite-Befehle mit
\DeclareMultiCiteCommand{\cites}{\cite}{\multicitedelim}
Ich gehe davon aus, dass einer der Gründe, warum die Trennung beibehalten wurde, darin besteht, dass man zunächst einen einfachen Cite-Befehl definieren und diesen dann mit einer komplizierten Multicite-Struktur ergänzen kann. Dies ermöglicht einen mehrschichtigen Ansatz.
Der zwingendste Grund für die Trennung zwischen beiden ist jedoch, dass der Multicite-Befehl viel komplizierter und anfälliger ist. Die Natur des Multicite-Befehls bedingt, dass er die Anzahl der Argumente nicht im Voraus kennt. Er muss also im Voraus nach Dingen suchen, die wie Argumente aussehen. Obwohl dies recht robust ist, gibt es Situationen, in denen ein stabilerer Befehl, der die Anzahl seiner Argumente kennt, vorzuziehen ist.
Zum Beispiel
\cite[pre][post]{key} ["this"]
funktioniert, weil der \cite
bereits alle seine Argumente gelesen hat und daher weiß, dass dies ["this"]
nicht sein Argument sein kann. Aber in
\cites[pre][post]{key} ["this"]
\cites
weiß nicht, dass dies nicht eines seiner Argumente ist. Sie müssen ein oder ["this"]
einfügen, um ihm mitzuteilen, dass das Scannen beendet werden soll: .\relax
\
\cites[pre][post]{key}\ ["this"]