Выноски формы [1,3-7]

Sep 22 2020

Как можно получить цитату в названии, если некоторые ссылки идут подряд, например: код

\cite{ref1,ref3-ref7}

не работает. Однако я вижу это во многих статьях.

Есть какой-нибудь простой способ сделать это?

Скажем, я использую следующий простой код

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

Затем \cite{a, d,e,f,g,h}дает [1,3,4,5,6,7].

Ответы

3 Mico Sep 22 2020 at 08:40

По замыслу, порядок записей в файле bib не имеет значения. Следовательно,

\cite{ref1,ref3-ref7}

не имеет никаких шансов на работу. Фактически, BibTeX выдаст предупреждение о том, что ему не удалось найти запись с ключом ref3-ref7в файле bib.

citeПакет позволяет несколько аргументов в одной \citeинструкции и выполняет сортировку и сжатие (если один инструктирует его не делать). Если citeпакет загружен, то

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

действительно создаст

[1, 3--7]

при условии, что ref2запись также цитируется где-нибудь в документе. (Очевидно, что для того, чтобы этот простой пример работал, я должен предположить, что ref1сквозные ref7будут отсортированы в таком порядке в типовой библиографии.)

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