我正在使用 latexmk 并从 python 内部调用它,命令如下:
latex_params = ' -pdf -interaction=nonstopmode -gg -silent'
latexmk_string = str("latexmk -cd " + '"' + str(path/filename) + '"' + latex_params)
subprocess.call(latexmk_string, shell=True)
请注意,latexmk_string 中的“”双引号用于路径名包含特殊字符(例如括号)的情况。
上面的代码运行良好。我遇到的问题是使用 -c 选项清理辅助文件。我找不到任何方法将其包含在 latex_params 字符串中并使其工作。
如果我在上面的代码之后使用以下代码,我就能让它工作,本质上是自行调用清理函数:
subprocess.call('latexmk -c', shell=True)
除此之外,这仅在文件路径是当前目录时才有效。 在我的情况下,.tex 文件不在当前目录中,上面的 -cd 选项处理该问题以创建 pdf 文件。 但是我无法让 -c cleanup 命令工作。
我试过:
subprocess.call('latexmk -cd "' + str(path) + '" -c', shell=True)
但这不起作用。
答案1
John Collins 给出了答案。错误在于清理命令需要包含 .tex 文件名,而不仅仅是路径。
代替:
subprocess.call('latexmk -cd "' + str(path) + '" -c', shell=True)
需要的是:
subprocess.call('latexmk -cd "' + str(path/filename) + '" -c', shell=True)