如何通过Python脚本调用pdflatex批量编译带变量的TeX文件
用Python自动化批量编译TeX文件:传递变量给pdflatex
需求说明
- 定义两个Python变量:
name = "HELLO" filename = "demo.tex"
- 需要通过Python执行这条shell命令,实现批量TeX文件编译:
pdflatex "\def\name{HELLO} \input demo.tex"
- 配套的
demo.tex内容如下:
% demo.tex \documentclass{article} \begin{document} \name \end{document}
初始代码的问题
使用subprocess.run编写的初始脚本无法完成变量替换,{name}和{filename}没有被替换为对应的值:
import subprocess name = "HELLO" filename = "demo.tex" subprocess.run(["pdflatex", "\\def\\name{{name}} \input {filename}"])
修正后的代码
经@Klaus D.提示,正确的写法如下,通过f-string拆分参数实现变量替换:
import subprocess name = "HELLO" filename = "demo.tex" subprocess.run(["pdflatex", "\\def\\name{", f"{name}", "}", f"\\input {filename}"])
内容的提问来源于stack exchange,提问作者Stephen
相关产品推荐
相关产品推荐

