如何使用Python渲染Latex标记?

24

如何在Python中展示简单的LaTeX公式?也许numpy是正确的选择?

我有以下Python代码:

a = '\frac{a}{b}'

我想将此内容以图形输出的形式显示(例如 matplotlib)。


你说的“在Python中显示LaTeX公式”是什么意思?你想从.tex文件中提取一个公式并将其打印到Python的标准输出,还是想在Python中实现在.tex(pdf/ps)文件中显示的公式,或者其他什么? - Matti Lyra
你能澄清一下吗?你想要打印到哪里?你想要生成图像还是寻找GUI内部的某些内容? - Wolph
抱歉问题不够清晰。:/ 请查看编辑。 - kame
请查看matplotlib网站上的文档:- 使用LaTeX进行文本渲染 - ars
这个问题在这里有一个使用起来更容易的答案:https://dev59.com/RloV5IYBdhLWcg3wauKP#36313217 - Paul Wintz
6个回答

21

根据Andrew的建议,可以使用matplotlib进行一些小工作。

import matplotlib.pyplot as plt
a = '\\frac{a}{b}'  #notice escaped slash
plt.plot()
plt.text(0.5, 0.5,'$%s$'%a)
plt.show()

有人能解释一下第三行吗?分号只是打错了吗? - AnnanFay
@Annan 分号只是分隔两行代码。你也可以将plt.text(0.5,0.5,'$%s$'%a)放在新的一行上。 - ostrokach

20

在Jupyter Notebook中使用f-string格式化$x_i$变量的答案,基于这个回答

from IPython.display import display, Latex
for i in range(3):
    display(Latex(f'$x_{i}$'))

输出屏幕截图

注意:f-string(格式化字符串字面值)使用大括号来插入 Python 变量i的值。您需要将大括号加倍f'{{}}')才能在 LaTeX 代码中实际使用 {},否则您可以直接在普通 Python 字符串(而不是 f-string)中使用单个大括号。

顺便说一句:我很惊讶 Stack Overflow 还没有数学标记


在我看来,这应该是答案。清晰简洁。 - Ravi
1
在我的系统中,它显示"<IPython.core.display.Latex object>"。这是一个错误还是我忘记启用某些内容了?(我使用的是MacOS系统) - Shaheer ziya
3
@Shaheerziya 可能是因为你不在 jupyter 笔记本或实验室内?你是在 Python 提示符或笔记本内执行代码吗? - Paul Rougieux

8
在Pandas中创建数学公式。
a = r'\frac{a}{b}'
ax = plt.axes([0,0,0.3,0.3]) #left,bottom,width,height
ax.set_xticks([])
ax.set_yticks([])
ax.axis('off')
plt.text(0.4,0.4,'$%s$' %a,size=50,color="green")

enter image description here

a = r'f(x) = \frac{\exp(-x^2/2)}{\sqrt{2*\pi}}'
ax = plt.axes([0,0,0.3,0.3]) #left,bottom,width,height
ax.set_xticks([])
ax.set_yticks([])
ax.axis('off')
plt.text(0.4,0.4,'$%s$' %a,size=50,color="green")

enter image description here


5

Matplotlib已经可以使用TeX,只需在~/.matplotlib/matplotlibrc中设置text.usetex: True即可。然后,您可以在所有显示的字符串中使用TeX,例如,

ylabel(r"Temperature (K) [fixed $\beta=2$]")

请确保使用与正常行内TeX相同的$!字符串前面的r表示不进行替换;否则,您必须像提到的那样转义斜杠。

更多信息请访问matplotlib网站。


matplotlibrc在matplotlib文件夹中吗?我找不到它 :/ - kame
在UNIX系统中,它位于我上面提到的目录中。在Windows上,我不知道。请查看文档。 - Andrew Jaffe
我正在使用Ubuntu 12,并在系统中(而非用户)安装了matplotlib,在我的情况下,它位于/etc/matplotlibrc。 - neu-rah
1
那个选项真的必要吗?文档指出,如果您想使用实际的LaTeX安装进行高级功能,则需要该选项,而TeX数学渲染则是natively supported - Tobias Kienzler

3

没有ticks:

a = r'\frac{a}{b}'
ax = plt.axes([0,0,0.1,0.2]) #left,bottom,width,height
ax.set_xticks([])
ax.set_yticks([])
plt.text(0.3,0.4,'$%s$' %a,size=40)

1
使用matplotlib绘图,
import matplotlib.pyplot as plt
a = r'\frac{a}{b}'
ax=plt.subplot(111)
ax.text(0.5,0.5,r"$%s$" %(a),fontsize=30,color="green")
plt.show()

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接