Biblatex - 如何在不调用 \printbibliography 的情况下计算 .bib 文件中的条目数

Biblatex - 如何在不调用 \printbibliography 的情况下计算 .bib 文件中的条目数

我有三个 .bib 文件,其中将我的简历书目分为“期刊”、“会议”和“论文”。我按照以下方法针对这三种类型计算每个 .bib 文件的条目数量:

\newtotcounter{no_journals}

\AtEveryBibitem{
    \ifkeyword{journal}{\stepcounter{no_journals}}{}%
}

\defbibheading{journals}{International Journals}
\addbibresource[label=journals]{journals}

...然后我将结果打印在特定部分,如下所示:

\begin{refsection}[journals.bib]
\nocite{*}
\begin{refcontext}
\printbibliography
\end{refcontext}
\end{refsection}

\begin{itemize}
    \item Number of International Journals: \total{no_journals}\
\end{itemize}

对于我的长篇简历,它运行良好;但是对于简历,我只想列出期刊、会议和论文的总数,而不打印完整的参考书目。为此,我有以下命令:

\begin{refsection}[journals.bib]
\nocite{*}
\begin{refcontext}
\printbibliography
\end{refcontext}
\end{refsection}

\begin{itemize}
    \item International Journals: \total{no_journals}\, International Conferences: \total{no_conferences}\, Thesis Conducted: \total{no_thesis}\
\end{itemize}

正如您在命令本身中看到的,如果我没有对每种类型(期刊,会议和论文)调用“ \printbibliography”,则参考书目文件中的条目将不被计算。

  • 有没有什么方法可以让我不用调用“\printbibliography”来计算它们?
  • 如果除了强制调用“\printbibliography”之外没有其他选择,我可以让它不打印参考书目吗?就像“试运行”方法一样?

答案1

要执行某些代码而不打印它,您可以在 中执行它\setbox,这会将结果存储在使用的框中,因此\setbox0将结果存储在框寄存器 0(这是一个临时使用的临时寄存器)中。它还需要我们选择的框类型,\vbox因为这允许的内容比\hbox其内容更多。因此,要在\printbibliography不排版的情况下使用它,您可以使用:

\setbox0\vbox{\printbibliography}

答案2

如果条目是\nocite'd 或\cite'd,你可以\AtDataInput使用\AtEveryBibitem

\documentclass{article}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}

\newcounter{no_journals}
\newcounter{no_conferences}
\newcounter{no_thesis}

\AtDataInput{%
  \ifentrytype{article}
    {\stepcounter{no_journals}}
    {\ifentrytype{inproceedings}
       {\stepcounter{no_conferences}}
       {\ifentrytype{thesis}
          {\stepcounter{no_thesis}}
          {}}}}

\begin{document}
\nocite{sigfridsson,worman,baez/article,geer}

journals: \arabic{no_journals}, theses: \arabic{no_thesis}
\end{document}

\AtDataInput在读取文件.bbl时,对 中的每个条目每个 refsection 执行一次。对 中打印的每个项目都执行一次。.bbl\AtEveryBibitem\printbibliography

相关内容