显示标签为“latex”的博文。显示所有博文
显示标签为“latex”的博文。显示所有博文

2012年10月14日

如何在不支持 LaTeX 的环境使用 LaTeX 命令输入公式?

这里推荐一个在线即时编译 LaTeX 命令的网站:http://www.arachnoid.com/latex/index.html,这个网站至少有如下两个用途:

  1. 在不支持 LaTeX 的网页环境(如邮件、博客、论坛等)下输入漂亮的数学公式。方法是事先在上述网站上通过 LaTeX 命令生成你想要的公式,然后在 Render Mode 中选择 CodeCogs,这时生成的公式是图片格式的,选中该图片,Ctrl + C 复制该图片(实际上复制的是该图片对应的网址),最后 Ctrl + V 粘贴到你的目标网页环境中即可。由于复制的实际上是网址,而不是真正的图片,所以不能直接粘贴到非网页环境,如 Word 中。如果需要粘贴到 Word 中怎么办呢?请继续读下去:
  2. 在 Word 中输入漂亮的数学公式。对于已习惯用 LaTeX 命令写公式的人来说,在 Word 中利用公式编辑器输入公式,是痛不欲生的一件事。但是有时你可能又迫不得已需要在 Word 中输入公式,这时也可以利用上述网站。方法是事先在上述网站上通过 LaTeX 命令生成你想要的公式,然后在 Render Mode 中选择 Mathjax,这时生成的公式是矢量格式的,在公式上点右键,将 Format 设为 MathML,然后点 Show Source,全选复制弹出的代码,最后粘贴到 Word 中,Word 会自动将其解析为公式。注意,该方法只支持 Word 2007及更新版本,不支持 Word 2003。

由于上课的需要,我建了两个 google 论坛。google 论坛虽然是个好东西(目前其 https 协议还在墙内,希望能继续挺住),但是 google 论坛不支持 LaTeX,也不支持 Mathjax(因为不允许自定义模板),因此在论坛中输入公式很不方便,利用上述网站可以部分解决这个问题。

2012年8月10日

利用 MathJax 在博客中写数学公式

终于找到了比较完美的在博客中支持 LaTeX 的方案。wordpress.com 虽然也支持 LaTeX,但是有 2 个缺点:
  1. wordpress.com 是利用 wordpress 的wp latex 插件支持 latex 的,必须使用 \$latex \$ 这样的格式,而不能直接使用 \$ \$ 来输入公式,这使得无法直接利用在其他地方已写好的 tex 源码;
  2. 生成的公式是图片格式的,不支持矢量缩放和拷贝。
今天发现了一个在线生成 LaTeX 的利器:MathaJax,它支持多种数学公式语言,其中也包括 LaTeX,并且生成的公式支持矢量缩放和拷贝(拷贝方法参见这里)。但要在博客上获得 MathJax 的支持,必须要求博客空间提供自定义模板的功能,而大部分比较 popular 的国内免费博客空间,如新浪、网易、百度等都不提供该功能。下面提供两种解决方案:

方案一:墙内免费博客空间博客园支持自定义模板。当你在博客园开通博客后,在博客管理的“设置”页面的“页首Html代码”处拷入下面的代码即可:

<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: 85
        },
        SVG: {
            linebreaks: {
                automatic: true
            }
        }
});
</script>
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
其中的 scale: 85 是指公式大小的缩放比例,你可以根据需要进行调整。这样设置后你不但可以直接像在 LaTeX 中那样写行内公式和行间公式,而且还可以使用 LaTeX 的公式自动编号和引用的功能。不过目前还不支持定理环境。

这里是一个测试页面,可以看到生成的公式还是非常漂亮的。这里是我翻译和稍作改写的阿罗不可能性定理的证明。在 Ubuntu 下的 Chrome 浏览器、Firefox 浏览器和 Windows 下的 Firefox 浏览器下测试均显示正常,但在 IE 浏览器中公式下标会有显示不完整的情况,不知是不是我的个别现象,大家也帮忙测试一下。

方案二:墙外博客空间 www.blogger.com 是 google 提供的博客服务,具有较强的可定制性,开通后在自定义模板的 html 代码中找到 </head>,在这之前填入上面的代码即可。

利用 MathJax 生成数学公式仍然有两个缺点:
  1. 生成公式的速度较慢;
  2. 在 RSS 阅读器中只能显示公式的源码,必须点击文章的原始链接才能看到公式,这个在某种意义上也可以看作是优点,因为方便了代码的重用。
本文中的代码参考了http://zhiqiang.org/blog/it/mathjax-make-mathematics-beautiful.html,特此致谢!关于更多对 MathJax 的定制,请参考 MathJax 的帮助文档。