1. 安装渲染插件

    经过测试,Hexo默认的hexo-renderer-marked插件不能显示公式块,可能是该插件不支持mathjax的缘故。

    在博客根目录下执行如下命令,卸载默认的hexo-renderer-marked渲染插件,安装由基于marked插件修改而来的hexo-renderer-kramed插件以支持Mathjax渲染:

    1
    2
    npm uninstall hexo-renderer-marked --save
    npm install hexo-renderer-kramed --save
  2. 打开目录根目录下的_config.butterfly.yml文件,按照如下方式配置MathJax选项:

    1
    2
    3
    4
    # MathJax
    mathjax:
    enable: true
    per_page: false

    per_page选项为true时,每个页面都会加载mathjax。当per_page选项为false时,页面还会根据front-matter中的设置来决定是否加载mathjax。因此,如果per_page选项为false,还要在需要显示公式的文章的front-matter中启用mathjax

    1
    2
    3
    4
    5
    6
    title: 启用数学公式
    mathjax: true
    tags:
    - MathJax
    - 建站
    ---

    使用这种配置方式时,渲染器只会在mathjax设置为true的文章中启用mathjax,能够有效提高整个网站的渲染速度。

  3. 使用公式

    按照Markdown的语法进行公式的编辑即可:

    1. 行内公式

      1
      $F(\omega)=\mathcal{F}[f(t)]=\int_{-\infty}^{\infty}f(t)e^{-i\omega t}dt$

      傅里叶变换公式 $F(\omega)=\mathcal{F}[f(t)]=\int_{-\infty}^{\infty}f(t)e^{-i\omega t}dt$。

    2. 公式块

      1
      2
      3
      4
      5
      $$
      f(x)=\frac{a_0}{2}+\sum^{\infty}_{n=1}[(a_{n}cos(nx)+b_{n}sin(nx)] \\
      a_n = \frac{1}{\pi}\int^{\pi}_{-\pi}f(x)cos(nx)dx (n=0,1,2,...) \\
      b_n = \frac{1}{\pi}\int^{\pi}_{-\pi}f(x)sin(nx)dx (n=0,1,2,...)
      $$

      傅里叶级数

  4. 【注意】

    1. 公式块中不支持分行,多行公式将会按照顺序分布在一行;
    2. 如果公式过长,公式下方会出现滑动条,影响页面的协调性。
  5. 使用建议:

    1. 尽量使用公式块,对于一些较短的变量或者符号可使用行内公式;
    2. 公式块不使用分行,每一个公式单独成块;
    3. 由于公式不换行,所以目前无法渲染分段函数。

    傅里叶变换公式为

    傅里叶级数可表示为

    其中,$a_n$、$b_n$都是待定系数,也表示$f(x)$在正交基上的坐标。

    【参考链接】

    1. 解决mathjax公式不换行问题,无效。