如何使用emacs org python 直接输出mathjax直接可以渲染的代码?

是否有人研究过,使用python直接输出mathjax直接可以渲染的代码:比如

src python : results output
from __future__ import division
from sympy import *
x, y, z, t = symbols('x y z t')
k, m, n = symbols('k m n', integer=True)
f, g, h = symbols('f g h', cls=Function)
;(1/cos(x)).series(x, 0, 10)
print ("\(%s\)"%((1/cos(x)).series(x, 0, 10)))
#+END_SRC

渲染成像jupyter里那样。

没有学会像stackoverflow里那样格式化代码,见谅。

只要代码块的运算结果是 latex 代码,导出到 html 后就可以由 mathjax 渲染。无需额外设置。

如果运算结果是(公式的)图片,导出到 html 后只要图片链接正确,那么也可以立即显示。

如果你要的是运算结果在 org buffer 内显示为公式(只有一种可能,即渲染为图片),那么可以使用 scimax (或者 ob-ipython 应该也可以,我没有试过)。

所以问题的关键是搞清楚你要的到底是在 org buffer 内显示渲染的公式,还是在导出的 html 网页中显示渲染后的公式。据我所知前者是没法用 mathjax 渲染的。

谢回答,我正是想在html里面显示,ORG即时预览还在试验,没有配置LATEX,使用我的代码打出来的结果是:

#print ("\(%s\)"%((1/cos(x)).series(x, 0, 10)))

\(1 + x**2/2 + 5*x**4/24 + 61*x**6/720 + 277*x**8/8064 + O(x**10)\)

这个**,还有/,貌似在HTML ,Mathjax 解析不出来。 但类似这样的代码

\(32^2+\alpha_1^2=\beta_2^3\)

则无问题,顺利解析为 捕获3 下面直接将ORG代码,使用C-c,c-e h输出的代码,

所以我以为通过设置,跟IPYTHON一样,可以输出mathjax可以解析的代码块。

那后端进程就必须用 Ipython 而不能用 python 喽,建议不折腾的话考虑 scimax 或者 ob-ipython 吧

下面是我用 scimax 得到的结果,导出到 html 就会被 mathjax 渲染

1 个赞

谢啦,正在使用Ipython,貌似输出的结果一样,正在实验,就是想得到你那种结果。 我始终出不来LATEX格式,能看看你的.EMACS配置吗?我看看都加载了那些包,我估计包不够。

你试了 scimax 吗?我用的 scimax。

晕,学习曲线太陡了,包连着包,开始看看SCIMAX是啥玩意。:)并同时继续OB-ipyhon.

scimax 不是独立的包了,是一套完整的配置。不过好在里面的包也可以单独拿出来用,但是要小心依赖关系。

手动安装配置了scimax,看看情况。网上看到一个视频,

看起来确实很强大,正在配置,看配得出来不。

org-babel 可以实现

试试下面的黑科技

#+BEGIN_SRC emacs-lisp :results output drawer replace :exports both
(prin1 '$y=ax+b$)
#+END_SRC

搞了一天,只能搞出这个来。还错位的。还乱码。

试试楼上黑科技看看。谢谢啦。 ONLINE 显示图片搞定了,输出公式老是出不来MATHJAX可渲染代码,主要是想试试看sympy输出,其了怪了。

吧SCImax,整个CLONE下来绿化了之后,还是没有搞出来。可能教程没有看仔细。

你也可以再等等,等到我的 PR 被接受,我对结果显示做了一些优化。

你的截图说明你得到的是 text/plain 类型的结果,而不是 text/latex,还有乱码是你 emacs 所用的字体不包含所需的 unicode 字符,赶快换字体吧。

你使用的姿势不对吧, 你应该输出 latex 公式,并且包围在 \begin{equXXX} 里面,这样导出的时候,org为html时,才能显示公式

ipython 可以输出 text/plaintext/latex 两种类型的结果,当 text/plain 时,是用 Unicode 字符表示公式的;当 text/latex 时,确实是输出 latex 代码并且自动用 $$ 包围的,不需要再用 \begin{equation} 包围。楼主的问题是他得到的是 text/plain 类型的结果。

关键是多行latex代码, 用$$分割, org 处理起来是不是有问题? 我没有试过。。。。

$,也就是 $$...$$ 相当于 \[...\] org 处理起来是没有问题的。我上面的回复中的图片就是双 $ 包围的公式导出到 html 后的效果。

1 个赞

我看到你提交的了分枝了,你这个是增加功能了,不知道他什么时候搞清楚了,才会合并。能否将你的“scimax-org-babel-ipython.el”扔给我测试一下,[email protected]。谢谢.原来是你自己改了代码,按照相同的参数,我说我诈都搞不出来。以为自己包加载有问题。一直再折腾,原来就没有这个FUNCTION。

我并不搞开发,只是将EMACS当成LP工具。感觉如果搞的人多了,需求和问题的解决都很快,EMACS会越来越强大啊。