目录、图片和表格的页码错误

目录、图片和表格的页码错误

我的问题与目录、图表列表和目录的页数有关。除了这一点之外,我的 .pdf 中的所有内容都运行良好!我不明白为什么!你能帮助我吗?

以下是我的主要内容:

\begin{document}
\hyphenation{Com-po-si-to-ri}
\hyphenation{Giu-sep-pe}
\hyphenation{Ba-lu-stra-des}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\fancyhf{} 
\fancyhead[LE,RO]{\bfseries\thepage}
\fancyhead[LO]{\bfseries\rightmark}
\fancyhead[RE]{\bfseries\leftmark}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0pt}
\addtolength{\headheight}{0.5pt} 
\fancypagestyle{plain}{
\fancyhead{} 
\renewcommand{\headrulewidth}{0pt} % e la linea
}

\includepdf[pages={1}]{Frontespizio.pdf}

\newpage
\thispagestyle{empty}
\clearpage{\pagestyle{empty}\cleardoublepage}
\selectlanguage{english}
\tableofcontents
\clearpage{\pagestyle{empty}\cleardoublepage}
\listoffigures
\clearpage{\pagestyle{empty}\cleardoublepage}
\listoftables
\clearpage{\pagestyle{empty}\cleardoublepage}

\large
\setcounter{secnumdepth}{-1}
\selectlanguage{italian}
\input{Sommario}
\clearpage{\pagestyle{empty}\cleardoublepage}
\selectlanguage{english}
\input{Acronym.tex}
\clearpage{\pagestyle{empty}\cleardoublepage}
\input{Abstract}
\clearpage{\pagestyle{empty}\cleardoublepage}
\input{Introduction.tex}
\clearpage{\pagestyle{empty}\cleardoublepage}
\clearpage
\setcounter{secnumdepth}{3}
\setcounter{tocdepth}{4}
\onehalfspacing
\input{Iso.tex}
\clearpage{\pagestyle{empty}\cleardoublepage}
\input{Literature.tex}
\clearpage{\pagestyle{empty}\cleardoublepage}
\input{Storia.tex}
\clearpage{\pagestyle{empty}\cleardoublepage}
\input{IRMeasurement.tex}
\clearpage{\pagestyle{empty}\cleardoublepage}
\input{ComputerModelling.tex}
\clearpage{\pagestyle{empty}\cleardoublepage}
\input{Discussion.tex}
\clearpage{\pagestyle{empty}\cleardoublepage}
\input{Conclusions.tex}
\clearpage{\pagestyle{empty}\cleardoublepage}
\input{Bibliografia.tex}
\clearpage{\pagestyle{empty}\cleardoublepage}
\input{Ringraziamenti.tex}
\clearpage{\pagestyle{empty}\cleardoublepage}


\end{document}

答案1

您需要至少两到三次(或更多)LaTeX 运行才能获得正确的目录:

在一次 LaTeX 运行期间,会发生以下情况:

  • \begin{document}.aux读取文件,忽略目录或图表列表的条目(因为\let\@writefile\@gobbletwo)。

  • \tableofcontents//\listoffigures调用\listoftables\@startoc{<ext>}= <ext>tocloflot

    1. 它读取文件\jobname.<ext>,并设置目录(或...的列表)。

    2. \jobname.<ext>清除并打开以供写入。

  • \chapter,,,... 内部调用 \addcontentsline{}{...}{...} \addtocontents{}{...} \section\ @writefile{}{...} .aux \tableofcontents` 并调用朋友。\captionand. These writecommands into thefile. This can also happen before

  • \end{document}。最后一页输出后,.aux关闭文件并重新读入。现在\@writefile{<ext>}{<contents>}执行命令,并将<contents>写入相应\jobname.<ext>文件或忽略,如果\jobname.<ext>没有打开。例如,如果有图题,但没有\listoffigures调用 ,则\jobname.lof不会写入。

这意味着打印的目录(图表列表等)具有上次 LaTeX 运行的状态。在第一次 LaTeX 运行中,\jobname.<ext>尚未写入,目录和列表为空。因此最低要求是LaTeX 运行。

如果目录和列表没有单独编号,那么可能会出现条目太多,页数多于空列表所需的页数的情况。然后列表后面的页码会随着列表中所有后续条目的增加而增加。然后需要再次运行 LaTeX。

例如,两侧设置如下\cleardoublepage

\begin{document}
\tableofcontents
\cleardoublepage
\chapter{...}
...

空目录需要一页用于标题(Contents)和一页空白页(因为\cleardoublepage)。目录长三页:

  1. 第一次运行 LaTeX:

    1. Page: Contents <otherwise empty>
    2. Page: <empty>
    3. Page: Chapter 1 ...
    
  2. 第二次 LaTeX 运行:

    1. Page: Contents, Chapter 1 -> page 3, <other entries>
    2. Page: <other entries>
    3. Page: <other entries>
    4. Page: <empty>
    5. Page: Chapter 1 ...
    

    因此页码是错误的,但 LaTeX 不会发出警告。

  3. 第三次 LaTeX 运行:

    1. Page: Contents, Chapter 1 -> page 5, <other entries>
    2. Page: <other entries>
    3. Page: <other entries>
    4. Page: <empty>
    5. Page: Chapter 1 ...
    

    现在,目录是正确的。

重新运行警告

如果需要对目录和其他列表再次运行 LaTeX,则 LaTeX 不会发出警告。有一个包使用rerunfilecheck(DVI 或 PDF 模式)在作业开始和结束时对辅助文件计算 MD5 校验和。如果发生更改,则包会打印重新运行警告:\pdfmdfivesumpdfTeX

\documentclass{book}

\usepackage[starttoc]{rerunfilecheck}

\newcommand*{\cleardoubleemptypage}{%
  \clearpage
  \begingroup
    \pagestyle{empty}%
    \cleardoublepage
  \endgroup
}

\begin{document}
Title page
\cleardoubleemptypage
\tableofcontents
\cleardoubleemptypage
\listoffigures
\cleardoubleemptypage
\listoftables
\cleardoubleemptypage
\chapter{First chapter}
\begin{figure}
\caption{First figure}
\end{figure}
\addtocontents{toc}{\protect\clearpage}% short for many \chapter/\section/... entries
\chapter{Second chapter}
\addtocontents{toc}{\protect\clearpage}% short for many \chapter/\section/... entries
\chapter{Third chapter}
\end{document}

第一次和第二次运行都会产生警告:

Package rerunfilecheck Warning: File `test.toc' has changed. Rerun.
Package rerunfilecheck Warning: File `test.lof' has changed. Rerun.

第三次运行成功,没有任何警告。

相关内容