是否有人研究过,使用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里那样格式化代码,见谅。
et2010
2017 年10 月 29 日 10:38
2
只要代码块的运算结果是 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\)
则无问题,顺利解析为
下面直接将ORG代码,使用C-c,c-e h输出的代码,
所以我以为通过设置,跟IPYTHON一样,可以输出mathjax可以解析的代码块。
et2010
2017 年10 月 29 日 11:26
4
那后端进程就必须用 Ipython 而不能用 python 喽,建议不折腾的话考虑 scimax 或者 ob-ipython 吧
下面是我用 scimax 得到的结果,导出到 html 就会被 mathjax 渲染
1 个赞
谢啦,正在使用Ipython,貌似输出的结果一样,正在实验,就是想得到你那种结果。
我始终出不来LATEX格式,能看看你的.EMACS配置吗?我看看都加载了那些包,我估计包不够。
晕,学习曲线太陡了,包连着包,开始看看SCIMAX是啥玩意。:)并同时继续OB-ipyhon.
et2010
2017 年10 月 29 日 13:51
8
scimax 不是独立的包了,是一套完整的配置。不过好在里面的包也可以单独拿出来用,但是要小心依赖关系。
手动安装配置了scimax,看看情况。网上看到一个视频,
看起来确实很强大,正在配置,看配得出来不。
试试下面的黑科技
#+BEGIN_SRC emacs-lisp :results output drawer replace :exports both
(prin1 '$y=ax+b$)
#+END_SRC
搞了一天,只能搞出这个来。还错位的。还乱码。
试试楼上黑科技看看。谢谢啦。
ONLINE 显示图片搞定了,输出公式老是出不来MATHJAX可渲染代码,主要是想试试看sympy输出,其了怪了。
吧SCImax,整个CLONE下来绿化了之后,还是没有搞出来。可能教程没有看仔细。
et2010
2017 年10 月 30 日 11:43
14
你也可以再等等,等到我的 PR 被接受,我对结果显示做了一些优化。
et2010
2017 年10 月 30 日 11:47
15
你的截图说明你得到的是 text/plain
类型的结果,而不是 text/latex
,还有乱码是你 emacs 所用的字体不包含所需的 unicode 字符,赶快换字体吧。
你使用的姿势不对吧, 你应该输出 latex 公式,并且包围在 \begin{equXXX} 里面,这样导出的时候,org为html时,才能显示公式
et2010
2017 年10 月 31 日 00:50
17
ipython 可以输出 text/plain
和 text/latex
两种类型的结果,当 text/plain
时,是用 Unicode 字符表示公式的;当 text/latex
时,确实是输出 latex 代码并且自动用 $$
包围的,不需要再用 \begin{equation}
包围。楼主的问题是他得到的是 text/plain
类型的结果。
关键是多行latex代码, 用$$分割, org 处理起来是不是有问题? 我没有试过。。。。
et2010
2017 年10 月 31 日 00:57
19
双 $
,也就是 $$...$$
相当于 \[...\]
org 处理起来是没有问题的。我上面的回复 中的图片就是双 $
包围的公式导出到 html 后的效果。
1 个赞
我看到你提交的了分枝了,你这个是增加功能了,不知道他什么时候搞清楚了,才会合并。能否将你的“scimax-org-babel-ipython.el”扔给我测试一下,[email protected] 。谢谢.原来是你自己改了代码,按照相同的参数,我说我诈都搞不出来。以为自己包加载有问题。一直再折腾,原来就没有这个FUNCTION。
我并不搞开发,只是将EMACS当成LP工具。感觉如果搞的人多了,需求和问题的解决都很快,EMACS会越来越强大啊。