我对 LaTeX 还很陌生。我需要python
在 LaTeX 中运行包,但我不能。我在 Windows 7 下使用 MiKTeX 2.9,但程序给了我这个错误:
Latex error: ! I can't find file `bin/**filename**.py.out'.
Latex Error: Emergency stop.<read 2> \ end{python}
答案1
目前python.sty
不在 MikTeX 软件包存储库中。您必须手动安装它。
您可以从保存了 Martin R. Ehmsen 编写的 python.sty 原版的人那里下载 python.sty。这 (比特桶) 就是这样一个地方。
然后复制python.sty
到您的工作目录。
这个 python.sty 需要一个 python 解释器。您需要在 Windows 上安装一个。然后修改 python.sty 以调用python.exe
而不是/usr/bin/python
。我无法确认这是否会起作用。
此主题tex.stackexchange.com表明这种修改是可能的,并提供了修改后的适用于 Windows 的 python.sty 版本。
如果一切顺利,您可以将其移动到本地 texmf 树,按照 MikTeX 手册中所述并更新路径数据库。
答案2
有几种方法可以通过 LaTeX 运行 Python。第一个python.sty
文件有点过时,我推荐 Noon Silk 的更新版本:github 上的 python.sty。
另外还有SympyTeX,它被编写用于将 python sympy 包的输出包含到 LaTeX 文档中,但也可以与纯 python 很好地配合使用。
这两个包都不包含在 CTAN 或 MiKTeX 中。
在这两种情况下,LaTeX 都需要运行你的 Python 可执行文件,因此它必须包含在当前路径中。此外,你还必须允许 LaTeX 运行其他可执行文件,例如通过参数--enable-write18
。
答案3
Alexander 的回答让我开始思考这个问题。python.sty 文件来自github 上的 python.sty当我将第 61 行从以下内容更改为以下内容时,效果很好:
cat \@pythoninclude\space bin/\jobname.py | python > bin/\jobname.py.out 2> bin/\jobname.py.err
到:
python \jobname.py > \jobname.py.out 2> \jobname.py.err
如您所见,我还删除了 bin 文件夹。因此,我还将第 63 行从以下内容进行了更改:
\immediate\input bin/\jobname.py.out}
到:
\immediate\input \jobname.py.out}
使用这个.sty 文件并将参数添加到对我有用的-enable-write18
命令行中。pdflatex
答案4
我的PythonTeX该软件包处于测试阶段,但在 Windows 下运行良好。它允许快速执行 Python 代码(仅执行修改后的代码,并且代码并行运行)。Python 错误消息与 LaTeX 文档同步以提供正确的行号。此外,可以使用内置的 Pygments 访问来排版代码。