html文档中的tex和latex

HTML特殊字符

请记住,您的数学是HTML文档的一部分,因此您需要知道HTML在其标记中使用的特殊字符。数学分隔符中不能有HTML标记(除了 <br><wbr> ,和html注释)as tex格式的数学不包括html标记。另外,由于数学最初是以文本形式在页面中给出的,所以您需要注意,您的数学在浏览器中看起来不像html标记,浏览器在mathjax看到页面之前解析页面。特别是,这意味着你必须小心那些小于或大于符号的东西 (<> )和与号 (& ,对web浏览器有特殊意义。例如,

... when $x<y$ we have ...

会引起问题,因为浏览器会认为 <y 是名为 y (即使在html中没有这样的标记)。当这种情况发生时,浏览器会认为标记会一直延续到下一个 > 在文档中(通常是html文件中下一个实际标记的末尾),您可能会注意到缺少文档文本的一部分。在上面的示例中,将不会显示“<y”和“we have…`”,因为浏览器认为它是从 ``<y . 这是一个可以用来发现这个问题的指示;这是一个常见的错误,应该避免。

通常,只要在这些符号周围加上空格就足够了,这样浏览器就可以避开它们了,所以

... when $x < y$ we have ...

应该有用。或者,可以使用html实体 &lt;&gt;&amp; 对这些字符进行编码,以便浏览器不会解释它们,但mathjax会解释它们。例如。,

... when $x &lt; y$ we have ...

最后,还有 \lt\gt 定义宏以便于输入 <> 使用类似于tex的语法:

... when $x \lt y$ we have ...

同样,请记住浏览器在mathjax之前解释文本。

与内容管理系统的交互

另一个困难的来源是mathjax在内容管理系统中的使用,这些系统有自己的文档处理命令,这些命令在创建html页面之前会被解释。例如,许多博客和wiki使用诸如markdown之类的格式来允许您创建页面内容。在markdown中,下划线用于表示斜体,这种用法与mathjax使用下划线表示下标相冲突。由于标记首先应用于页面,因此它可以将下标标记转换为斜体(插入 <i><em> 标记到数学中,这将导致mathjax忽略数学)。

需要告诉这样的系统不要修改出现在数学分隔符之间的数学。这通常涉及修改内容管理系统本身,这超出了大多数页面作者的能力。如果你幸运的话,其他人已经为你做了这件事,你也许可以通过网络搜索为你的系统找到一个mathjax插件。

如果您的系统没有插件,或者插件无法处理将数学与它支持的其他标记隔离开来的微妙之处,那么您可能必须“欺骗”内容管理系统,使您的数学保持不变。大多数内容管理系统提供了一些指示不应修改的文本的方法(“逐字”文本),通常用于为计算机语言提供代码片段。您可以使用它来封装您的数学,以便系统保持不变,mathjax可以处理它。例如,在降价中,后勾号 (` )用于标记逐字文本,因此

... we have `\(x_1 = 132\)` and `\(x_2 = 370\)` and so ...

可能能够保护下划线不被标记处理。

或者,一些内容管理系统使用反斜杠 (\ )作为“转义”其他字符的特殊字符,您可以使用它来防止它将下划线转换为斜体。也就是说,你也许可以使用

... we have $x\_1 = 132$ and $x\_2 = 370$ and so ...

避免下划线 1 = 132$ and $x 斜体字。

如果您的系统以这种方式使用反斜杠,这有助于斜体字,但也会在其他方面造成困难。因为tex使用这个字符来表示宏名,所以您需要能够将反斜杠传递给页面,这样mathjax就能够识别宏名;但是如果内容管理系统将它们用作转义符,那么它将删除反斜杠作为其处理的一部分,并且它们无法进入最终网页。在这样的系统中,为了在html页面中获得一个反斜杠,可能需要将反斜杠加倍。例如,您可能必须

\\begin{array}{cc}
  a & b \\\\
  c & c
\\end{array}

获取包含四个条目的数组 abcd 两排。特别要注意,如果你想 \\ 你得加倍 both 反斜杠,给予 \\\\ .

这也可能影响您输入数学分隔符的方式。因为默认值是 \(...\)\[...\] ,如果您的系统使用 \ 作为自身的逃避,您可能需要使用 \\(...\\)\\[...\\] 而是为了得到 \(...\)\[...\] 进入mathjax可以处理它的页面。

最后,如果启用了单美元符号作为数学分隔符,并且希望在网页中包含文字美元符号(不表示数学分隔符的符号),则需要防止mathjax将其用作数学分隔符。如果您还启用 processEscapes 配置参数(默认启用),然后可以使用 \$ 在你的页面文本中得到一个美元符号(没有反斜杠)在最后。或者,您可以使用 <span>$</span> 以隔离美元符号,使mathjax不会将其用作分隔符。