安装和测试MathJax

最简单实用MathJax的方法就是直接引用MathJax内容分发服务器的服务。这种情况下不需要安装MathJax到你的服务器就可以开始直接使用MathJax了。你可以跳过文档的安装有关的内容直接阅读 配置

MathJax可以从公共服务器加载,也可以从你自己的服务器甚至本地硬盘加载。不管使用哪种方法,你都有必要获取一份MathJax的副本。有三种方法可以获取: gitsvn 或者打包好的归档。推荐使用前两种,这样可以保证你的MathJax是最新版的。

通过git获取MathJax

最简单快速获取MathJax最新版的方法就是通过 Git 版本控制工具去访问 GitHub版本库 ,使用命令

git clone git://github.com/mathjax/MathJax.git MathJax

去获取MathJax的副本。(请注意,现在没有 fonts.zip 文件了,自从v1.0 fonts 就包含在版本库中了。)

无论何时,当你想要升级MathJax时只需使用

cd MathJax
git remote show origin

去检查版本库是否有更新,如果需要更新的话使用

cd MathJax
git pull origin

来升级MathJax即可。如果你使用这种方式升级,你将获得最新的bug修补和新特性。

通过这样的方式获取MathJax可以保证MathJax包含最新的修改。虽然我们尽可能保证其稳定而可用,但是毕竟是正在开发的版本,可能没有发行版稳定。如果你更偏向于更稳定的版本,请获取一个标记的版本,使用

cd MathJax
git tag -l

查看所有的标记版本。然后使用

cd MathJax
git checkout <tag_name>

去获取你需要的标记版本。如果要获得最新版本,你需要重复操作去获取最新的标记。

每一个主要版本都一个关键更新的分支。如果你要使用补丁版本,请获取标记版本之后的分支。使用

cd MathJax
git branch

去获取一个可以的分支的列表。对于主要版本有很多独立的分支,以 -latest 结尾。这些包含了特定版本的所有补丁。如果需要一个版本的补丁你可以获取分支。比如分支为 v2.0 ,标记版本为 v2.0-latest 。获取这个版本使用

cd MathJax
git checkout v2.0-latest

当发生改变时使用

cd MathJax
git pull origin v2.0-latest

通过svn获取MathJax

如果你更倾向于使用 subversion 版本控制工具,你可以需要GitHub提供的 svn 服务来获取MathJax。如果你想通过 svn 获取最新的版本,使用命令

svn checkout http://github.com/mathjax/MathJax/trunk MathJax

来获取MathJax的副本。

当你想要升级时,使用

cd MathJax
svn status -u

去检查是否有可用的升级。如果有,使用

cd MathJax
svn update

升级你的MathJax副本到最新版本。如果你使用这种方式升级,你将获得最新的bug修补和新特性。

通过这样的方式获取MathJax可以保证MathJax包含最新的修改。虽然我们尽可能保证其稳定而可用,但是毕竟是正在开发的版本,可能没有发行版稳定。如果你更偏向于更稳定的版本,请获取一个标记的版本,使用

svn checkout http://github.com/mathjax/MathJax/branch/[name] MathJax

其中 [name] 代表你希望获取的分支名称。比如 2.0-latest 。分支名称可以在 GitHub MathJax 页面中的 branches 中找到。

通过归档获取MathJax

MathJax的发行版本都以归档形式陈列于 MathJax下载页面 或者 MathJax GitHub 的”zip”按钮,从那里你可以下载你需要的归档文件。

你应该下载v2.0的归档,然后解压。解压完成后移动它到你的服务器(如果你想从本地加载,放在硬盘中就行了)。比较好的方法就是放置到你的服务器的根目录,这样你就可以用 /MathJax/MathJax.js 加载MathJax了。

在MathJax的Github下载连接中,你可以选择下载 .tar.gz 或者 .zip

如果一个发型版本出现了关键更新,这些更新将会提交到这个版本的分支中。从下载列表中获取的 .zip 只是发行版本,而不是补丁版本。如果要获取补丁,选中 Branches 下拉框,选择你需要的,在点击 .zip 按钮下载即可。

测试你的安装

使用在 test 目录的文件来测试你的安装是否正常工作:

test/
    index.html          # Tests default configuration
    index-images.html   # Tests image-font fallback display
    sample.html         # Sample page with lots of pretty equations
    examples.html       # Page with links to all sample pages

在你的浏览器中打开这些文件检查它们是否正常工作。如果你将MathJax安装在服务器上,请使用网络地址访问而不是直接访问文件。当你打开 index.html 文件,稍后就可以看到一个消息表示MathJax开始工作了。如果没有,请检查所有文件是否都上传到服务器和是否有权限访问。检查服务器日志也许可以帮助你更快的找到问题。

关于共享服务器

一般情况下,你会将安装在和页面服务器相同的服务器上。但是有时候你可以需要安装在另外一个服务器的MathJax。比如一个部门站点 www.math.yourcollege.edu 希望使用主站点 www.yourcollege.edu 的MathJax。MathJax当然可以从其他服务器加载,但是这里需要注意Firefox和IE9的同源安全策略。

Firefox对于同源策略的执行远比其他浏览器更严格,它将影响 @font-face 的字体加载。MathJax使用该指令加载字体。Firefox只允许加载同源的字体文件。所以当从其他站点加载MathJax时,MathJax将会等待字体将在完成。当5秒钟超时后将自动加载一种类似的字体。相似的,IE9标准模式的策略与Firefox相同,所以处理结果页差不多。

这里有一种解决方案,如果你管理着安装MathJax的那台服务器,同时使用的是 `Apache web

<FilesMatch "\.(ttf|otf|eot|woff)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>

请确保服务器有权限读取这个文件。

这个文件将让Firefox和IE9可以下载字体。如果更严格的限制对于字体文件的访问,你可以修改 Access-Control-Allow-Origin 那一行的配置为

Header set Access-Control-Allow-Origin "http://www.math.yourcollege.edu"

这样就只会允许 www.math.yourcollege.edu 从这台服务器下载字体文件了。参考开放字库对于这个问题的讨论 web-font linking

Firefox和本地字体

正如上文描述的那样,Firefox的同源策略影响了字体的加载。这不光影响到跨域加载,也影响到了你从本地硬盘使用MathJax。(具体原因参考Firefox对于同源的解释,相关段落翻译省略)

为了让Firefox能够顺利从本地文件中加载,你的MathJax必须安装在你的页面所在目录或其根目录。这是一个不幸的限制,但是MathJax无法规避Firefox的安全策略。目前其他浏览器没有这个问题。

IE9和本地字体

如上文所述,IE9的同源策略影响了字体的加载。和FIrefox一样,这样的问题也会出现在你浏览本地页面文件的时候,处理办法请参考Firefox的处理办法。