哪些类型的代码模式会增加 latex 命令所需的运行次数?

哪些类型的代码模式会增加 latex 命令所需的运行次数?

众所周知,参考文献需要额外运行 LaTeX,并且这些参考文献可能依赖于 BibTeX,而 BibTeX 又依赖于文档源的至少一次先前编译。我还在网上看到过这样的说法,即某些 LaTeX 源文件可能需要更多编译。

这让我很好奇:哪些编码模式(或其嵌套)会增加latex生成最终文档所需的运行次数?理想情况下,答案将是一种编码模式(或一组编码模式),可用于将所需编译的次数增加 1。

询问的原因有两个:

  1. 只要我不使用在有关自动 LaTeX(重新)编译的相关问题中提到的参考文献中提到的工具之一(例如,这里这里),我可能想知道答案,而不需要检查log文件。(关于如何正确地做到这一点,请参阅我的另一个问题这里
  2. 作为一项有趣的智力练习,了解如何(递归或其他方式)生成需要任意次数编译的 LaTeX 源文件将会很有趣。(对于这个特定的问题我已经创建一个单独的帖子,所以请在那里填写您的答案。)

答案1

涉及坐标计算的 Tikz 代码至少需要运行两次。例如:

\documentclass[twoside]{article}

\usepackage{tikz}               % you know what this does!
\usetikzlibrary{calc}

\usepackage{fancyhdr}             % put things headers and footers and we plan misuse it ;)
\usepackage{lipsum}               % for sample text


\pagestyle{fancy}
\fancyhf{}
\fancyhead[LO]{%
  \begin{tikzpicture}[overlay,remember picture]
      \fill [color=blue]
        (current page.north west)
        rectangle
        ($ (current page.south west) + (1cm,0cm) $);
  \end{tikzpicture}
}
\fancyhead[RE]{%
\begin{tikzpicture}[overlay,remember picture]
      \fill [color=orange]
        (current page.north east)
        rectangle
        ($ (current page.south east) + (-1cm,0cm) $);
\end{tikzpicture}
}
\fancyfoot[C]{\thepage}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}

\begin{document}
\lipsum

\lipsum

\lipsum

\end{document}

涉及此类计算,并且需要两次编译才能使边线正确。

相关内容