我可以在 LaTeX 中执行 Python 代码吗?

我可以在 LaTeX 中执行 Python 代码吗?

这次我来找你不是带着一些代码而是带着一个大问题:

有没有简单的方法可以在我的文档中运行一些 python 代码?

我遇到了一些选择:

  • Sage:安装相当繁重……最终无法使其工作。
  • 一个名为 的过时文件python.sty,似乎已从互联网上部分删除(许多关于它的页面都只是给出 404 错误)。我在这里看到它:https://texample.net/weblog/2008/oct/24/embedding-python-latex/ 而且它看起来确实很有前途。它应该将你放在 python 环境中的代码写入文件并运行它,听起来好得令人难以置信……如果它在某个时候确实有效(甚至在线编译似乎也是如此),现在就不行了。我在一个旧的 github 目录中找到了该文件的一个版本,它可以部分运行,但会出现一些编译错误,如“缺少数字,视为零。”……一些讨论表明它与 LuaTex 是多余的,我查了一下,但真的看不出来。这里也知道它:Latex-Python 组合无法在 Mac 上运行
  • 现在我正在看 Pythontex

那么,有什么建议吗?最好的是我可以在 Overleaf 上使用的东西(我可以做梦吧?)

为什么?因为我刚刚结束了一个我想做的项目,其中我的编译会进行一些计算。我遇到了 LaTeX 的弱点和局限性,在 Python 中看似最简单的事情在 LaTeX 中实际上并非如此。

感谢您的阅读。

答案1

您可以使用 pythontex 或直接手动调用 python,这里是在 overleaf 上运行的 python 计算 1+2=3(有更简单的加法)

在此处输入图片描述

tex 代码(需要--shell-escape但那是自动的在overleaf) 是

\documentclass{article}

\begin{document}

\input{|python -c 'print(1+2)'}

\end{document}

这也适用于多行 Python 脚本:

在此处输入图片描述

\documentclass{article}
\usepackage{color}
\begin{document}

\input{|python mypy.py}

\end{document}

mypy.py

print("\\section{The First}\n")

print("Some colours:\n\n")

clr=['red','blue','green']

for c in clr:
    print("\n\\textcolor{" + c + "}{" + c +"}\n")

在 Overleaf 上运行的示例(尽管我不保证它会永远运行,所以这里也有一个屏幕截图)

https://www.overleaf.com/read/gpfndyfcrhhr

在此处输入图片描述

相关内容