据我所知,有两种方法可以在网络上显示 LaTeX:
MathJax JavaScript 库,它允许您将 LaTeX 直接嵌入 HTML 标记中,但 MathJax 会将这种 LaTeX 转换为 MathML,这是一种浏览器可以理解的 XML 格式,与 LaTeX 不同。这种方法的缺点是 MathJax 对 LaTeX 的支持有限(如果有人能概述它的一些最重要的限制,也许会很有用)。
使用命令行工具将 LaTeX 转换为 MathML(我发现此工具,但我想知道是否有一个命令行工具可以在 Linux 或 Windows 上安装,或者在两者上都安装得更好)。显然,这个解决方案的限制较少。我想知道用于这种转换的最佳工具是什么,以及 MathML 在以下方面是否有任何限制:
MathML 语言能够对可以用 LaTeX 语法编码的所有内容进行编码,并且
由于浏览器对 MathML 的支持不完整而可能造成的任何限制(从这一页,与 Firefox 相比,Chrome 的支持似乎有限,但这也意味着,如果我的网站用户没有使用 Firefox,那么他们将无法正确查看数学运算,这是一个真正的缺点!)。
此外,如果有任何其他方法可以在网络上显示数学,而无需借助图像和 PDF 文件,那么我很想了解它们,但我认为我提到的替代方案很可能是两种也是唯一最可行的方案。
答案1
LaTeXML提供了几种将 TeX 转换为 XML/HTML/MathML 的工具。其中一个工具是latexmlmath
。例如,在命令行上,输入:
latexmlmath '\mathbf{F}_{2}=k \frac{q_{1} q_{2} \hat{\mathbf{r}}_{21}}{r_{21}^{2}}'
输出如下:
<?xml version="1.0" encoding="UTF-8"?>
<math xmlns="http://www.w3.org/1998/Math/MathML" alttext="\mathbf{F}_{2}=k\frac{q_{1}q_{2}\hat{\mathbf{r}}_{21}}{r_{21}^{2}}" display="block">
<mrow>
<msub>
<mi>
答案2
我很惊讶没有人提到潘多克,这是一个非常适合转换LaTeX
为html
文档的工具。
使用关注markdown
文件(使用LaTeX
语法):
% Pandoc math demos
$a^2 + b^2 = c^2$
$v(t) = v_0 + \frac{1}{2}at^2$
$\gamma = \frac{1}{\sqrt{1 - v^2/c^2}}$
$\exists x \forall y (Rxy \equiv Ryx)$
$p \wedge q \models p$
$\Box\diamond p\equiv\diamond p$
$\int_{0}^{1} x dx = \left[ \frac{1}{2}x^2 \right]_{0}^{1} = \frac{1}{2}$
$e^x = \sum_{n=0}^\infty \frac{x^n}{n!} = \lim_{n\rightarrow\infty} (1+x/n)^n$
根据选项,您可以获得:
pandoc math.text -s -o mathDefault.html
=>http://pandoc.org/demo/mathDefault.html
pandoc math.text -s --mathml -o mathMathML.html
=>http://pandoc.org/demo/mathMathML.html
pandoc math.text -s --webtex -o mathWebTeX.html
=>http://pandoc.org/demo/mathWebTeX.html
pandoc math.text -s --mathjax -o mathMathJax.html
=>http://pandoc.org/demo/mathMathJax.html
pandoc math.text -s --katex -o mathKaTeX.html
=>https://pandoc.org/demo/mathKaTeX.html
第一个选项可能看起来很有限,但由于它只使用unicode,所以它确实是可移植和可靠的。
答案3
tex4ht
可用于将 LaTeX 导出为 MathML。它的优点是它支持自定义命令,无论是来自用户还是来自非标准包,开箱即用。它还可以将整个 LaTeX 文档转换为包含 MathML 的 HTML。
MathML 的缺点是浏览器支持性差,几乎不存在(除了 Firefox,但并不完美)。幸运的是,可以使用 Mathjax 在不支持的浏览器中添加 MathML 支持。
要使用 MathML 和 MathJax 进行渲染,请使用以下调用make4ht
:
make4ht filename.tex "mathml,mathjax"
答案4
我还要提一下数学,它提供了一个 Haskell 库、一个命令行程序和一个 Web 服务器(演示在这里)。这可以在 TeX math、MathML、OMML(Microsoft Word 中使用的方程式格式)和 roff eqn 之间进行转换。(该库设计用于 pandoc,但可以独立使用。)
例子:
% texmath -f tex -t mathml
\mathbf{F}_{2}=k \frac{q_{1} q_{2} \hat{\mathbf{r}}_{21}}{r_{21}^{2}}
<math display="block" xmlns="http://www.w3.org/1998/Math/MathML">
<mrow>
<msub>
<mstyle mathvariant="bold">
<mi>