让 Jekyll 支持 LaTex 数学公式(MathJax v

2021-02-13  本文已影响0人  HansenZheng

前言

最近在GitHub上建站,使用了cotes2020的Jekyll网页模版。模版很好用😄,但是美中不足的是不支持LaTex数学公式。因为最近几篇博客里使用了LaTex,于是开始DIY。

Google了许多解决方案,发现基本都是使用MathJax v2版本。虽然也能使用,但是不折腾毋宁死的我就是想用最新的MathJax v3。于是一段冒险之旅开始了。

LaTex公式

用LaTex写过数学公式的同学都知道,行内公式用$ 一些公式 $,公式块用$$包围。
比如公式:

ax^2 + bx + c = 0

公式块的代码就是

$$
ax^2 + bx + c = 0
$$

MathJax v3

MathJax是一个JS的数学公式实现,支持LaTex语法。我们一般在HTML里引用就可以在页面里添加公式支持啦。这里我们只使用最新MathJax v3。
只需要在HTML的<head>标签里加入:

<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>

polyfill看了一下,是用来对老浏览器做支持的。如果不需要,也可以不引入。

行内公式配置

将脚本嵌入之后,默认的行内标签是\( 一个公式 \),这并不符合使用LaTex的习惯,所以需要做一下配置,让其支持$符号。参照MathJax的配置文档,我们在html文件里加入:1

<script> 
MathJax = {
  tex: {
    inlineMath: [['$', '$']],
    processEscapes: true
  }
};
</script>

这里MathJax = {}是MathJax v3的配置对象

集成到 Jekyll

接下来我们把MathJax集成到Jekyll模版引擎。
首先需要确认Jekyll的默认markdown解析器为kramdown。去_config.yaml里看看吧。
然后,我们有几种方案:2

因为我想把影响控制到最小,所以使用了第三个方案。最终我把代码块添加到了post.html的文件末尾。

配好以后,所有引用post这个layout的md文件都可以支持公式了,很开心。

随心所欲地在博客里写公式吧!

欢迎来我的博客hansenz42.github.io看看!

参考文献

1.Mathjax inline mode not rendering - TeX - LaTeX Stack Exchange

2.一个GitHub大神对将MathJax集成到Jekyll的建议,注意是MathJax v2 https://github.com/github/pages-gem/issues/307#issuecomment-289536076

上一篇下一篇

猜你喜欢

热点阅读