簡體   English   中英

如何從python調用MiKTeX生成pdf?

[英]How to generate pdf with call to MiKTeX from python?

我有一個Python程序,該程序生成適用於MiKTeX排版的純文本LaTeX標記。 如何使對源文件進行排版的過程成為Python程序的一部分? 到目前為止,我唯一想到的就是subprocess.call(['C:\\\\Program Files\\\\MikTeX\\\\miktex\\\\bin\\\\miktex-texworks.exe'])打開排版界面。 最終,我希望有一個Python程序,該程序實質上輸出pdf(我需要LaTeX來表示方程式。)

您要調用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

...然后等待LaTeX完成,再從函數返回。 請注意,我們沒有要求texworks.exe ,這基本上是一個文本編輯器-我們直接調用latex.exe ,實際的程序,其將TEX文件。

只要input_file.tex與Python腳本位於同一文件夾中,您就應該獲得輸出pdf。 如果您不想制作該額外的文本文件,則可能需要將生成的字符串通過管道傳輸到Latex程序中,盡管您必須對Latex和子流程的工作方式進行更多研究,以查看這是否可行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM