在回答这问题,解释了如何在任何引用前自动添加“Ref.”。但是,我希望有一个自动“Ref.”或者“Refs。” 取决于我是否\cite
分别引用一个或多个引用。有什么方法可以实现这一点吗?
一个简单的例子:
\documentclass{report}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\begin{document}
% This is what I would like to achieve without manually adding "Ref.~" and "Refs.~":
This is a reference: Ref.~\cite{biba}
These are two references: Refs.~\cite{biba,bibb}
\begin{thebibliography}{}
\bibitem{biba}
Entry 1
\bibitem{bibb}
Entry 2
\end{thebibliography}
\end{document}
输出文档内容如下:
这是一个参考文献:参考文献 [1] 这是两个参考文献:参考文献 [1,2]
我希望实现这个结果,但又不必在每次引用前手动添加“Ref.~”或“Refs.~”。
理想情况下,我更喜欢没有的解决方案biblatex
。
答案1
而不是侵入\cite
并做一些转换,而是可以,
在第一个参数中计算\cite
\documentclass{report}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xstring}
\usepackage{letltxmacro}
\LetLtxMacro\origcite\cite
\renewcommand{\cite}[1]{%
\begingroup
\def\tempx{0}%
\StrCount{#1}{,}[\tempx]%
\ifnum\tempx > 0
Refs. %
\else
Ref. %
\fi
\endgroup
\origcite{#1}%
}
\begin{document}
This is a reference: \cite{biba}
These are two references: \cite{biba,bibb}
\begin{thebibliography}{}
\bibitem{biba}
Entry 1
\bibitem{bibb}
Entry 2
\end{thebibliography}
\end{document}