![目录中的页码与回忆录的实际页码不匹配](https://linux22.com/image/241350/%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E9%A1%B5%E7%A0%81%E4%B8%8E%E5%9B%9E%E5%BF%86%E5%BD%95%E7%9A%84%E5%AE%9E%E9%99%85%E9%A1%B5%E7%A0%81%E4%B8%8D%E5%8C%B9%E9%85%8D.png)
我遇到了一个问题,即使用 class 时目录中的页码与实际页码不匹配memoir
。我在其他地方读到,如果重建项目,问题就会消失。因为我正在使用潘多克我不知道如何重建项目。我也在 Pandoc 论坛上问过同样的问题。我在这里也问,因为我认为这可能是 LaTeX 问题。
答案1
“重建”的意思是“重新运行 latex”。
在第一次运行中,LaTeX 将页码收集到单独的文件中,并且在第二次或以后的运行中仅包含带有页码的目录。
如果页码在第二次或后续运行中发生变化,则直到另一次 Latex 运行完成之前,目录中才会显示正确的页码。
是的,这是一个“乳胶问题”,但并不是错误。这是一个有意为之的特征。
答案2
潘多克是一个文档转换实用程序,不会修复目录中的任何错误引用(或文档中的任何其他交叉引用)。因此,您需要在产品的 LaTeX 端“修复”此问题。正如 @barbara 在她的回答中提到的,您需要编译 LaTeX 文档几次(至少两次)才能使引用准确无误。我将尝试通过引用来详细说明这一点LATEX 2ε 的简短介绍:
1.7 您可能会遇到的文件(第 14 页)
.toc
存储所有节标题。它将在下一次编译器运行中被读入并用于生成目录。
.aux
另一个将信息从一个编译器运行传输到下一个编译器运行的文件。除其他用途外,该.aux
文件还用于存储与交叉引用相关的信息。...
2.7 标题、章节和节(第 40 页)
... LaTeX 通过从文档的最后一个编译周期中获取章节标题和页码来创建目录。命令
\tableofcontents
展开到发布地的目录。新文档必须编译(“LaTeXed”)两次才能获得正确的目录。有时可能需要第三次编译文档。LaTeX 会告诉您何时需要这样做。
...
2.8 交叉引用(第 42 页)
... 与目录的章节标题和页码一样,使用上一次编译周期的编号。
本质上,LaTeX 使用文件来存储有关文档的特定运行/编译的信息(而不是在编译时将其存储在内存中)。而且,这些项目可能会在文档编译时移动 - 就像飞机上的行李一样......这通常在使用浮动时发生,因为它们可能会在文档中“浮动”,但也可能出现在其他分段命令中。因此,在第二次编译时,如果没有发生进一步的移动,.aux
and.toc
文件将是准确的(或最新的),从而产生正确的引用。