自从我尝试插入一些非常大的(横向)表格,其中有许多列和单元格包含引文后,撰写博士论文就变成了一场噩梦。
完整的编译运行latexmk
耗时超过 5 分钟。在我插入表格之前,大约需要 3 分钟,这仍然足够长。
由于表格包含引用(\cite
),因此不能将其视为“静态”,因为数字引用可能会随着文档的变化而变化。(否则,我会在单独的文档中排版表格,然后插入带有的 pdf includegraphics
。)
有哪些方法可以加快编译速度?
- 有没有办法排除文档的某些部分(类似于
includeonly
),以便我通常可以用一个大矩形替换表格(通常会填满整个页面)?
当然,我可以删除我目前没有处理的章节,但部分需要它们进行交叉引用和交叉检查信息......
_当然,我可以减少编译次数,但为了避免错误,并看看在进行微小更改后会得到什么,如果可能的话,我想在对文本进行更改后直接进行编译。
有任何想法吗?
编辑
只是一个暗示,以防其他人遇到同样的问题:
我倾向于经常进行编译,以直接查看源文档中的更改是否产生了预期的效果,并避免以后难以发现的语法错误。这花费了我很多时间。
由于我正在使用Emacs
并auctex
编辑我的源文档,并最终学会正确使用它的功能,因此区域指挥命令,它仅编译选定的区域,因此直接显示更改是否生效,而无需编译整个文档(或其大部分内容)。:-)
答案1
您可以使用该draft
选项来稍微加快速度,但使用\includeonly
是我所知道的唯一有效的解决方案。
请注意,它比你想象的要聪明。特别是,它保留了交叉引用。我看不出有什么理由不在写作过程中使用它。
答案2
-draftmode
使用选项pdflatex
并仅在最后一次运行中删除这一个,然后可以在不使用的情况下完成latexmk
pdflatex -draftmode <file>
它不会创建 PDF,而是创建所有辅助文件。这是一个有用的选项。
要排除文档的某些部分,请使用:
\iffalse
... to ignore ...
\fi
答案3
您可以对文档进行完整编译,并将 pdf 放在一边以供参考,因为您提到需要它。然后排除不需要的部分并快速编译剩余部分。这样,所有引用也将没问题,因为将创建所有 .aux 文件。
导致速度缓慢的另一个原因可能是图像过多(且分辨率较高)。如果您负担不起draft
,您可以在工作时使用较低分辨率的图像,并仅在最终编译时合并全分辨率图像。通过将它们保存在单独的目录中,这可能非常简单且不会出错。
答案4
您可以为此目的使用包\ifdraft
提供的开关:ifdraft
\documentclass[draft]{article}
%% \documentclass[final]{article}
\usepackage{ifdraft}
\begin{document}
\ifdraft{%
placeholder for draft document%
}{%
stuff for final document%
}
\end{document}