LaTeX文档的自动编译与实时预览

管理LaTeX源代码文档,最开始的时候,我是在终端中手动输入编译命令,每次都需要输入好几次命令才能得到最终的文档。之后,为了简化操作,自习了Makefile,使用make来编译、预览LaTeX文档,效率大大提高,但每次都要适当修改Makefile,仍有一定的繁琐。今天,偶然发现一个编译、预览LaTeX文档的利器——latexmk,强烈推荐给使用LaTeX制作文档的朋友们。此处对于使用make和latexmk编译预览LaTeX文档分别做一个简要的介绍。

一、使用make

自写Makefile,使用make管理LaTeX源代码文档。示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#Makefile for LaTeX
PDFC = xelatex
BIBC = bibtex
READER = evince
 
TARGET = article.pdf
OUTGROWTH = *.out *.log *.aux *.toc *.lof *.lot *.lol *.bbl *.blg
SOURCE = article.tex
BSOURCE = article
 
$(TARGET): $(SOURCE)
$(PDFC)    $(SOURCE)
$(BIBC)    $(BSOURCE)
$(PDFC)    $(SOURCE)
$(PDFC)    $(SOURCE)
 
read:
$(READER) $(TARGET)
 
clean:
-rm $(OUTGROWTH)
 
cleanall:
-rm $(OUTGROWTH) $(TARGET)
 
.PHONY:read clean cleanall

之后,每次更新tex源码后,需要按照自己的目的在终端中输入以下命令:

1
2
3
4
5
6
7
8
#彻底清理目录
make cleanall
#编译源码
make
#清理目录,保留最终文档
make clean
#预览文档
make read

二、使用latexmk

首先创建或修改配置文档。可以在家目录中创建一个配置文档:

1
vim ~/.latexmkrc

按照需要修改配置文档内容,如修改pdf阅读器为evince:

1
$pdf_previewer = "start evince %O %S";

之后,只需要在工作目录新开一个终端,输入:

1
2
3
4
#监视源码、自动编译、实时预览
latexmk -pdf -pvc -xelatex article
#清理目录,只保留最终的pdf文档
latexmk -c

PS:不知道“start evince %O %S”中“%O %S”的含义为何,有知道的朋友麻烦告知一下,先行谢过!

参考资料

LaTeX 文档的实时编译,以及Dropbox同步
latexmk -h
man latexmk