gpt4 book ai didi

python - 检测并处理通过 Python 中的 os.system 调用生成的 LaTeX 警告/错误

转载 作者:行者123 更新时间:2023-11-28 22:04:39 25 4
gpt4 key购买 nike

我编写了一个 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 中产生了一个错误,然后结束这个调用但仍然捕获错误文本?

最佳答案

  1. 不要使用os.system,而是使用subprocess模块。
  2. pdflatex 有一个 -interaction 开关,您可以使用它来将其置于非交互模式(您可能需要 batchmodenonstopmode IIRC,但您可以试验并查看每个选项的作用)。

关于python - 检测并处理通过 Python 中的 os.system 调用生成的 LaTeX 警告/错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6818102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com