在Python中生成TeX/LaTeX文件并进行编译

4
我正在编写一个数据处理代码,并将结果提供给 TeX/LaTeX 文件,该文件需要由 Python 编译(即 Python 应发送命令以编译 TeX/LaTeX 文件)。
目前,我计划生成一个文本文件(扩展名为 .tex),其中包含 TeX/LaTeX 所需的语法,并使用 os.system 调用外部系统命令。是否有更简单的方法或模块可以完成这个任务?

有http://starship.python.net/crew/bhoel/PyLaTeX-0.2/html/PyLaTeX.LaTeX.html,但我不知道它目前的支持情况(Python的哪些版本等)。 - Alex Martelli
1
根据LaTeX文档的复杂程度,您可能需要运行pdflatex(以及其他工具)多次。因此,更好的解决方案是调用latexmk(如果您的TeX发行版包含它)。这将处理所有这些问题。 - Roland Smith
3个回答

4

没有这样的Python模块存在,但你可以尝试使用带有.tex扩展名的文本文件生成所需语法的文本文件,并通过在Python中运行系统命令来编译它:

import os
os.system("pdflatex filename")

3
文档建议使用subprocess模块。此外,检查返回值和/或输出以查看是否需要再次运行pdflatex是一个好主意。 - Roland Smith

1

pyLatex也需要编译器,有没有办法在不安装任何额外软件包的情况下生成呢? - El_1988

0

请确保您的系统已安装PerlMikTeX(用于支持latexmkpdflatex编译器)。

如果没有安装,您可以从https://www.perl.org/get.html下载Perl

并从https://miktex.org/download下载MikTeX

还要记得查看http://mg.readthedocs.io/latexmk.html#installation,因为它很好地指导了关于Latex编译器的使用。

我有一个名为document.tex的文件,其内容如下。

\documentclass{article}%
\usepackage[T1]{fontenc}%
\usepackage[utf8]{inputenc}%
\usepackage{lmodern}%
\usepackage{textcomp}%
\usepackage{lastpage}%
%
%
%
\begin{document}%
\normalsize%
\section{A section}%
\label{sec:A section}%
Some regular text and some %
\textit{italic text. }%
\subsection{A subsection}%
\label{subsec:A subsection}%
Also some crazy characters: \$\&\#\{\}

%
\end{document}

最后创建任何Python文件,粘贴以下代码之一并运行。

第一种方法

# 1st way
import os

tex_file_name = "document.tex";
os.system("latexmk " + tex_file_name + " -pdf");

第二种方法

# 2nd way
import os

tex_file_name = "document.tex";
os.system("pdflatex " + tex_file_name);

如果要编译复杂的 LaTeX 文件,您需要查找使用 latexmkpdflatex 命令时传递的额外选项。

谢谢。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接