不支持mathjax
想请教以下对md文件的解析是在哪个部分完成的?目前似乎不支持mathjax显示数学公式
@jimmy9065 md文件的解析时在浏览器端实现的,使用的时marked库,如果要支持mathjax应该加个解析库就行了
所以是在statics的script里添加一个js和html里添加对应语句就可以了吗?
@jimmy9065 刚看了一下marked里面的issues,貌似不支持mathjax,不过有相关的pull requests,要支持的话估计要修改部分marked代码,比如这里code
@jimmy9065 好吧,看漏了,marked支持~~自定义~~
试了下没效果,不知道这个自定义要怎么作?
@jimmy9065 忽略我上面说的自定义:cry:,再次看错了,那是一个fork,不过可以看这里,这里有个marked+mathjax配合使用的例子,具体就是先使用mathjax处理,在使用marked处理,我试着增加mathjax支持,但是发现mathjax好大,整个mathjax有十多二十M,不清楚里面到底可以精简到多小,作为一个markdown预览插件,为了支持mathjax增加这么大体积我觉得太大了,我比较倾向于创建另一个辅助插件增加支持mathjax,按需下载
试过这个吗?link
我也想要mathjax支持, 插件不错啊, 用来写数学博客完全秒杀其他编辑器. 目前我都是用stackedit, 没有vim的编辑方便. 但是支持mathjax自动预览. 而且经过我建议stackedit的插件支持_部分渲染_, 结果真的可以...
总之, mathjax其实是支持在线渲染的, 基本的东西只需要两行, 一行是mathjax cdn(这个就是一行js script), 一行是mathjax config(这个也可以不要, 使用默认不方便而已). 不用使用离线版.
我最近在更新我写的WP插件, 它除了自动根据页面是否有数学公式决定是否加载MathJax渲染脚本, 还会翻译部分latex命令. 例如title, author, tableofcontents, itemize等等.
欢迎交流!
不知你具体指什么例子, mathjax就是用来渲染数学公式的, 写数学用的latex, 数学公式部分mathjax完全可以正常渲染. 现在N多网站都用了, 例如ams math, arxiv, 等著名的数学站点. 甚至各个数学博客都是用mathjax渲染的.
如果是如何将mathjax整合到real time preview的话, 我决定也许可以参考stackedit的源码, 这个好像也是公开的. 其实我没做过实时渲染, 都是写好后, 刷新渲染数学.
@vanabel 通过我上面说的那个例子可以做到实时渲染,其实我就想问的是是否有更好的方法,因为我不熟悉MathJax,如果没有的话用上面的方法也是可行的,目前的问题就是怎么引入MathJax,如果只是cdn的话,体验还是不好,因为每次都要在线加载,并且体积也挺大的,加载还有点慢,而且没网的时候用不了这是不大能接受的。
@vanabel mathjax 解压后 180 多 M,测试的时候我发现如果加载配置是config=TeX-AMS-MML_HTMLorMML的话,只加载了下面的几个文件:
config/TeX-AMS-MML_HTMLorMML.js
https://cdn.mathjax.org/mathjax/contrib/a11y/accessibility-menu.js
jax/output/HTML-CSS/jax.js
jax/output/HTML-CSS/fonts/STIX/fontdata.js
是不是可以减少一些体积?比如字体文件 130 多 M,测试的时候发现并没有加载字体文件。还有就是这个配置文件参数,最通用的是哪一个?
我一般比较常用的是SVG的配置, 但是好像说对低版本IE的兼容性不是很好. 一般用你给的配置就挺通用的. 然后给定配置后可以精简字体的, 例如精简Mathjax就针对 Jekyll精简后大约只有1.7M. 同时这里有个如何精简的教程也可以参考.
MathJax 加载使用了一个通用的配置 TeX-AMS-MML_HTMLorMML,MathJax 的体积减小为 10 M 左右,还是有些大,鉴于不是所有人都需要这个功能,所以把 MathJax 显示数学公式部分拆分为 mathjax-support-for-mkdp 插件,需要预览数学公式的话需要安装这个插件。
Plug 'iamcco/mathjax-support-for-mkdp'
Plug 'iamcco/markdown-preview.vim'
有时间更新插件后试试能不能用:)
我发现联网的话, 不用mathjax-support-for-mkdp. 本地测试完全正常. 不过如果真涉及到写数学的话, 大家不知道怎么处理数学的定理环境? 是不是可以尽量保持latex源码(像mathjax一样可以\begin{equation}...\end{equation}), 我期望能够:
- 快速输入
\begin{thm}[thmname]...\end{thm}}等(自动补全, 也许用UltiSnap自定义?) - 自动渲染成标准的定理格式(
<div class='thm'><span class='thm-h'>thmname</span><em>...</em></div>)
不用 mathjax-support-for-mkdp 也可以?不科学啊,你是不是自己修改过 index.html 自己添加过 cdn 那个 script ?
不过如果真涉及到写数学的话, 大家不知道怎么处理数学的定理环境? 是不是可以尽量保持latex源码(像mathjax一样可以\begin{equation}...\end{equation}), 我期望能够: 快速输入\begin{thm}[thmname]...\end{thm}}等(自动补全, 也许用UltiSnap自定义?) 自动渲染成标准的定理格式
(<div class='thm'><span class='thm-h'>thmname</span><em>...</em></div>)
由于我对写这些数学公式也不是太懂,这个定理环境是什么?还有后面这个渲染成标准的定理格式和现在的区别是啥?
- 我没有修改过index.html, 联网情况下不用mathjax support plugin是正常的逻辑, 请考虑保留或开发;
- 定理环境是写各种定理的latex environment, 可以参考latex share的例子
- 如果不手动渲染的话, mathjax会认为是标准的数学环境, 但是实际上没有mathjax定义相应的渲染(也许是要加载mathjax宏包?amsthm?), 这会导致渲染不成功. 一个常见的办法是手动替换成标准的html+css. 不过此时需要注意的是定理的引用与自动编号问题.
PS. 关于3, 以前在stackedit写过一个issure也许可以参考.
@vanabel 不好意思,最近太忙了,忘了回复了。我大致看了一下你提到的issue,貌似就是把相关的替换为对应的标签,这个我有时间在看看怎么搞吧。