在 Colaboratory 的输出单元格中渲染 LaTeX

Rendering LaTeX in output cells in Colaboratory

我希望单元格像

from IPython.display import display, Math
display(Math(r"e^\alpha"))

像在普通 jupyter 中一样使用 MathJax 进行渲染, 但它只显示乳胶代码,如:

$$e^\alpha$$

有没有办法让 Colaboratory 正确渲染它? (它可以很好地处理文本单元格)。

首先你的问题不正确,应该是"inline"colaboratory没有输出

第二个回答你的问题,只需将菜单栏中的 "Code" 选项更改为 "Markdown" 并在 "In box" 中执行 $= e^\alpha$$$= e^\alpha$$

这是例子 colab show latex in mardown

更新:抱歉更新晚了,我在colaboratory notebook上看到了这么大的区别 , 要在其中显示 LaTeX,只需在插入菜单栏中插入 "text cell" 并在输入框

中执行 $$= e^\alpha$$$= e^\alpha$

我不确定这是正确的方法,但它有效:

from IPython.display import Javascript, Math
display(Javascript("var sc = document.createElement('script')"))
display(Javascript("sc.type='text/javascript'; sc.src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/MathJax.js?config=TeX-AMS-MML_HTMLorMML&dummy=.js'"))
display(Javascript("var currentDiv = document.activeElement.parent"))
#display(Javascript("sc.onload = function () {console.log('loaded')};"))
display(Javascript("document.body.insertBefore(sc, currentDiv)"))
display(Math(r'F(k) = \int_{-\infty}^{\infty} f(x) e^{2\pi i k} dx'))
display(Math(r"e^\alpha"))

稍微简化 scraaappy 的回答。

from IPython.display import HTML, Math
display(HTML("<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/"
             "latest.js?config=default'></script>"))
Math(r"e^\alpha")

它仅包含 MathJax 库,因此可以显示以下方程式。

或使用 built-in output._publish(2018 年 8 月)

from IPython.display import Math
from google.colab.output._publish import javascript
url = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/latest.js?config=default"

javascript(url=url)
Math(r"e^\alpha")

除了 CDN,您还可以使用 Colab 自带的 MathJax。 https://colab.research.google.com/static/mathjax/MathJax.js?config=default

作为临时解决方法,您可以定义自己的方程式渲染函数:

from IPython.display import HTML, Math
def mview(e):
  display(HTML("<script src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.3/"
         "latest.js?config=default'></script>"))
  return Math(latex(e))

然后使用如下:

e = Integral(cos(x)**2, (x, 0, pi))
mview(e)

对于那些使用 HandCalc 的人

我最后做了一些不同的事情,但最终解决了这个问题:

from IPython.display import Math

接下来,在您的手算器中:

%%capture texres
%%tex 2
YOUR CODE HERE

然后在下一个单元格中:

Math(texres.stdout[3:-3])

这应该(有点)像在 Jupyterlab 中使用 Handcalc 一样工作

尽情享受吧。