在引用前自动插入“Ref.”或“Refs.”

在引用前自动插入“Ref.”或“Refs.”

在回答问题,解释了如何在任何引用前自动添加“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}

在此处输入图片描述

相关内容