使用 \input 编译缓慢/错误多多

使用 \input 编译缓慢/错误多多

我注意到我的一些文件需要很长时间才能编译。它经常编译缓慢,然后产生“无效或损坏的文件”错误,持续很长时间,然后重置和更新 - 让我回到文档的顶部。当 pdf 将其位置重置回第 1 页时,即使是很小的更改也需要很长时间才能编译,这让我很恼火,也很难排版。

在此处输入图片描述

我对为什么会发生这种情况的猜测之一可能是文件大小/编译效率低下,因此我做了以下更改:

  • 制作了一个更精简的.sty文件并删除了一些.tex可能有缺陷的快捷方式配置
  • .tex通过将具有主文件和多个 .txt 文件的文档中的当前输入保持在最低限度,使文件尽可能最小化\inputs
  • 删除不必要的格式更改,例如花哨的页眉/页脚,这一切都使文档变得更加简单,并且理论上需要编译的指令更少,但仍然需要很长时间才能编译。

然后我想这可能是因为我在另一个文件夹中使用\input了一个最小的测试文件来测试我的.sty文件 - 似乎编译得很好。然而,我去把那个文件的一小部分移到另一个测试文件中,然后重新添加它作为输入,它也变得慢得令人难以置信。

现在,我使用\input这种方法来记录小笔记并将它们编译成更大的文档,但这似乎是编译如此麻烦的原因。有没有人遇到过类似的问题,有什么方法可以解决这个问题(除了将所有笔记编译到一个大型 TeX 文件上)?

运行示例:我使用了以下文件:

\documentclass{article}
\usepackage[lecture]{random}

\begin{document}
\title{Notes}
\author{Revise}
\date{Fall 2021}
\maketitle
% toc
\tableofcontents

\input{15_tail_calls.tex}

\end{document}
%% Tail Calls
\section{Tail Calls}
\begin{tcbexample}[name = Lexical/Dynamic Scope, minted language = scheme]{
Lexical Scope: Standard way how names are looked up in Python/Scheme - parent of a frame is the frame in which a procedure is defined.

Dynamic Scope: Alternate approach to scoping, parent of the frame is the frame in which a procedure is called. Known as \lstinline{mu} special form in Scheme.
}
(define f (lambda (x) (+ x y))) ; P: global
(define g (lambda (x y) (f (+ x x)))) ; G - P: global, F - P: F1 (when using dynamic scope)
(g 3 7)
\end{tcbexample}

以下是随机.sty,我正在使用的 preamble 包。

这是最终的.log输出。

Latexmk: fls file doesn't appear to have been made.
Latexmk: Examining 'master.log'
=== TeX engine is 'pdfTeX'
Latexmk: Errors, so I did not complete making targets
Collected error summary (may duplicate other messages):
  pdflatex: Command for 'pdflatex' gave return code 1
      Refer to 'master.log' for details
Latexmk: Use the -f option to force complete processing,
 unless error was exceeding maximum runs, or warnings treated as errors.

背景:我使用 pdflatex 作为编译器,并使用 latexmk 来帮助在 VSCode 上进行编译。

相关内容