首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从python调用MiKTeX生成pdf?

如何从python调用MiKTeX生成pdf?
EN

Stack Overflow用户
提问于 2014-09-14 05:00:47
回答 1查看 2.9K关注 0票数 1

我有一个Python程序,它生成适合MiKTeX排版的纯文本MiKTeX标记。如何使排版源文件的过程成为Python程序的一部分?到目前为止,我唯一知道的是subprocess.call(['C:\\Program Files\\MikTeX\\miktex\\bin\\miktex-texworks.exe'])打开了排字界面。最后,我想要一个Python程序,它基本上输出一个pdf (方程需要LaTeX )。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-14 05:07:11

要调用latex程序,提供文件名和所需的输出文件名:

代码语言:javascript
复制
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在命令行上运行以下命令:

代码语言:javascript
复制
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和子进程如何工作进行更多的研究,以确定这是否可行。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25830237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档