使用python脚本编译LaTeX
1. 顺序调用对应的编译器可以使用python脚本调用command命令实现。在LaTeX项目根目录中创建“compile.py”,并添加以下内容(以下为使用BibTeX和nomencl时的配置):#!/usr/bin/pythonimport subprocessfilename = 'xxx' # Change this into your main file name.# External
·
1. 顺序调用对应的编译器
可以使用python脚本调用command命令实现。在LaTeX项目根目录中创建“compile.py
”,并添加以下内容(以下为使用BibTeX和nomencl
时的配置):
#!/usr/bin/python
import subprocess, os
filename = 'xxx' # Change this into your main file name.
commands = [
['xelatex', '-output-directory=out', filename + '.tex'],
['biber', '--output_directory', 'out', filename],
['xelatex', '-output-directory=out', filename + '.tex'],
['xelatex', '-output-directory=out', filename + '.tex'],
['makeindex', 'out/' + filename + '.nlo', '-s', 'nomencl.ist', '-o', 'out/' + filename + '.nls', '-t', 'out/' + filename + '.nlg'],
['xelatex', '-output-directory=out', filename + '.tex'],
]
for c in commands:
subprocess.call(c)
# Preview PDF.
os.startfile('out\\' + filename + '.pdf')
2. 使用latexmk
我们还可以使用latexmk进行编译,速度比前一种方法要快一些。如果用到了复杂的功能(如交叉引用)需要使用多个编译器的,要对.latexmkrc
文件进行更改。以下为使用BibTeX和nomencl
时.latexmkrc
文件的配置:
$out_dir="out"; # Output directory
$pdf_mode=5;
$xelatex="xelatex -synctex=1";
$xdvipdfmx="xdvipdfmx -q -E -o %D %O %S";
$clean_ext = 'thm bbl hd loe xdv run.xml';
$makeindex = 'makeindex -s gind.ist %O -o %D %S';
# Custom dependency and function for nomencl package
add_cus_dep( 'nlo', 'nls', 0, 'makenlo2nls' );
sub makenlo2nls {
system("makeindex \"$_[0].nlo\" -s nomencl.ist -o \"$_[0].nls\" -t \"$_[0].nlg\"" );
}
@default_files=('xxx.tex') # Change this into your main file name.
在LaTeX项目根目录中创建“compile.py
”,并添加以下内容:
#!/usr/bin/python
import subprocess, os
filename = 'xxx' # Change this into your main file name.
# Config the '.latexmkrc' file then run the following command.
subprocess.call(['latexmk'])
# Preview PDF.
os.startfile('out\\' + filename + '.pdf')
之后运行“compile.py
”即可完成编译与PDF预览。
更多推荐
已为社区贡献2条内容
所有评论(0)