Zitieraufrufe der Form [1,3-7]

Sep 22 2020

Wie man ein Zitat als das im Titel erhalten kann, wenn einige Referenzen aufeinander folgen, zum Beispiel: der Code

\cite{ref1,ref3-ref7}

funktioniert nicht. Ich sehe dies jedoch in vielen Zeitungen.

Gibt es eine einfache Möglichkeit, dies zu tun?

Angenommen, ich verwende den folgenden einfachen Code

\documentclass{article}
\begin{document}

\cite{a, d,e,f,g,h}

\begin{thebibliography}{99}
\bibitem{a} Ref1
\bibitem{b} Ref2
\bibitem{d} Ref3
\bibitem{e} Ref4
\bibitem{f} Ref5
\bibitem{g} Ref6
\bibitem{h} Ref7
\end{thebibliography}

\end{document}

Dann \cite{a, d,e,f,g,h}ergibt [1,3,4,5,6,7].

Antworten

3 Mico Sep 22 2020 at 08:40

Die Reihenfolge der Einträge in der Bib-Datei hat standardmäßig keine Bedeutung. Deshalb,

\cite{ref1,ref3-ref7}

hat überhaupt keine Chance zu arbeiten. Tatsächlich gibt BibTeX eine Warnung aus, dass kein Eintrag mit Schlüssel ref3-ref7in der Bib-Datei gefunden werden konnte.

Das citePaket erlaubt mehrere Argumente in einer einzigen \citeAnweisung und führt eine Sortierung und Komprimierung durch (es sei denn, man weist es an, dies nicht zu tun). Wenn das citePaket geladen ist, dann

\cite{ref1,ref3,ref4,ref5,ref6,ref7}

wird in der Tat erzeugen

[1, 3--7]

solange der ref2Eintrag auch irgendwo im Dokument zitiert wird. (Damit dieses einfache Beispiel funktioniert, muss ich natürlich davon ausgehen, dass ref1Through ref7in der gesetzten Bibliographie in dieser Reihenfolge sortiert wird.)

\documentclass{article}
\begin{filecontents*}[overwrite]{mybib.bib}
@misc{a,author="A",title="Thoughts",year=3001}
@misc{b,author="B",title="Thoughts",year=3002}
@misc{c,author="C",title="Thoughts",year=3003}
@misc{d,author="D",title="Thoughts",year=3004}
@misc{e,author="E",title="Thoughts",year=3005}
@misc{f,author="F",title="Thoughts",year=3006}
@misc{g,author="G",title="Thoughts",year=3007}
\end{filecontents*}  

\usepackage{cite}
\bibliographystyle{plain}

\begin{document}
\cite{b}
\cite{a,c,d,e,f,g}
\bibliography{mybib}
\end{document}