• 微软的 Office 软件从 2007 版本开始使用新的文档格式(docx,pptx 等),从此 Word 里面对公式的支持摆脱了残废状态,使得在 Word 中不借助 MathType 和 Aurora 等插件输入复杂数学公式成为可能。而且,微软还特地为公式的排版定制了一个数学字体 Cambria Math,再加上在公式的输入中可以使用许多 LaTeX 命令,因此用微软 Word 快捷地排版美观的公式不再是天方夜谭。

    这里介绍下在新版 Word 中输入公式的方法。使用键盘快捷键“Alt+=”或者在插入菜单中选择“公式”项均可插入一个新的数学公式。首先需要说明的就是,新版 Word 中的公式和 LaTeX 中类似,可以有行间公式和独立公式两种,两种公式在显示上有一些区别(比如独立公式一般自动居中)。和 LaTeX 中不同的是,在 Word 中一个公式属于哪种类型的是由该行是否有其它内容自动决定的。也就是说,你在某些文字后面直接按“Alt+=”将得到行间公式,而新起一行后再按“Alt+=”则得到自动居中的独立公式。这点还是 Word 更加容易使用一点。

    在 Word 公式里面大部分常用 LaTeX 命令均可使用,比如输入 \infty 再按空格就得到个无穷号,输入 \sqrt 再按空格就得到个根号,输入 \int_a^b 再按空格就会得到个定积分。在 LaTeX 和在 Word 中数学公式的输入方式主要有如下两个区别:一是分式的输入方式不同,在 Word 中用更自然的方式来输入分式;比如在 LaTeX 里面需要输入 \frac{a+b}{c}, 而在 Word 中只需要输入 (a+b)/c 再按空格就出来了。二是命令参数的括号不同,LaTeX 使用花括号{}而 Word 使用圆括号();比如在 LaTeX 中输入 \sum_{k=0}^{n_1},而在 Word 中输入 \sum_(k=0)^(n_1)。其它各种命令及用法可以看微软程序员写的这个说明文档pdf)。



  • 要在网页中显示 tex 公式可以使用 jsMath 或者 ASCIIMathML 。两者都是使用 JavaScript 语言来转换网页中包含的 tex 公式。jsMath 将数学公式用 tex 算法直接显示出来,在几乎所有浏览器中都能直接显示,但是 jsMath 包含了许多文件,在博客中不好添加进来。而 ASCIIMathML 将数学公式转换为 MathML 公式再丢给浏览器显示,在 IE 和 Chrome 中没法显示(IE 安装了 mathplayer 后可以显示 MathML 公式),但在 Firefox 中可以正常显示。估计迟早 IE 和 Chrome 会支持 MathML 公式,因此在这个博客中选择用 ASCIIMathML 来显示公式。

    在这个博客中添加 ASCIIMathML 支持很容易,首先到这里 下载 ASCIIMathML.js 文件并上传到博客文件夹中,然后修改博客模板,在 head 代码模块中添加如下语句:

    <script src="http://xxxx.js" type="text/javascript"></script>

    其中 http://xxxx.js 指的是 ASCIIMathML.js 文件上传后的实际地址。然后在 Firefox 中打开博客就可以看到所有用 $ 或者 $$ 包含的 tex 公式已经漂亮地显示出来了。

    ASCIIMathML.js 文件是可以修改以适合自己的需要的。我作了一些修改:

    var mathcolor = "";  // 公式颜色。默认值为 "blue",设为空表示使用文本颜色
    var mathfontfamily = "Times New Roman" // 改用好看的的公式字体
    var translateLaTeX = false; // 博客中需要介绍 latex,故禁用
    $ 和 $$ 的识别
    var translateASCIIMath = true; // 博客中使用特殊的重音符
    \` 来标示公式

    其中,ASCIIMathML 添加了使用重音符(\`)来标示公式的方法,重音符就是键盘上 1 左边的那个字符。这样,以后需要直接显示 tex 代码的公式还是用 $ 和 $$ 来标示,而需要处理再显示的公式就用 \` 来标示。例如下面的公式:

    `e^x=\sum_{n=0}^\infty\frac{x^n}{n!}`

    显示了指数函数的幂级数展开式。

    【更新】jsMath 现在有了继任者 MathJax 。MathJax 是美国数学会等组织和公司资助的项目,在 jsMath 的基础上开发。MathJax 同时支持 latex 和 mathml 公式的排版,也同时支持用 html+css 和 mathml 输出排版结果。和 jsMath 一样,MathJax 的代码也是由许多部分组成的,在博客上不方便直接使用,不过它提供了 CDN 供用户使用,只需要在博客模板中添加如下几行代码就可以了,详情请看官方文档 的介绍。