我有一个Python程序,它生成适合MiKTeX排版的纯文本MiKTeX标记。如何使排版源文件的过程成为Python程序的一部分?到目前为止,我唯一知道的是subprocess.call(['C:\\Program Files\\MikTeX\\miktex\\bin\\miktex-texworks.exe'])打开了排字界面。最后,我想要一个Python程序,它基本上输出一个pdf (方程需要LaTeX )。
发布于 2014-09-14 05:07:11
要调用latex程序,提供文件名和所需的输出文件名:
import subprocess
def create_pdf(input_filename, output_filename):
process = subprocess.Popen([
'latex', # Or maybe 'C:\\Program Files\\MikTex\\miktex\\bin\\latex.exe
'-output-format=pdf',
'-job-name=' + output_filename,
input_filename])
process.wait()因此,如果我执行了create_pdf("my_input_file.tex", "my_output_file.pdf"),这将导致Windows在命令行上运行以下命令:
latex -output-format=pdf -job-name=my_output_file.pdf my_input_file.tex...then在从函数返回之前等待LaTeX完成。请注意,我们没有调用texworks.exe,它本质上是一个文本编辑器--我们直接调用latex.exe,这是转换tex文件的实际程序。
只要input_file.tex存在于与Python相同的文件夹中,您就应该得到输出pdf。如果您不想生成额外的文本文件,您可能可以将生成的字符串输送到latex程序中,尽管您必须对latex和子进程如何工作进行更多的研究,以确定这是否可行。
https://stackoverflow.com/questions/25830237
复制相似问题