如何使用 pythontex 包将 latex 作为字符串从 Python 返回到 Latex 文档

如何使用 pythontex 包将 latex 作为字符串从 Python 返回到 Latex 文档

我知道如何使用基本pythontex变量。

但现在我想做一些超出基本范围的事情。我将解释问题是什么,然后在下面给出 MWE。要运行 MWE,需要在 PC 上安装 python。

我需要调用 python 进行一些符号计算,比如使用 sympy 积分一个函数,然后将 Latex 中的结果返回到 Latex 文档。为此,我使用latex()Python 中的命令来生成细绳乳胶结果的表示。我想在乳胶文档中排版这个字符串。

该字符串返回到乳胶文档正常,只是在编译为PDF时它不会呈现为实际的乳胶。

它仍然是原始字符串,但采用 Latex 格式,并带有所有反斜杠。

所以,我在进行此转移时出现了一些问题,这就是我需要帮助的地方。我是否需要以某种方式在 Latex 文档中进一步处理此结果?

为了使 MWE 非常简单,我没有在这个例子中使用 sympy,因为这可能需要您额外安装(它并不总是附带基本的 Python)。

因此,我只是将实际的 Latex 字符串结果直接放在那里,就像 sympy 已经执行一样。

这是 MWE

\documentclass[11pt]{article}%
\usepackage{pythontex}
\begin{document}
\begin{pyconsole}

#commented code. Remove comments if you have sympy 
#from sympy import *
#x=symbols('x')
#result = latex(integrate("(1+x)**(1/2)",x))
#This below is what result above will be. THis below is what I want
#send back to latex file, but renders as normal latex

result = '\\frac{2 \\left(x + 1\\right)^{\\frac{3}{2}}}{3}'
\end{pyconsole}

\[ 
 \int \sqrt{ 1+x } = \pycon{result}
\]
\end{document}

编译并运行如下

 pdflatex python_file_2.tex
 /usr/local/texlive/2020/texmf-dist/scripts/pythontex/pythontex.py  python_file_2.tex
 pdflatex python_file_2.tex

生成的 PDF 文件如下所示

在此处输入图片描述

然后,无需\pycon{result}尝试\pycon{print(result)}重​​新编译,现在这是 PDF 文件

在此处输入图片描述

仍然不起作用。我当然想要得到结果,就像我输入

  \int \sqrt{ 1+x } = \frac{2 \left(x + 1\right)^{\frac{3}{2}}}{3}

这使

在此处输入图片描述

问题在于如何将原始 latex 字符串从 python 返回到 pdflatex,以便将其用作纯 latex 而不是字符串。我查看了pythontex 教程但由于没有例子,我不知道该尝试什么。

如果你有兴趣看看上面的 Python 代码在 Python 内部是如何运行的,可以看看我的 Linux 机器上的代码。

>python
Python 3.7.3 (default, Mar 27 2019, 22:11:17)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from sympy import *
>>> x=symbols('x')
>>> result=latex(integrate("(1+x)**(1/2)",x))

>>> result
'\\frac{2 \\left(x + 1\\right)^{\\frac{3}{2}}}{3}'

在 Linux 上使用 TL 2020。

答案1

pyconsole\pycon不支持返回 LaTeX;返回的所有内容始终按原样显示。要获取 LaTeX 输出,您必须使用pycode\py或类似的环境和命令。

相关内容