LaTeX编译速度优化

您所在的位置:网站首页 为什么pdf加载很慢 LaTeX编译速度优化

LaTeX编译速度优化

2024-06-30 14:30| 来源: 网络整理| 查看: 265

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

躺了一天后打开了久违的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写作平台,本人觉得有可能比在本地搞一大堆方便很多,等尝试过后再来分享体验。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3