MathJax的一些坑
mathjax的一些坑
mathjax的本地拷贝的test下有很多有用的例子,比如如何动态渲染,特定位置渲染等。
请求mathjax时给定的config(get)参数(如https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML")会对引擎的加载赋予不同的配置。上述四个词实际上表示可以接受解析TeX,MathML,AsciiMath。以HTML CSS方式输出。当然接收解析少一点有益于效率。
$...$式公式指示符默认是不打开的,需要手动修改配置
Markdown等标记语言可能与公式标记语言混淆,所以IPython notebook里才那么鬼畜,经常需要多进行空格来使显示正常化。
-----对start的一部分翻译---
# 入门
MathJax让你得以包含数学公式到你的网页中,其使用LaTex,MathML或AsciiMath符号写成,并且这些数学公式将使用javascript处理生成HTML,SVG或者MathML公式以便在各现代浏览器中显示。
存在两种方式访问MathJax:简单的方式是使用MathJax的从网上的分发服务如cdn.mathjax.org中取得,但是你也能够下载并且安装MathJax的拷贝到你的服务器或放在本地硬盘上(这样可以脱离网络连接工作)。所有这三种方式在下文会得到详述。这个页面将引领你快速上手其使用,但是你可能会需要更多信息为了自定义你网页的显示细节。
## 使用MathJax内容通过网络(CDN,Content Delivery Network)
最简单使用MathJax的方法是直接连接到公共的MathJax网上分发版(CND)上。当你使用MathJax CDN,就不需要你自己安装MathJax,并且你直接使用它了。
CDN将自动为你的用户选择最快最近的服务器传送数据。并且当bug被修正或者补丁出现后,它们在CDN会立即实现。你的页面将总是使用最新的版本。
为了使用MathJax从我们的服务器中,你需要做两件事:
1. 连接到MathJax到会包含数学公式的web页面上。
2. 提交你的数学公式到页面上使得MathJax可以显示它。
作为开始,你首先应该写入这些到<head>中:
<script type="text/javascript" async
src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">
</script>
(它也可以出现在<body>中如果必要的话,但是在<head>更好)。它将加载最新的MathJax从分发服务器中,并且配置它为能够识别Tex,MathML以及AsciiMath符号,并且要求它使用HTML与CSS显示数学公式。
警告
Tex-MML-AM-CHTML设置是最常用的(起码对于现在而言)组合配置文件。我们在这里列出这一点因为它可以让你容易使用MathJax。它可能不是最有效率的配置对于你的目的,也许你会考虑其他的其他的组合配置文件。你也可以提供额外的配置参数来调整(tailor)组合配置为你的需求或使用我们的开发工具来产生你自己的组合配置文件。
更多的关于配置过程的细节可以在Loading and Configuring MathJax指导中找到。
使用cdn.mathjax.org应当遵守相应的服务条款,所以请保证度过这些在连接到MathJaxCDN服务器之前。
Note
想要查阅如何输入数学公式到你的网页中,请查看下面的 输入数学公式到网页 段。
## 对CDN的安全连接
略
## 向页面写入数学公式
为了提交数学公式到你的页面中,你可以使用TeX与LaTex符号,MathML符号,AsciiMath符号,或者这三者组合使用。MathJax配置告诉MathJax你想要使用的对象,并且你如何控制其行为。上面例子中的配置告诉MathJax里面可能有TeX,AsciiMath与MathML符号在你的页面中。而其他的配置文件告诉MathJax使用它们中的一个或某种组合。下面是三种格式的细节:
## TeX与LaTex输入
以TeX与LaTeX格式编写的数学公式被数学分隔符(math delimiters)包裹起来,其告之MathJax哪些部分是数学公式哪些部分是普通文本。存在两种公式,一种存在于段落之中(行内公式 in-line),另一种占据单独的一段(行间共识 displayed)。
默认设置是$$...$$与\[...\]作为行间公式的分隔符,而\(...\)作为行内容式的分隔符,注意$...$行内分隔符不是默认使用的。这是因为美元符号经常出现在非数学文本中,这将导致出乎意料的当成是数学公式的错误。作为例子,单美元符号分隔符,"...the cost is $2.50 for the first one, and $2.00 for each additional one..."将导致段落"2.50 for the first one, and"被当成公式当它被以两个美元符号包裹。为了这个原因,如果你想要使用单美元作为行内数学分隔符模式,你必须在配置文件中明确的写出:
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {inlineMath: ['$','$'], ['\\(','\\)']}
});
</script>
<script type="text/javascript" async src="path-to-mathjax/MathJax.js?config=TeX-AMS_CHTML"></script>
对tex2jax准备器额外的配置参数可以参见参见 config/default.js文件,或者tex2jax configuration options 页面,它们是MathJax支持的TeX符号中的部分。见TeX与LaTeX页面获取更多MathJax支持对于TeX以及如果处理单美元符号在你的文本中当你允许单美元分隔符时。
这些一个包含TeX公式的完整实例(也在test/sample-tex.html文件中可以见到)。
<!DOCTYPE html>
<html>
<head>
<title>MathJax TeX Test Page</title>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({tex2jax: {inlineMath: ['$','$'], ['\\(','\\)']}});
</script>
<script type="text/javascript" async
src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML">
</script>
</head>
<body>
When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are
$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
</body>
</html>
由于TeX标记是页面文本的一部分,所以有一些陷阱(caveats ),你应该注意在你的公式中回避。特别是,你需要特别注意小于符号,这些符号被浏览器用作表示HTML tag的开始。在小于符号左右放空格是应该是必须的,但是请参见TeX与LaTeX帮助了解更多细节。
如果你正在blog,wiki或其他内容管理系统中使用MathJax。这些系统自己的标记语言也许会干扰MathJax中使用的TeX符号。作为例子,如果你的blog使用Markdown标记管理你的页面。TeX中用于表示下标的下划线可能被Markdown当做斜体标示,这个混淆可能导致显示不正常。参见TeX与LaTeX帮助获取有关如何处理这个问题的建议。
mathjax的本地拷贝的test下有很多有用的例子,比如如何动态渲染,特定位置渲染等。
请求mathjax时给定的config(get)参数(如https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML")会对引擎的加载赋予不同的配置。上述四个词实际上表示可以接受解析TeX,MathML,AsciiMath。以HTML CSS方式输出。当然接收解析少一点有益于效率。
$...$式公式指示符默认是不打开的,需要手动修改配置
Markdown等标记语言可能与公式标记语言混淆,所以IPython notebook里才那么鬼畜,经常需要多进行空格来使显示正常化。
-----对start的一部分翻译---
# 入门
MathJax让你得以包含数学公式到你的网页中,其使用LaTex,MathML或AsciiMath符号写成,并且这些数学公式将使用javascript处理生成HTML,SVG或者MathML公式以便在各现代浏览器中显示。
存在两种方式访问MathJax:简单的方式是使用MathJax的从网上的分发服务如cdn.mathjax.org中取得,但是你也能够下载并且安装MathJax的拷贝到你的服务器或放在本地硬盘上(这样可以脱离网络连接工作)。所有这三种方式在下文会得到详述。这个页面将引领你快速上手其使用,但是你可能会需要更多信息为了自定义你网页的显示细节。
## 使用MathJax内容通过网络(CDN,Content Delivery Network)
最简单使用MathJax的方法是直接连接到公共的MathJax网上分发版(CND)上。当你使用MathJax CDN,就不需要你自己安装MathJax,并且你直接使用它了。
CDN将自动为你的用户选择最快最近的服务器传送数据。并且当bug被修正或者补丁出现后,它们在CDN会立即实现。你的页面将总是使用最新的版本。
为了使用MathJax从我们的服务器中,你需要做两件事:
1. 连接到MathJax到会包含数学公式的web页面上。
2. 提交你的数学公式到页面上使得MathJax可以显示它。
作为开始,你首先应该写入这些到<head>中:
<script type="text/javascript" async
src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML">
</script>
(它也可以出现在<body>中如果必要的话,但是在<head>更好)。它将加载最新的MathJax从分发服务器中,并且配置它为能够识别Tex,MathML以及AsciiMath符号,并且要求它使用HTML与CSS显示数学公式。
警告
Tex-MML-AM-CHTML设置是最常用的(起码对于现在而言)组合配置文件。我们在这里列出这一点因为它可以让你容易使用MathJax。它可能不是最有效率的配置对于你的目的,也许你会考虑其他的其他的组合配置文件。你也可以提供额外的配置参数来调整(tailor)组合配置为你的需求或使用我们的开发工具来产生你自己的组合配置文件。
更多的关于配置过程的细节可以在Loading and Configuring MathJax指导中找到。
使用cdn.mathjax.org应当遵守相应的服务条款,所以请保证度过这些在连接到MathJaxCDN服务器之前。
Note
想要查阅如何输入数学公式到你的网页中,请查看下面的 输入数学公式到网页 段。
## 对CDN的安全连接
略
## 向页面写入数学公式
为了提交数学公式到你的页面中,你可以使用TeX与LaTex符号,MathML符号,AsciiMath符号,或者这三者组合使用。MathJax配置告诉MathJax你想要使用的对象,并且你如何控制其行为。上面例子中的配置告诉MathJax里面可能有TeX,AsciiMath与MathML符号在你的页面中。而其他的配置文件告诉MathJax使用它们中的一个或某种组合。下面是三种格式的细节:
## TeX与LaTex输入
以TeX与LaTeX格式编写的数学公式被数学分隔符(math delimiters)包裹起来,其告之MathJax哪些部分是数学公式哪些部分是普通文本。存在两种公式,一种存在于段落之中(行内公式 in-line),另一种占据单独的一段(行间共识 displayed)。
默认设置是$$...$$与\[...\]作为行间公式的分隔符,而\(...\)作为行内容式的分隔符,注意$...$行内分隔符不是默认使用的。这是因为美元符号经常出现在非数学文本中,这将导致出乎意料的当成是数学公式的错误。作为例子,单美元符号分隔符,"...the cost is $2.50 for the first one, and $2.00 for each additional one..."将导致段落"2.50 for the first one, and"被当成公式当它被以两个美元符号包裹。为了这个原因,如果你想要使用单美元作为行内数学分隔符模式,你必须在配置文件中明确的写出:
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {inlineMath: ['$','$'], ['\\(','\\)']}
});
</script>
<script type="text/javascript" async src="path-to-mathjax/MathJax.js?config=TeX-AMS_CHTML"></script>
对tex2jax准备器额外的配置参数可以参见参见 config/default.js文件,或者tex2jax configuration options 页面,它们是MathJax支持的TeX符号中的部分。见TeX与LaTeX页面获取更多MathJax支持对于TeX以及如果处理单美元符号在你的文本中当你允许单美元分隔符时。
这些一个包含TeX公式的完整实例(也在test/sample-tex.html文件中可以见到)。
<!DOCTYPE html>
<html>
<head>
<title>MathJax TeX Test Page</title>
<script type="text/x-mathjax-config">
MathJax.Hub.Config({tex2jax: {inlineMath: ['$','$'], ['\\(','\\)']}});
</script>
<script type="text/javascript" async
src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_CHTML">
</script>
</head>
<body>
When $a \ne 0$, there are two solutions to \(ax^2 + bx + c = 0\) and they are
$$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
</body>
</html>
由于TeX标记是页面文本的一部分,所以有一些陷阱(caveats ),你应该注意在你的公式中回避。特别是,你需要特别注意小于符号,这些符号被浏览器用作表示HTML tag的开始。在小于符号左右放空格是应该是必须的,但是请参见TeX与LaTeX帮助了解更多细节。
如果你正在blog,wiki或其他内容管理系统中使用MathJax。这些系统自己的标记语言也许会干扰MathJax中使用的TeX符号。作为例子,如果你的blog使用Markdown标记管理你的页面。TeX中用于表示下标的下划线可能被Markdown当做斜体标示,这个混淆可能导致显示不正常。参见TeX与LaTeX帮助获取有关如何处理这个问题的建议。