
Как можно получить ссылку, указанную в заголовке, если некоторые ссылки идут подряд, например: код
\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].
решение1
По замыслу, порядок записей в файле 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}