一开始想写笔记的时候加入一点公式时觉得用html也无所谓,后面写了几行还是觉得用包吧……GitHub不支持Latex
也没有办法,找了一下发现Mathjax
是支持的,所以就找了一下教程把Mathjax
弄好了。
不过因为转义规则变了,所以本来_
会被转义成<em>
或是<i>
的语法被修改了。不过用*
转<i>
和__
转bold
目前看来不受影响。
当然,在Hexo 的 Next 主题中渲染 MathJax 数学公式一文的开头就有说:
类似的语义冲突的符号还包括
*
,{
,}
,\\
等。
目前还未碰到,之后碰到再加吧。
安装
两篇文章都说,使用kramed
比原生的marked
要好,所以卸载原本的marked
渲染引擎,然后换上新的kramed
渲染引擎:
1 | $ npm uninstall hexo-renderer-marked --save |
可选可不选……?
如何在 hexo 中支持 Mathjax?中还加了其他的几个步骤,我也按照这个步骤做了。不过其他的文章里好像并没有说需要下面的步骤:
更改/node_modules/hexo-renderer-kramed/lib/renderer.js
:
1 | // Change inline math rule |
随后下载hexo-renderer-mathjax
:
1 | npm install hexo-renderer-mathjax --save |
原po也有说需要更新mathjax的cdn,但是我看了下我用的是NexT 7,算是比较新的版本了,而mathjax更新并没有这么平凡,所以就略过了。
设置
以下是为了解决kramed
引擎的语义冲突。
修改node_modules\kramed\lib\rules\inline.js
中的escape
和em
部分:
1 | //escape: /^\\([\\`*{}\[\]()#$+\-.!_>])/, |
启用
在_config.yml
中找到math
,并且启用mathjax
:
1 | # Math Equations Render Support |
最后在文章的头部开启mathjax
的渲染:
1 | mathjax: true |
如果不添加这一行,mathjax
是不会渲染的;选择false
和不添加是一样的,出现的就是源代码。
Example
来自hexo中插入数学公式,不过他好像没有渲染。
矩阵:
1 | $$\left[ |
$\left[
\begin{matrix}
V_A \\
V_B \\
V_C \\
\end{matrix}
\right] =
\left[
\begin{matrix}
1 & 0 & L \\
-cosψ & sinψ & L \\
-cosψ & -sinψ & L
\end{matrix}
\right]
\left[
\begin{matrix}
V_x \\
V_y \\
W \\
\end{matrix}
\right] $
表格与矩阵
1 | $$\begin{array}{c|lcr} |
其他教程
MathJax basic tutorial and quick reference