广告:在『点点网』上开了一个轻博
Cikada 0.0.2 版预告

is-programmer 博客的 TeX 数学公式指南

Garfileo posted @ 2011年9月14日 23:01 in 不理解我也没什么 with tags is-programmer 数学公式 mathjax , 29519 阅读

is-programmer 博客支持 TeX 数学公式的输入与呈现是通过在线的 TeX 数学公式引擎实现的。现在有两种方式:[tex] ...[/tex] 标记与 MathJax。

1.  [tex] ... [/tex] 标记

从博客后台管理界面的『插件 -> 自动 TeX 公式转换』,勾选『使用 [tex] ... [/tex]』,并保存设置。

若使用这种方式,只需在博客页面编辑器中将 TeX 公式文本置于 [tex] ... [/tex] 标记之内, 文档提交后所生成的页面中,TeX 公式文本便会服务器端的 TeX 引擎处理为公式图片,然后服务器端使用 JavaScript 脚本动态生成图像嵌入代码替换页面中的原 TeX 文本。

虽然这种方案依然是采用图片来呈现公式,但是对于已生成的页面中的数学公式,可以在页面编辑器中对 TeX 公式文本进行修改,即 TeX 公式向图片的转换是可逆的。

2. MathJax

MathJax 是当前非常强大的一款基于 JavaScript 实现的网页数学公式排版引擎,它最大的特点是利用 CSS 和 HTML 来实现数学公式的排版,而不是基于 TeX 引擎所转换的图片。

从博客后台管理界面的『插件 -> 自动 TeX 公式转换』,勾选『使用 MathJax』,并保存设置。

然后便可在博客页面编辑器中使用 \( ... \ \[ ... \] 来撰写行内公式与行间公式,例如:

行内公式 \(E = mc^2\)。

效果

行内公式 \(E = mc^2\)。

例如:

行间公式:
\[E = mc^2\]
测试

效果

行间公式:

\[E = mc^2\]

测试。

3. 公式文本换行

较为复杂的 TeX 数学公式文本,为了可读性,经常需要换行书写。

在 is-programmer 博客页面编辑器中,无论是 [tex] ... [/tex] 标记还是 MathJax 标记,通过回车来实现公式文本的换行,是非常错误的一种方式。因为在页面编辑器中回车会导致编辑器自动插入 HTML 的段落标记或者当前环境中的其他标记,导致服务器端用于处理 [tex] ... [/tex] 标记还是 MathJax 标记的 JavaScript 脚本无法正确解析被 HTML 标记所扰乱的 TeX 公式文本。

绕过这个问题的办法是使用『Shift + 回车键』进行公式文本换行,因为 is-programmer 博客页面编辑器对于『Shift + 回车键』的处理只是在当前文本位置插入 <br/> 标记,而服务器端用于处理 [tex] ... [/tex] 标记还是 MathJax 标记的 JavaScript 脚本恰好可以忽略 <br/> 标记,并能正确解析换行的公式文本。

例如:

\[
\mathbf{V}_1 \times \mathbf{V}_2 =  \begin{vmatrix}
\mathbf{i} & \mathbf{j} & \mathbf{k} \\
\frac{\partial X}{\partial u} &  \frac{\partial Y}{\partial u} & 0 \\
\frac{\partial X}{\partial v} &  \frac{\partial Y}{\partial v} & 0
\end{vmatrix}
\]

\[
\mathbf{V}_1 \times \mathbf{V}_2 =  \begin{vmatrix}
\mathbf{i} & \mathbf{j} & \mathbf{k} \\
\frac{\partial X}{\partial u} &  \frac{\partial Y}{\partial u} & 0 \\
\frac{\partial X}{\partial v} &  \frac{\partial Y}{\partial v} & 0
\end{vmatrix}
\]

4. 总结

使用 [tex] ... [/tex] 或 MathJax 对于熟悉 TeX 数学公式的用户而言也比较方便,其缺点则在于页面 RSS 输出时,只能在 RSS 阅读器端呈现 TeX 公式文本。

另外,你也可以尝试其它方案,例如 ASCIIMath,见『基于 ASCIIMathML.js 的 is-programmer 博客数学公式书写及显示』。

转载时,希望不要链接文中图片,另外请保留本文原始出处:http://garfileo.is-programmer.com

  • 无匹配
Avatar_small
小精灵 说:
2011年10月16日 07:42

先生:你好!请问在TeX数学公式中怎样运用希腊字母来设立公式?

Avatar_small
Garfileo 说:
2011年10月16日 08:45

@小精灵: 请参考 http://zh.wikipedia.org/wiki/Help:数学公式

Avatar_small
qingqing 说:
2012年9月29日 11:42

你好。博客园的mathjax支持在$$之间的数学公式吗

Avatar_small
Garfileo 说:
2012年9月29日 21:06

@qingqing: 抱歉阿,我没用过博客园

Avatar_small
叶卢庆 说:
2012年9月30日 12:41

抱歉。由于打字惯性,我把is-programmer打成了博客园。我发现is-programmer的mathjax插件不支持数学公式的编号。解决方案是不要采用mathjax插进,而是在[自定义页面header]里加入如下代码即可

<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
inlineMath: [['$','$'], ['\\(','\\)']],
processEscapes: true
},
TeX: {
equationNumbers: {
autoNumber: ["AMS"],
useLabelIds: true
}
},
"HTML-CSS": {
linebreaks: {
automatic: true
},
scale: 95
},
SVG: {
linebreaks: {
automatic: true
}
}
});
</script>
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

Avatar_small
RohanCFD 说:
2013年3月10日 11:37

你好,请问syntaxhighlighter能否更新一下,发现貌似不支持Fortran

Avatar_small
rca 说:
2013年3月22日 11:15

@RohanCFD: 问了一下这个博客服务的开发者 galeki,他说 syntaxhighlighter 没有支持 fortran 的插件。

Avatar_small
RohanCFD 说:
2013年7月17日 00:12

@Garfileo: 请问可否加入syntaxhighlighter 的fortran插件,http://wordpress.org/plugins/syntaxhighlighter-evolved-fortran/

Avatar_small
rca 说:
2013年7月17日 11:35

@RohanCFD: @galeki...虽然 @ 人是无效的,不过,下午我会向 galeki 转述你的请求,这个 blog 系统其实是他做的 :)

Avatar_small
RohanCFD 说:
2013年8月24日 16:55

@rca: 十分感谢~很喜欢这个博客系统,希望他能发展越来越好


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter