我试图用Python构建一个LaTeX文档,但是在让命令按顺序运行时遇到问题。对于那些熟悉LaTeX的人,你会知道你通常需要运行四个命令,每一个都在运行下一个命令之前完成pdflatex file
bibtex file
pdflatex file
pdflatex file
因此,在Python中,我这样做是为了定义命令
^{pr2}$
但问题是运行它们。在
我尝试过从this thread中提取内容—例如,在一个循环中使用os.system(),subprocess类似map(call, commands)或{}之类的东西,并将列表压缩为一个由&分隔的字符串,但是这些命令似乎都是作为单独的进程运行的,而不需要等待前一个进程的完成。在
坦白说,我使用的是Windows,但我希望有一个跨平台的解决方案。在
编辑
问题是在指定src_文件变量时出现了一个错误;它不应该有一个“.tex”。以下代码现在起作用:
在测试.py在import subprocess
commands = ['pdflatex','bibtex','pdflatex','pdflatex']
for command in commands:
subprocess.call((command, 'test'))
在测试.tex在\documentclass{article}
\usepackage{natbib}
\begin{document}
This is a test \citep{Body2000}.
\bibliographystyle{plainnat}
\bibliography{refs}
\end{document}
在参考围兜在@book{Body2000,
author={N.E. Body},
title={Introductory Widgets},
publisher={Widgets International},
year={2000}
}