is-programmer 博客的 TeX 数学公式指南
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
2011年10月16日 07:42
先生:你好!请问在TeX数学公式中怎样运用希腊字母来设立公式?
2011年10月16日 08:45
@小精灵: 请参考 http://zh.wikipedia.org/wiki/Help:数学公式
2012年9月29日 11:42
你好。博客园的mathjax支持在$$之间的数学公式吗
2012年9月29日 21:06
@qingqing: 抱歉阿,我没用过博客园
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>
2013年3月10日 11:37
你好,请问syntaxhighlighter能否更新一下,发现貌似不支持Fortran
2013年3月22日 11:15
@RohanCFD: 问了一下这个博客服务的开发者 galeki,他说 syntaxhighlighter 没有支持 fortran 的插件。
2013年4月05日 02:40
/(1 + e^(-pi i)/)
2013年7月17日 00:12
@Garfileo: 请问可否加入syntaxhighlighter 的fortran插件,http://wordpress.org/plugins/syntaxhighlighter-evolved-fortran/
2013年7月17日 11:35
@RohanCFD: @galeki...虽然 @ 人是无效的,不过,下午我会向 galeki 转述你的请求,这个 blog 系统其实是他做的 :)
2013年8月24日 16:55
@rca: 十分感谢~很喜欢这个博客系统,希望他能发展越来越好