很多时候,在 Typora 上展现出来是一种样式,在 hexo 博客上又是另一种样式。
这次遇到了 mathjax 公式的一些问题。

无法换行问题

通常,在 LaTeX 语法中,用“\\”可以实现换行显示。

1
2
3
4
5
6
$$
A \odot 1 = A \\
A \odot 0 = \bar{A} \\
A \odot \bar{A} = 0 \\
A \odot A = 1
$$

但实际渲染出来是这种效果:

错误效果

通过 F12 查看 HTML 结构,发现“\\”被渲染成了一个空的 mjx-mspace 标签,而这个 mjx-mspace 标签的 display 属性默认为 inline-block,长宽皆为 0,所以就没有换行显示。那么只需在 CSS 文件里加一句 “mjx-mspace{display:block;}” 就可以了。

HTML结构

修改后公式的换行就正常了。

正确效果

强制中文引号问题

在markdown中输入的是英文引号,编译后就自动渲染成了中文引号。

这个问题跟hexo-render-kramed插件的配置有关,我在Github上找到了类似问题的解答。

我用的mathjax,所以用的hexo-render-kramed编译插件,对应的修正方法就是在_config.yml中修改以下配置项。

1
2
3
4
5
6
7
8
9
kramed:
gfm: true
pedantic: false
sanitize: false
tables: true
breaks: true
smartLists: true
- smartypants: true
+ smartypants: false