我正在尝试找到一种简单的方法来获取我的论文中的引用总数(在最终文档中 - 而不是在我的Libary.bib
文件中!)。我知道我可以用它\citenum{last_entry}
来获取最后一个条目的编号,但如果稍后添加了新条目,这将不再为我提供引用总数。我发现这个包\usepackage{totcount}
很有用,因为它为您提供了一种超级简单的方法来获取图表、表格等的总数。
我的问题是:是否有类似的命令用于获取引用总数?我搜索了好久,但没找到任何有用的信息。
万一需要此信息 - 我使用数字输出,例如:
[1] P. Drude, Physikal. Zeitschr. 1, 161 (1900)
我目前使用 totcount 包获取图表、表格总数的示例:
\documentclass{book}
\usepackage{totcount}
\newtotcounter{bibitems}
\newtotcounter{figure}
\regtotcounter{table}
\begin{document}
The total number of figures is \total{figure}, and the total number of tables is \total{table}.
\begin{figure}
[...]
\end{figure}
\begin{figure}
[...]
\end{figure}
\begin{table}
[...]
\end{end}
\begin{table}
[...]
\end{end}
\end{document}
答案1
您可以使用totcount 包。
\documentclass{article}
\usepackage{totcount}
\newtotcounter{citnum} %From the package documentation
\def\oldbibitem{} \let\oldbibitem=\bibitem
\def\bibitem{\stepcounter{citnum}\oldbibitem}
\begin{document}
This document contains \total{citnum}\ references.
\cite{Martin06} \cite{Fortran2008}
\begin{thebibliography}{1}
\bibitem{Martin06}
P.~A. Martin.
\newblock {\em Multiple Scattering. {Interaction} of Time-Harmonic Waves with
{$N$} Obstacles}.
\newblock Cambridge University Press, 2006.
\bibitem{Fortran2008}
Fortran standards technical~committee (J3).
\newblock Fortran 2008 language standard.
\newblock Technical Report J3/10-007, International Committee for Information
Technology Standards (INCITS), 2010.
\end{thebibliography}
\end{document}
请注意,这也适用于 bibtex 书目;我包含了书目环境以使示例尽可能简单。
答案2
使用 biblatex 的另一种方法是使用 来简单地计算参考书目中的条目数量\AtEveryBibitem
。
\usepackage{totcount}
\newtotcounter{citenum}
\AtEveryBibitem{\stepcounter{citenum}}
对于多次\printbibliography
调用,可以使用 重置计数器\AtNextBibliography
。
答案3
如果您被允许执行shell-escape
,当 LaTeX 使用参考书目时,会生成一个文件(记得用您的真实文件的名称<your_document_name>.blg
替换)。此文件中出现以下行:<your_document_name>
...
You've used 8 entries,
...
所以你可以运行
grep -P "You've used [0-9]+ entries," -m 1 "<your_document_name>.blg" | grep -P "[0-9]+" -o
通过使用以下文档,将打印此号码:
\documentclass{article}
\usepackage{bashful}
\begin{document}
Foo...
\bash[script,stdout]
grep -P "You've used [0-9]+ entries," -m 1 "<your_document_name>.blg" | grep -P "[0-9]+" -o
\END
\end{document}
请注意:您必须<your_document_name>
用正确的文件名称替换。