我正在考虑学习 LaTex,我的选择取决于我如何将它与 Python 结合使用。我知道 PythonTeX,它允许您在 LaTeX 文档中使用 Python 代码。
但是有没有办法在单独的 .py 文件中编写代码,然后以某种方式将函数和变量导入 LaTeX 文档以使用结果?这些结果可以是 int、float 或 matplotlib 图。
将文本和 Python 代码分开但使用结果而不手动将其复制/粘贴到 LaTeX 文档中是可行的。
答案1
我不太确定该如何回答这个问题,所以让我从头开始。
从根本上讲,Latex 是一种允许您定义、格式化和编写文本文档的语言。它不像大多数编程语言那样具有对象和函数。最后,它被编译为静止的文档。因此,我不确定您为什么对 Python 集成感兴趣。
您可以编写一个 Python 程序来生成静态 tex 文件,然后将其编译为 pdf(如果您使用 pdflatex)。但这很麻烦,而且比一开始就编写 latex 文件的工作量更大。
可能存在动态编程元素有用的极端情况,但 tex 确实支持一些基本的编程功能。所以,我真的不明白它有什么用处。
除了实用性问题之外,我知道有些人使用 Python 为他们的文档生成数据/图表。我认识的大多数人都使用 Python 生成图表/数据,然后在 latex 中导入图表或 csv 文件。无需复制/粘贴。
我发现 PythonTex 是为那些想要在文档中添加 pyhton 代码的情况而设计的,这没问题。但是,就像大多数编程语言一样,我不建议将所有代码都放在一个大文件中。这只是一种不好的做法。但是,如果您无论如何都使用单独的 tex 文件,那么拥有单独的 python 和 tex 文件就没有什么好处了。您可以使用 MAKE 或 CMAKE(或您选择的任何其他构建环境)自动执行编译过程。
回答你的问题,我认为除了 PythonTex 之外,Latex 中没有 Python 集成。我认为你不能在环境中使用\import
或命令。(但我还没有测试过)。所以我不知道如何从 latex 方面做到这一点。话虽如此,你也许能够从 latex 文档中包含 Python 代码的文件中导入。(见\include
pycode
这里)。
如果我可以给你一个个人建议:如果你要写大型文档(书籍、论文等)或出版物(会议或期刊),我建议你学习 Latex。Latex 通常比 MS Word/Libreoffice/Openoffice 更好看,也更稳定。是的,学习起来很麻烦,学习曲线也很陡峭。但效果很好。我个人在个人和职业生活中使用它来处理大多数文档。
我使用 MAKE 文件来编译我的文档(包括:运行用 C 编写的模拟、执行 R 文件、生成表格和图表,最后编译 tex)。效果很好。
答案2
这sagetex 包让您访问计算机代数系统 Sage 以及 Python 编程。它将允许您使用字符串数据来自外部 Python 文件,如我的回答所示 我们可以在 latex 中导入 Python 文件吗?。但是,我无法让它从外部文件传递变量或函数。传递 LaTeX 代码字符串的功能非常有用。我在许多问题中都采用这种方法(不使用外部文件)。请参阅我绘制 康托函数其中输出字符串是使用 Python 和 Sage 创建并通过 插入的\sagestr
。这可为您的数据提供 LaTeX 质量图表。创建 Trig 表的类似想法这里使用 Python/Sage 创建字符串,快速轻松地完成繁重的工作。
关于 matplotlib 请参阅这里;不过这不是使用外部文件完成的。在 LaTeX 中使用 Python 非常简单,例如,使图像模糊。在集成环境中,你可以将 Sage 计算与 Python 编程结合起来,提高 tikz 图的准确性。由于您获得了 CAS,因此sagetex
可以为您提供更多工具数学规划。
这可钙平台“支持在与 LaTeX 文档相同的项目中运行 Python、SageMath、R 统计软件、Julia 等。”,它还支持pythontex
和sagetex
。还有很多支持 Python即使您不打算使用 LaTeX。
您可以使用外部 Python 文件中的 Python 原始字符串做很多事情。虽然在 LaTeX 中使用 Python 很容易,但我认为使用外部文件使用 Python 会有点麻烦。