目录中的顺序颠倒

目录中的顺序颠倒

在此处输入图片描述

我正在撰写我的论文。

中间是 LaTeX 代码,右侧面板是 PDF 文件,左侧面板是 Adob​​e Reader 中看到的导航面板。

TeX 代码中的顺序为 Chapter1-AppendixQ-Chapter2,左侧面板中保留了该顺序。但是,PDF 文件的目录中的第 2 章和附录 Q 是颠倒的。(2.5 数据分析和 2.6 结论是第 2 章中的章节,A1 和 A2 是“appendicex”中的章节。使用\addcontentsline命令插入“AppendixQ”,因为目录中没有显示附录标题。

我不明白为什么\include{chapter2}早于\addcontentsline{toc}{chapter}{AppendixQ}

答案1

问题在于延迟写入和立即写入文件的混淆.aux。目录中的条目首先收集到文件中.aux。在下次解析文件时,条目将以与文件中相同的顺序.aux写入文件。.toc.aux

\addcontentsline或者\addtocontents延迟并在页面发货时写入,此时页面的页码已知。相反,\include立即写入.aux现在.aux包含的 TeX 文件的文件。示例:

\include{chapter_foobar}

写道

\@input{chapter_foobar.aux}

在主.aux文件中。

问题分析

.tex文件:

\documentclass{report}
\usepackage[hidelinks]{hyperref}
\usepackage{bookmark}

\begin{document}
\tableofcontents
\clearpage % \include{chap1} calls \clearpage at the begin and end
\addcontentsline{toc}{chapter}{AppendixQ}
\include{chap2}
\end{document}

chap2.tex

\chapter{My 2nd paper}

\addcontentsline在开始新页面时调用“AppendixQ”的 。但是,当\clearpage被以下 调用时,没有新页面的材料\include。因此,\@input{chap2}会立即被 写入\include{chap2}。然后,稍后,当输出下一页时,“AppendixQ”的条目将写入文件中.aux

.aux文件:

\@input{chap2.aux}
...
\@writefile{toc}{\contentsline {chapter}{AppendixQ}{2}{chapter*.1}}

chap2.aux包含:

\@writefile{toc}{\contentsline {chapter}{\numberline {1}My 2nd paper}{2}{chapter.1}}

解决方案

解决方案是移至\addcontentsline以下文件chap2.tex

\addcontentsline{toc}{chapter}{AppendixQ}

\chapter{My 2nd paper}

.tex文件:

\documentclass{report}
\usepackage[hidelinks]{hyperref}
\usepackage{bookmark}

\begin{document}
\tableofcontents
\clearpage % by \include{chap1}
\include{chap2}
\end{document}

现在,主.aux文件包含

\@input{chap2.aux}

并按chap2.aux正确的顺序包含目录条目:

\@writefile{toc}{\contentsline {chapter}{AppendixQ}{2}{chapter*.1}}
\@writefile{toc}{\contentsline {chapter}{\numberline {1}My 2nd paper}{2}{chapter.1}}

答案2

据我了解,章节之间需要附录。

但由于没有 MWE 可供使用,

以下答案:每章后附有附录

应该可以帮助你。

相关内容