将 Latex 转换为 MathJax-HTML

将 Latex 转换为 MathJax-HTML

是否有任何工具可以将 Latex 文档转换为 HTML 文档,以便所有数学运算都以MathJax

(显然,编写一个能够进行粗略转换的快速 Perl 脚本相当容易,但我对更强大的解决方案感兴趣 - 至少它应该可以自动正确获取所有交叉引用。)

答案1

2020年7月更新:

下面的代码不再需要。TeX4ht 现在完全支持 MathJax 输出。下面代码的等效代码如下:

make4ht filename.tex "mathml,mathjax"

如果您想将 LaTeX 数学公式保留为纯文本,请使用:

make4ht filename.tex "mathjax"

make4hthtlatex默认转换为 HTML5 和 UTF-8 的替代品,因此不需要像旧答案中那样进行特殊配置。


原始答案:

您可以使用TeX4ht。它可以输出数学公式,mathml然后可以使用 显示mathjax。您还可以配置html标题以从中加载mathjax脚本mathjax's cdn

\Preamble{xhtml,mathml}
\Configure{VERSION}{}
\Configure{DOCTYPE}{\HCode{<!DOCTYPE html>\Hnewline}}
\Configure{HTML}{\HCode{<html>\Hnewline}}{\HCode{\Hnewline</html>}}
\Configure{@HEAD}{}
\Configure{@HEAD}{\HCode{<meta charset="UTF-8" />\Hnewline}}
\Configure{@HEAD}{\HCode{<meta name="generator" content="TeX4ht
(http://www.cse.ohio-state.edu/\string~gurari/TeX4ht/)" />\Hnewline}}
\Configure{@HEAD}{\HCode{<link
         rel="stylesheet" type="text/css"
         href="\expandafter\csname aa:CssFile\endcsname" />\Hnewline}}
\Configure{@HEAD}{\HCode{<script type="text/javascript"\Hnewline
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"\Hnewline
></script>\Hnewline}}
\Configure{@HEAD}{\HCode{<style type="text/css">\Hnewline
  .MathJax_MathML {text-indent: 0;}\Hnewline
</style>\Hnewline}}
\begin{document}
\EndPreamble

使用此配置文件,我们请求将数学输出为mathml,然后配置html标题以便生成的文件为html5。将其另存为例如ht5mjlatex.cfg,然后从命令行调用:

htlatex filename.tex "ht5mjlatex.cfg, charset=utf-8" " -cunihtf -utf8"

或者你可以使用 William F. Hammond 的脚本(位于页面底部)

答案2

我个人更喜欢使用pandoc对于这个任务,这是一个一步式解决方案,而且在我看来输出要好得多。

要将文件从一种标记格式转换为另一种标记格式,pandoc 就是您的瑞士军刀。

此命令应适合大多数用途:

pandoc document.tex --standalone --mathjax --output document.html

它将创建一个 HTML 文件,其中包含对 mathjax.js 的 javascript 引用。Pandoc 有详尽的文档,在 HTML 中显示数学的其他方法可用。

相关内容