Refsection 和 \includeonly 警告

Refsection 和 \includeonly 警告

我正在使用biblatex后端biber创建按章节细分的累积书目。我的(简化)主文件(主文本) 是:

\documentclass{book}

\usepackage[refsection=chapter, backend=biber]{biblatex}
\defbibheading{bibbook}[\bibname]{\chapter{#1}}
\defbibheading{subbib}[\refname\space\chaptername\space%
  \ref*{refsection:\therefsection}]{%
  \setcounter{secnumdepth}{0}%
  \section{#1}}
\addbibresource{biblatex-examples.bib}

\usepackage{hyperref}

\includeonly{bar}

\begin{document}

\mainmatter
  \include{foo}
  \include{bar}

\backmatter
  \printbibheading[heading=bibbook]
  \bibbysection[heading=subbib]

\end{document}

foo.tex是:

\chapter{Foo}
\label{cha:foo}
\nocite{cms}

巴氏是:

\chapter{Bar}
\ref{cha:foo}
\nocite{glashow}

根据这个回答使用的好处\include

“文件名开头会有一个 filename.aux 文件,其中包含所有计数器值,如页码和章节号等。这样,文件可以单独编译,但仍具有正确的页码和章节号等。此类部分辅助文件由主辅助文件读取”。

我希望refsection计数器的行为方式相同。但是,使用时\includeonly{some chapter}我收到以下警告:

LaTeX Warning: Label `refsection:01' multiply defined.
LaTeX Warning: There were multiply-defined labels.

如果我删除该includeonly命令,警告就会消失,但是有没有办法在使用该includeonly命令时避免出现该警告?显然,消除警告的唯一方法是在每次编译后删除章节的辅助文件(而不是主文件)。但是这样计数器值就会丢失。

我知道这只是一个警告,而不是错误,也不会成为最终(完整)文档中的问题。但是我想了解为什么会出现这个警告,并尽可能消除它。

编辑:在悬赏结束之前,我想澄清的是,我可以告诉我的文本编辑器 (vim) 不要显示警告。正如我之前所说,我真正想知道的是,当使用 include 的优点之一是它存储计数器值时,为什么会出现警告。

答案1

根据我的测试,从一个干净的目录(没有 .aux 文件)开始,它可以很好地与 配合使用\includeonly。如果您foo.aux在创建它的上一次运行中(大概没有\includeonly)挂起,然后尝试使用 运行\includeonly,这似乎会拾取并读取 ,foo.aux其中包含与 中相同的计数器,这才是问题所在bar.aux。这是有道理的,因为当您有效地仅bar.aux通过使用包括时\includeonly,这将获得计数器“01”,但如果您同时包括两者,则会出现这种情况。如果您在具有不同设置的运行之间foo.aux不删除文件,则很自然地会发生冲突,因为您周围有旧文件。.aux\includeonly.aux

相关内容