我编写了一个 python 脚本来自动将 Sweave/LaTeX 文档转换为 PDF。这是最重要的部分:
os.system("""echo "Sweave('%s.Rnw')" | R --vanilla --quiet"""%topic)
seq = ['p','b','p','b','p','p']
for op in seq:
if op is 'p':
os.system('pdflatex %s'%topic)
if op is 'b':
os.system('bibtex %s'%topic)
if op is 'l':
os.system('latex %s'%topic)
如果没有错误,这很好用,但如果有 LaTeX 错误,我会被带到 LaTeX 的 CLI,例如,
[10]
! You can't use `macro parameter character #' in vertical mode.
l.625 #
?
然后我需要手动打破这个。有没有一种方法可以让 Python “知道” os.system 调用在 LaTeX 中生成了一个错误,然后结束这个调用但仍然捕获错误文本?