我注意到我的一些文件需要很长时间才能编译。它经常编译缓慢,然后产生“无效或损坏的文件”错误,持续很长时间,然后重置和更新 - 让我回到文档的顶部。当 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 上进行编译。