LaTeX编译速度优化

最近一直埋头毕业的事情,终于在昨天全部完成。

躺了一天后打开了久违的CSDN,看到五个月前写的介绍FFmpeg编解码和图传方面的最后一篇文章,竟回想不起当时为何要做这件事情,顿感时光飞逝。为了避免在CSDN上的排名和粉丝也如时光一般远去,我将在近期把这段日子研究的东西(主要是论文写作相关的)逐步分享出来。

这篇文章要分享的是LaTeX的编译速度优化方案。

相信会搜索到这篇博客的同学肯定明白为什么要用LaTeX而非Word来写毕业论文,因此不在这里赘述。

尽管LaTeX的的确确比Word不知高到哪里去,然而有个问题是非常严重的,就是非可见即可得。

解决这个问题的办法是将论文编译出来,然后去看生成的PDF文档。然而以本人的博士论文为例,132页的论文在“AMD Ryzen 7 2700X”CPU下的编译时间是110秒左右,有时改完按下编译去上个厕所回来还在编。。。

为了解决这个问题,本人研究了三个优化方法,供大家参考。正式介绍前,先放出本人没优化前的论文编译速度和文件大小:

Win10 + AMD Ryzen 7 2700X
第一次第二次第三次
112s111s111s
文件大小:123M
1. 取消压缩

在查询了知乎各大佬,尤其是“李阿玲”大佬关于LaTeX编译速度的讨论后,发现了最立竿见影的方法是取消LaTeX编译器对PDF的压缩。方法是在tex文档开头加入如下代码:

\special{dvipdfmx:config z 0} %取消PDF压缩,加快速度,最终版本生成的时候最好把这句话注释掉

取消压缩后速度提升接近3倍,具体如下表所示:

Win10 + AMD Ryzen 7 2700X + 取消压缩
第一次第二次第三次
34s33s34s
文件大小:380M

从表中可见,这一操作速度提升非常感人,然而文件大小的增加也非常感人,因此需要特别注意在最后一次编译把这句代码给注释掉。

2. 更换系统

如果想更进一步加快编译速度,可以考虑提升LaTeX编译器的I/O效率。由于该部分和操作系统相关,因此也就是将系统换成Linux或者Mac。

本人在同一台电脑上用Deepin 20操作系统的LaTeX对与Windows同一个文件夹下的论文进行了编译,结果在没使用压缩的情况下快了接近一倍,如下表所示:

Deepin 20(Linux)+ AMD Ryzen 7 2700X
第一次第二次第三次
62s61s62s
文件大小:123M

而加上"取消压缩"的操作后,速度比相同情况下的Win10也快了不少:

Deepin 20(Linux)+ AMD Ryzen 7 2700X + 取消压缩
第一次第二次第三次
25s24s24s
文件大小:380M

而在苹果刚刚发布的M1 Max芯片的16寸Macbook pro上,编译同一篇论文在不取消压缩的情况下速度又有提升(可能和芯片性能以及内存到CPU的速度有关):

Mac OS+ M1 max
第一次第二次第三次
56s57s57s
文件大小:123M

取消压缩后,性能则更是有接近两倍的提升

Mac OS + M1 max + 取消压缩
第一次第二次第三次
16s16s15s
文件大小:123M

从这一测试可以发现,苹果真是牛逼!

另外,值得注意的是,这一操作好是好,但毕竟要换操作系统,对于非计算机学科的同学可能比较要命。因此,有人提出使用Win10、Win11的wsl子系统安装Linux或者虚拟机安装Linux的方式来实现加速。本人对这两个操作的看法是,在不采用取消压缩的情况下可能比直接用Win10好,然而取消压缩后效果可能不明显甚至更差,因此不推荐使用任何形式的虚拟机进行优化操作。

3. 将所有图片先保存为pdf格式

LaTeX对图片的加载和解析速度可谓感人。为了证明这件事情,本人写了个读取10张png格式图片(2296*2152)的程序,发现需要花费20s才能完成编译。将png先转为pdf然后再编译,花费时间则直接缩短到3s,可见优化效果喜人。
ps: 将图片批量转为pdf格式可参考:利用PIL将png图片批量转为pdf

4. 分拆文章的章节

上面是本人亲测的3个对LaTeX编译速度本身有明显改善的操作,至于其他预编译啥的优化方式有点麻烦,本人自己也没弄,有兴趣的同学可以自行搜索。

在这里再介绍一种比较直接的加快编译的方式,那就是把文章按照章节分拆成不同的tex文件,然后用“\include”命令把它们组织成文。这样,在修改的时候可以只生成对应的章节,如下所示:

\input{chapters/chapter1.tex}
% \input{chapters/chapter2.tex}

这一操作是本人非常推荐的,而且在写作上也更加直观,不会整篇文章都堆在一个文件里面。但有个非常要命的缺点,就是无法使用“latexdiff”命令来检查修改痕迹,写过论文的人肯定能理解这个问题的严重性。为此,本人一开始是先分章节写作,然后再建立了一个大文件把东西再拷贝过去,相当麻烦。好在最后发现福昕或者Adobe的编辑器有PDF的文件对比功能,相当直观,因此问题也就解决了。如果不想买这两个软件,也可以用Diffpdf(开源软件)来实现对比,效果稍差但也过得去,链接在这

总结

到这里我们就介绍完了四种LaTeX编译速度优化的方式。总结起来就是:

  • 使用命令限制LaTeX压缩pdf,最终版本再压缩

  • 先将所有图片先保存为pdf格式

  • 按照章节组织论文,注释掉暂时无关的章节

  • 能真机使用Linux或Mac的话不要用Windows

另外,也可以探索下Overleaf、TeXPage这种在线的LaTeX写作平台,本人觉得有可能比在本地搞一大堆方便很多,等尝试过后再来分享体验。

  • 35
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
MDPI 是一家开源的学术出版社,他们接受和出版各种学科的学术论文。为了编译 MDPI LaTeX 格式的论文,首先需要下载和安装 LaTeX 环境。可以选择一个合适的 LaTeX 发行版,如TeX Live或MiKTeX,然后将其安装到计算机上。 安装完 LaTeX 环境后,可以从 MDPI 的官方网站上下载他们的 LaTeX 模板,该模板已经被专门设计用来满足 MDPI 的论文格式要求。下载完模板后,可以在 LaTeX 编辑器中打开主文档(通常是main.tex),开始编辑论文的内容。 在编辑的过程中,需要在模板提供的各个部分中填入相应的内容,如标题、摘要、关键词、作者信息、引用的参考文献等等。同时,还需要使用 LaTeX 的相关命令和语法来调整文本的格式、插入图片、制作表格等。 编辑完成后,可以使用 LaTeX 编译编译论文。首先,需要在命令行或者编辑器提供的界面中切换到论文所在的文件目录。然后,执行 LaTeX 编译命令pdflatex main.tex。这将会将主文档编译成一个PDF文件。 如果论文中有交叉引用或参考文献,需要多次编译。因为有些引用只有在多次编译后才能正确显示和链接。 编译完成后,就可以查看生成的PDF文件,检查论文内容和格式是否满足 MDPI 的要求。如果有需要,还可以在编译过程中使用其他工具如BibTeX手动处理参考文献。 总之,编译 MDPI LaTeX 格式的论文需要先安装 LaTeX 环境,然后下载和编辑 MDPI 提供的 LaTeX 模板,最后使用 LaTeX 编译编译论文。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值