文章目录
  1. 1. 什么是HEXO
  2. 2. 什么是MathJax
  3. 3. MathJax的问题
    1. 3.1. MathJax安装方式
    2. 3.2. 行内公式
    3. 3.3. 行间公式

我写技术博客的初衷是为了写一些学习笔记,一方面加深自己对问题的理解同时也能帮助他人。作为一名理工男许多问题都要涉及到数学,学习数学最大的好处是它可以说服任何人相信你是对的,坏处就是你用数学说话没人想听。如果在写技术博客连个好看的数学公式都敲不出来,那就更没有人愿意去学习了。

由于我博客是用Hexo搭建在gitcafe上的,并使用MathJax插件实现数学公式编辑,至于其他方式建立的博客比如:jekyll、Octopress、wordpress、Blogger、Drupal、Expression Engine等,本人觉得使用MathJax类似。

什么是HEXO

hexo是一个基于Node.js的静态博客程序,可以方便的生成静态网页托管在github、Heroku和gitcafe上。作者是来自台湾的@tommy351。引用@tommy351的话,hexo是:

A fast, simple & powerful blog framework
快速、简单且功能强大的博客框架

类似于jekyll、Octopress、Wordpress,我便是采用hexo创建自己的博客,托管到github或Heroku上,并绑定自己的域名,用Markdown书写自己的博客。


什么是MathJax

MathJax是一个开源,基于Ajax技术的数学表达式显示解决方案。它能够在HTMl页面中高质量的显示LaTeX和MathML数学符号,支持大部分浏览器。MathJax官方给出的定义是:

A JavaScript display engine for mathematics that works in all browsers
一款在网页显示数学公式的Java插件

关于如何在hexo上安装MathJax,请参考KangLu’Blog。如果你对MathJax的源代码感兴趣,请移步这里。本文以后将会介绍如何书写数学公式的语法,如果你现在对这个很感兴趣,请参考数学公式


MathJax的问题

MathJax安装方式

MathJax在hexo上的应用常见的有两种方式,一种是自行修改theme的header,在其中插入对MathJax CDN script的引用,并配置inline math;另一种是采用安装插件Hexo-math

行内公式

  • 对于不含特殊符号的公式,可以直接使用MathJax的inline math表达式。比如:

一条直线 $y=ax+b$ 使这几个点

效果为

一条直线 $y=ax+b$ 使这几个点

  • 对于含特殊符号的公式,比如 \_ 符号在Markdown转义过程会出现一些问题,通常可以在符号前面加\,变为 \\\_进行数学公式编辑。比如:

    一系列点$(x\_i,y\_i)(i=1,2,...n,n\ge 3)$

效果为

一系列点$(x_i,y_i)(i=1,2,…n,n\ge 3)$

行间公式

对于行间公式有帖子说可以采用Tag Block方式解决Markdown转义问题,不知为何总感觉使用Tag Block有点不方便。我亲自测试了一下行内公式方法依旧可用。比如:

1
2
3
4
5
\begin{aligned}
w&=ax^2+bxy+cy^2\\\
&=a(x+\frac{by}{2a})^2+(c-\dfrac{(by)^2}{4a})\\\
&=\frac{1}{4a}[4a^2(x+\frac{by}{2a})^2+(4ac-b^2)y^2]
\end{aligned}

效果为

$$\begin{aligned} w&=ax^2+bxy+cy^2\\
&=a(x+\frac{by}{2a})^2+(c-\dfrac{(by)^2}{4a})\\
&=\frac{1}{4a}[4a^2(x+\frac{by}{2a})^2+(4ac-b^2)y^2] \end{aligned}$$


暂时没有发现MathJax的其他问题,如果大家遇到类似的问题可以提出来,我会测试程序帮助大家解决问题的。


反馈与建议

文章目录
  1. 1. 什么是HEXO
  2. 2. 什么是MathJax
  3. 3. MathJax的问题
    1. 3.1. MathJax安装方式
    2. 3.2. 行内公式
    3. 3.3. 行间公式