我正在写一篇论文,我想能够自动找出每篇参考文献被引用的次数。这可以附加到打印版的参考文献中,也可以作为单独的文件输出。
我见过检查某个条目是否被多次引用,但它侧重于检查引用处的每个参考文献,而我想进行总体计数。
原因有两个。首先,看看是否有任何参考文献被“过度引用”。其次,如果空间成为问题,那么能够轻松看到哪些参考文献只被引用一次,并且可以毫不费力地删除。
答案1
如果你愿意切换到biblatex
,您可以使用citecounter
v1.3中添加的功能。
\documentclass{article}
\usepackage[citecounter=true]{biblatex}
\renewcommand{\finentrypunct}{%
\addperiod\space
(Cited \arabic{citecounter}~time\ifnumequal{\value{citecounter}}{1}{}{s})%
}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
author = {Author, A.},
year = {2001},
title = {Alpha},
}
@misc{B02,
author = {Buthor, B.},
year = {2002},
title = {Bravo},
}
@misc{C03,
author = {Cuthor, C.},
year = {2003},
title = {Charlie},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\nocite{*}
\begin{document}
Some text \autocite{A01}.
Some text \autocite{B02}.
Some text \autocite{A01}.
\printbibliography
\end{document}
答案2
如果您不想切换到 biblatex,您可以使用backref
或pagebackref
选项来获取参考书目中每个参考文献后的章节或页码链接。hyperref
答案3
以下内容适用于我的 natbib 驱动的文档(这是 OP 使用的代码使用 biblatex 时,如何在参考书目中显示第 ... 页上的未引用和被引用 i 次?)。只需将其粘贴到序言中的某个位置,您就可以在参考文献中轻松看到哪些条目被引用最多和最少。
\usepackage[pagebackref=true]{hyperref}
\renewcommand*{\backref}[1]{}
\renewcommand*{\backrefalt}[4] {
\ifcase #1
No citation in the text.
\or
Cited on page #2.
\else
Cited #1 times on pages #2.
\fi
}
PS:我记得几年前使用过一个更简单的解决方案,IIRC有一个包可以自动执行与上面的代码类似的操作。