编译“加速”建议,28s -> 7s(VSCode + LaTeX Workshop) #218
Tedxz
started this conversation in
Show and tell
Replies: 2 comments 2 replies
-
用 |
Beta Was this translation helpful? Give feedback.
1 reply
-
如果首次编译,我们还需要额外的一步 办法很有参考性,赞一个。我也建议在定稿前使用 |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
最近在撰写博士毕业论文,目前写到约80页。按照模板手册,完整的编译流程为
xelatex -> biber -> xelatex -> xelatex
,耗时较长。以我个人的文章为例,约耗时28秒,其中xelatex
执行一遍约为7.5秒,biber
执行一遍约6秒。不胜其烦,探索了一下如何加速,在此跟大家分享。首先根据相关资料,得知使用
biblatex
相较于bibtex
可以省掉一次编译。典型的编译流程为xelatex -> biber -> xelatex
(也适用于pdflatex
、latex
等)。这样大约20秒可以完成编译。其次,当参考文献、交叉引用等内容没有更新时,根据之前编译生成的
.aux
、.bcf
文件,只需执行一次xelatex
即可完成编译。但是如果把默认编译流程设置为仅执行xelatex
,更新参考文献后调用biber
不太方便。基于以上考虑,我把默认编译流程设置为:
xelatex -> biber
这样如果内容更新不多,
xelatex
执行完成后即可看到编译结果。如果更新了参考文献等,再执行一次该流程即可实现完整编译。如果使用vscode + latex workshop插件撰写论文,可以通过配置
recipe
实现上述编译流程。插件会在整个流程结束后自动刷新内置pdf阅读器。这样大约需要等待14秒左右。由于在大多数小改动的情况下等待
biber
执行完成并没有意义,我希望vscode能在xelatex
执行完之后立即刷新pdf阅读器。可以通过latex workshop插件的external build command
配置该功能。单独写一个脚本:通过调用该脚本,
xelatex
结束后插件即认为命令结束,立即刷新pdf阅读器;biber
在后台静默执行。如果有未处理好的引用,再次调用编译流程即可。该方法在大多数情况下等待7秒左右即可查看编译结果了。该方法存在一个已知问题,即不能在脚本返回后立即执行第二次编译,需要等biber
运行结束,否则biber
的结果无法参与xelatex
编译。不过该问题也容易解决,再调用一次编译流程即可。插件配置如下:
建议仅修改workspace设置以免弄乱其他项目的编译流程。
Beta Was this translation helpful? Give feedback.
All reactions