\addcontentsline 在 ToC 中与 \include 一起出现位置错误

\addcontentsline 在 ToC 中与 \include 一起出现位置错误

我似乎遇到了 LaTeX 中有关目录的一个错误。显然,如果 a\addcontentsline后面跟着\include,则包含文件中的所有标题都会打印在 指定的标题之前\addcontentsline

以下是 MWE:

\documentclass{report}

\begin{document}

\tableofcontents

\chapter{Hello}

\part*{Unnumbered part}
\addcontentsline{toc}{part}{Unnumbered part}

% \chapter{How do you do?}
% The bug disappears if I uncomment the line above.

\include{bug_include}
% This include starts with a \chapter command. The rest of the file is irrelevant. 

\end{document}

该文件bug_include.tex以一个命令开始\chapter,比如,\chapter{Goodbye}并且可能包含其他头命令(\section,等等)

经过两次编译后,我得到的是一个目录,其中包含

1. Hello
2. Goodbye
   2.1 A section in bug_include
Unnumbered part

而我应该得到

1. Hello
Unnumbered part
2. Goodbye
   2.1 A section in bug_include

请注意, 似乎\include是错误的重要部分。如果主文件在 之后包含常规部分命令\addcontentsline,则不会发生此错误。

\addcontentsline我可以通过在命令前添加 来隐藏错误\part*。但由于我通常也使用该hyperref包,因此我获得正确链接的实际解决方法实际上是:

\cleardoublepage\phantomsection\addcontentsline{toc}{part}{Unnumbered part}
\part*{Unnumbered part}

我在 fedora 37 打包的 texlive 2001 和 fedora 38 打包的 texlive 2022 中发现了这个错误。

我是不是忽略了什么?这是一个众所周知的错误吗?我应该向某个地方报告吗?

注意:这个错误可能与所报告的错误相同485320,但另一个问题没有 MWE,因此很难说。

相关内容