如何在 Python 中使用 LaTeX。

如何在 Python 中使用 LaTeX。

我需要从 Web 应用程序生成文档,并希望使用 Python 语言和 LaTeX 来完成此操作,有什么工具可以帮助我吗?

编辑
该应用程序将托管在Linux上,我们可以使用popen运行任何外部命令,目前没有定义的输入文档格式,也没有任何存储格式,但输出给最终用户应该是PDF。

编辑2
这些文档将包含复杂的表格、图形,并且需要排版方程式 - 因此需要使用 LaTeX。我们也不想使用中间文件,例如 xml->html->pdf

理想情况下,我希望有像 pyTeX 或 plasTeX 这样可以直接渲染为 PDF 的东西。

答案1

最近我专门为此编写了一个库。它支持表格、图表、矩阵等。 https://github.com/JelteF/PyLaTeX

答案2

这个问题应该关闭,因为它实际上与 LaTeX 无关,更适合 StackOverflow。无论如何,答案是,就像使用 HTML 一样,最好的方法是使用 Jinja2 等模板系统并输出 LaTeX 文件。一旦你有了一个 LaTeX 文件,只需使用子进程模块来运行 pdflatex(显然您需要在服务器上安装它)。不要忘记使用“-interaction nonstopmode”标志。我可以深入介绍技术细节,但它确实更适合其他网站。

答案3

PyTeX是一个允许在 Python 中使用 TeX 的开源项目。

答案4

这就是你问的吗?(我使用 TeX 来节省代码空间,但 LaTeX 也一样)。如果它您要问的是什么,然后剪切并粘贴此示例,确保粘贴后的缩进是正确的。

#!/usr/bin/env python
import sys, os, os.path
filename = sys.argv[1]
opfile = sys.argv[1] + '.tex'
outfile = open(opfile, 'w')
pageAry = []
def a_tex_file(title):
    global pageAry
    pageAry.append('\\vskip2em\n\\font\\titlefont=cmr12 at 14.4pt\n\\font\\default=cmr12\n')
    pageAry.append('\\def\\today{January 21, 2011}\n')
    pageAry.append('\\centerline{\\titlefont ' + title + '}\n\\vskip5pt\n\\vskip5pt\\centerline{\\default blahblahblah}\n')
    pageAry.append('\n\\bye')
return 1

a_tex_file("blunk")

for i in pageAry:
    outfile.writelines(i)
outfile.close()
os.system('tex '+ opfile)
os.system('xdvi ' + filename + '.dvi & ')

相关内容