假设我想引用一系列这样的作者:
[3-11]
当我写的\cite{bibitem3-bibitem11}
时候,它无法在 LaTeX 中编译,所以我写了\cite{bibitem3,bibitem4,...,bibitem11}
。但这太大了,不太好。我应该如何处理引用范围?
答案1
不应提及推荐人的名字bibitem
n,但要使用简短但有意义的键,如作者 + 年份。没有真正好的方法来避免\cite{...}
文本中的长调用。我不知道有适合这种情况的软件包,因为没有人使用这种命名方案。
如果你真的想这样做,你可以使用 for 循环,例如 提供的循环pgffor
。它允许使用...
来定义范围。请参阅前列腺素完整语法请参阅手册:
\documentclass{article}
\usepackage{pgffor}
\makeatletter
\newcommand*\rcite[1]{%
\def\@gtempa{}%
\foreach \n in {#1} {%
\edef\@tempa{,bibitem\n}%
\expandafter\g@addto@macro\expandafter\@gtempa
\expandafter{\@tempa}%
}%
\edef\@gtempa{{\expandafter\@gobble\@gtempa}}%
\expandafter\cite\@gtempa
}
\makeatother
\begin{document}
% 3-10
\rcite{3,...,10}
% 2, 5-10
\rcite{2,5,6,...,10}
% 3, 5, 7, 9
\rcite{3,5,...,10}
\end{document}