在Colaboratory的输出单元中渲染LaTeX

时间:2018-03-30 11:33:28

标签: latex jupyter mathjax google-colaboratory

我希望像

这样的细胞
from IPython.display import display, Math
display(Math(r"e^\alpha"))

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

$$e^\alpha$$

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

5 个答案:

答案 0 :(得分:3)

简化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库,因此可以显示以下等式。

或使用内置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")

您也可以使用Colab附带的MathJax代替CDN。 https://colab.research.google.com/static/mathjax/MathJax.js?config=default

答案 1 :(得分:2)

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

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"))

答案 2 :(得分:1)

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

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)

答案 3 :(得分:0)

对于那些使用 HandCalc 的人

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

from IPython.display import Math

接下来,在您的手算单元格中:

%%capture texres
%%tex 2
YOUR CODE HERE

然后在下一个单元格中:

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

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

享受。

答案 4 :(得分:-1)

首先你的问题是不正确的,它应该是&#34;内联&#34;没有在colaboratory输出。

第二个回答你的问题,只需改变&#34; Code&#34;菜单栏中的选项为&#34; Markdown&#34; &#34;在框&#34;。

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

这是一个例子 colab show latex in mardown

更新:对不起我的最新更新,我在colaboratory笔记本中看到了这么差异 ,要在其中显示LaTeX,只需插入&#34;文本单元格&#34;在插入菜单栏和执行$$= e^\alpha$$$= e^\alpha$输入框