使用 Python 生成并显示 LaTeX 文件的 PDF

使用 Python 生成并显示 LaTeX 文件的 PDF

在这个脚本的最后,我想添加几行代码:

  • 编译 myfile.tex,以更新前一个脚本所做的修改;
  • (生成并)最终显示myfile.pdf,它是由myfile.tex生成的pdf。

请注意,我不希望 TexMaker 在编译期间打开 LaTeX 文件。当我尝试使用 os 模块的简短解决方案时遇到了这个问题,我在论坛上找到了这个解决方案;这就是我正在寻找替代方案的原因。此外,我不知道如何使用命令(在 Python Shell 之外),例如此解决方案

主要目标仍然是简单,因为整个脚本(不仅仅是要添加的几行)应该对初学者和中级学生(包括我)来说都是可读和可理解的;)我希望有这样的解决方案。如果您有任何想法,请随时提供您的答案,以便我可以测试它!

编辑:该文档不包含任何参考资料、图片、图表……或其他复杂元素。我尝试按照注释中的建议使用命令pdflatex <name>.tex,但 PDF 并未生成或更新。

答案1

# works with Python3
import os
import platform
import subprocess

# TeX source filename
tex_filename = 'my_doc.tex'
filename, ext = os.path.splitext(tex_filename)
# the corresponding PDF filename
pdf_filename = filename + '.pdf'

# compile TeX file
subprocess.run(['pdflatex', '-interaction=nonstopmode', tex_filename])

# check if PDF is successfully generated
if not os.path.exists(pdf_filename):
    raise RuntimeError('PDF output not found')

# open PDF with platform-specific command
if platform.system().lower() == 'darwin':
    subprocess.run(['open', pdf_filename])
elif platform.system().lower() == 'windows':
    os.startfile(pdf_filename)
elif platform.system().lower() == 'linux':
    subprocess.run(['xdg-open', pdf_filename])
else:
    raise RuntimeError('Unknown operating system "{}"'.format(platform.system()))

相关内容