Hexo比较好用的公式插件是Mathjax,但由于swig的文件解析机制,使得多行公式无法在Hexo中正常显示,本文介绍该问题的解决方法。
问题复现 {#问题复现}
- 准备输入一个矩阵:
$$ A = \left( {\begin{array}{*{20}{c}} 1&{}&{}&{}\\ {}&1&{}&{}\\ {}&{}&1&{}\\ {}&{}&{}&1 \end{array}} \right) $$
- 再输入一个多行公式
$$ \begin{array}{l} z &= {(x + y)^2}\\ &= {x^2} + {y^2} + 2xy \end{array} $$
问题1 {#问题1}
- 此时运行
hexo g
或hexo s
有可能报错:
问题2 {#问题2}
- 或者显示公式不正常,多行公式会挤成一行:
原因分析 {#原因分析}
问题1 {#问题1-2}
- 由于hexo解码时关注{{,}},%% 等连续字符,会将这部分代码解读为其他带有特殊含义的内容
- 如果公式中恰巧出现了此类字符,会报出上述错误
问题2 {#问题2-2}
- 由于hexo在公式中的
\\
错会成了转义符,也就是说他只看见了一个反斜杠,不会执行换行命令,导致公式堆成一行
解决方案 {#解决方案}
临时方案 {#临时方案}
针对问题1 {#针对问题1}
- 可以在连续的
{
}
%
中间插入空格,分开就没事了
针对问题2 {#针对问题2}
- 可以将
\\
换成\\\\
,可以实现公式的多行正确显示
终极方案 {#终极方案}
-
在官方文档中提到了可以为hexo提供标记,阻止其按照自己的规则解释我们的字符串,显示其原本的含义
-
标记为
文章链接:
https://www.zywvvd.com/notes/hexo/website/15-formula/formula-error/