在我上次对不同文件之间的总数进行交叉引用的过程中,可以读取这里,出现了用户定义计数器保存文献参考文献总数的问题。
至少有两种方法可以将此值保存在辅助文件中:
至少有两种方法可以统计文献参考文献的总数:
totcount
Mike Renfro 和 Ian Thompson 提供的包裹,请看,这里和这里, 分别。\printbibliography
maieul 给的 makro,请看,这里。然而在这种情况下我们也制作了不同类型的书目。
我尝试通过 获取文献参考文献的总数,totcount
并通过 保存它zref
。问题是该命令\total{citenum}
返回一个脏代码,例如\def \c@citenum@totc {\c@citenum@totc }2}
MWE,所以我无法将该值导出到另一个 .tex 文件。请注意,最后一个值2
是源代码中提到的参考文献的真实值。
问题是如何以正确的方式获取文献参考总数并将其保存到用户定义的计数器?给定值应与将值导出到另一个 .tex 文件的方法之一兼容。
解决这个问题最简单的方法是解析以下行并将最后一行和\def \c@citenum@totc {\c@citenum@totc }2}
之间的符号保存在单独的计数器中。也可以采用 hack 的方法或使用其他包来形成文献参考总数。}
}
totcount
\documentclass{report}
% http://texblog.org/2012/04/16/counting-the-total-number-of/
\usepackage{totcount}
\newtotcounter{citenum}
\def\oldcite{}
\let\oldcite=\bibcite
\def\bibcite{\stepcounter{citenum}\oldcite}
\usepackage{zref-abspage, zref-lastpage}
\makeatletter
\zref@newprop{myreferences}[0]{\total{citenum}}
\zref@addprops{LastPage}{myreferences}
\makeatother
\begin{filecontents}{\jobname.bib}
@article {First,
author = "FA"
}
@article {Second,
author = "SA"
}
\end{filecontents}
\begin{document}
Some citations: \cite{First}, \cite{First}, \cite{Second}.
This document contains \total{citenum} references (possibly with multiple citations).
\bibliographystyle{plain}
\bibliography{\jobname}
\end{document}
来自辅助文件的屏幕截图,其中突出显示了部分文本,这应该是正确的,即应该只有值2
。
UPT:我尝试修改 Werner 的解决方案,即输入\total{citenum}
以下代码\setcounter{mycntr}{\total{citenum}}
并出现错误:Missing number, treated as zero. \setcounter{mycntr}{\total{citenum}}
。
答案1
代替
\zref@newprop{myreferences}[0]{\total{citenum}}
和
\zref@newprop{myreferences}[0]{\the\totvalue{citenum}}