O’s World

努力!奋斗!

让 Octopress 支持 LaTeX

| 评论

安装并使用kramdown解析器

kramdown 是一个用Ruby实现的Markdown的解析器, 要让octopress 支持 LaTeX 首先要安装 kramdown。

1
gem install kramdown

安装完成后修改 octopress 的 _config.yml 文件。

修改

1
markdown: rdiscount

1
markdown: kramdown

添加 Mathjax 库

MathJax是一个JavaScript引擎,用来显示网络上的数学公式。仅仅安装了kramdown并不能让博文正确显示各种数学公式,还必须添加MathJax库。

将下面的代码添加到:source/_includes/custom/head.html:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!-- mathjax config similar to math.stackexchange -->
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  jax: ["input/TeX", "output/HTML-CSS"],
  tex2jax: {
    inlineMath: [ ['$', '$'] ],
    displayMath: [ ['$$', '$$']],
    processEscapes: true,
    skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
  },
  messageStyle: "none",
  "HTML-CSS": { preferredFont: "TeX", availableFonts: ["STIX","TeX"] }
});
</script>
<script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML" type="text/javascript"></script>

修改sass/base/_theme.scss,以解决一个右键点击公式页面瞬间白化的小bug。

1
2
3
4
5
6
7
8
9
10
body {
  > div {
    background: $sidebar-bg $noise-bg;
    border-bottom: 1px solid $page-border-bottom;
    > div {
      background: $main-bg $noise-bg;
      border-right: 1px solid $sidebar-border;
    }
  }
}

修改为

1
2
3
4
5
6
7
8
9
10
body {
  > div#main {
    background: $sidebar-bg $noise-bg;
    border-bottom: 1px solid $page-border-bottom;
    > div {
      background: $main-bg $noise-bg;
      border-right: 1px solid $sidebar-border;
    }
  }
}

OK~现在可以在博文中使用LaTeX写复杂的数学表达式了。

1
2
3
\begin{align}
    E &= mc^2
\end{align}

\begin{align} E &= mc2 \end{align}

1
2
3
\begin{align}
    m &= \frac{m_0}{\sqrt{1-\frac{v^2}{c^2}}}
\end{align}

\begin{align} m &= \frac{m_0}{\sqrt{1-\frac{v2}{c2}}} \end{align}