是否有可能在jupyter笔记本中将'print`输出显示为LaTeX?

Sqo*_*shu 10 latex python-3.x jupyter-notebook

我正在写一个非常简单的脚本来计算椭球面积和体积以及其他一些东西.我正在展示我的输出打印出来像这样:

print('Dims: {}x{}m\nArea: {}m^2\nVolume: {}m^3'.format(a, round(b,2), P, V))
Run Code Online (Sandbox Code Playgroud)

当然,这给了这个输出(带有样本数据):

Dims: 13.49x2.25m
Area: 302.99m^2
Volume: 90.92m^3
Run Code Online (Sandbox Code Playgroud)

正如我之前写的,我使用的是jupyter笔记本,因此我可以在markdown单元格中使用$运算符来创建LaTeX公式.

我的问题是,是否有可能使用Python代码生成输出,它将被理解为LaTeX公式并以这样的方式打印:

Latex_example

感谢所有回复.

seb*_*bas 15

使用对象IPython.displaydisplay函数Math:

from IPython.display import display, Math
display(Math(r'Dims: {}x{}m \\ Area: {}m^2 \\ Volume: {}m^3'.format(a, round(b,2), P, V)))
Run Code Online (Sandbox Code Playgroud)

注意使用Latex样式的\\换行符和r''字符串,它将反斜杠作为文字反斜杠,而不是将它们视为转义字符.

这里找到解决方案.


小智 13

这是另一种解决方案,可让您更轻松地包含文本和数学:将 Markdown 与r(因此反斜杠不会成为转义字符)和f字符串一起用于值插入。

from IPython.display import display, Markdown

a = 13.49
b = 2.2544223
P = 302.99
V = 90.02

display(Markdown(
   rf"""
Dims: ${a}m \times{b:5.2}m$

Area: ${P}m^2$

Volume: ${V}m^3$
"""))
Run Code Online (Sandbox Code Playgroud)

  • 小心卷曲的乳胶括号和 F 型字符串!例如 `rf'Dims: ${13.49}m \times{2.2544:5.2}\sqrt{Hz}$'` 需要是 `rf'Dims: ${13.49}m \times{2.2544:5.2}'r'\ sqrt{Hz}$'`。:) (4认同)