Yizhong's Blog

使用Makefile来编译Tex文件

最近在新配置的Linux机器上面写论文,因为只是小的改动,不想用Texmaker之类的IDE。而且因为IDE会产生很多的依赖和log文件,用dropbox同步的时候比较烦人。所以,转向了命令行来编译tex文件。当然,每次都敲latex,biblatex,pdflatex还是很烦人的,于是自己写了一个Makefile,这样,通过make命令就可以编译和查看文章了。

首先,需要安装texlive,也就是整个tex包:

1
sudo apt-get install texlive

然后,在新建好的tex目录下,新建Makefile文件,文件内容如下:

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
27
28
29
30
31
32
33
34
35
36
37
filename=主tex文件名,比如paper
all: pdf clean read
pdf: ps
ps2pdf ${filename}.ps
pdf-print: ps
ps2pdf -dColorConversionStrategy=/LeaveColorUnchanged -dPDFSETTINGS=/printer ${filename}.ps
text: html
html2text -width 100 -style pretty ${filename}/${filename}.html | sed -n '/./,$$p' | head -n-2 >${filename}.txt
html:
@#latex2html -split +0 -info "" -no_navigation ${filename}
htlatex ${filename}
ps: dvi
dvips -t letter ${filename}.dvi
dvi:
latex ${filename}
bibtex ${filename}
latex ${filename}
latex ${filename}
read:
evince ${filename}.pdf &
aread:
acroread ${filename}.pdf
clean:
rm -f *.toc *.aux *.log *.out *.blg *.bbl *.dvi *.ps *.gz
cleanall:
rm -f ${filename}.pdf *.toc *.aux *.log *.out *.blg *.bbl *.dvi *.ps *.gz

其中, all: pdf clean read 表示当执行make命令时,程序将会先后执行pdfcleanread这三个命令对应的内容。如果不需要cleanread则可以删掉。

之后,编译tex和查看pdf只需要执行:

1
make

如果想删除所有的log文件,可执行:

1
make clean

如果想连pdf文件也一起删除,可执行:

1
make cleanall

script>