將 Latex 轉換為 MathJax-HTML

將 Latex 轉換為 MathJax-HTML

有沒有什麼工具可以將 Latex 文檔轉換為 HTML 文檔,以便所有數學都可以呈現數學賈克斯

(顯然,編寫一個能夠進行粗略轉換的快速 Perl 腳本相當容易,但我對更強大的解決方案感興趣 - 至少它應該自動正確地獲取所有交叉引用。)

答案1

更新 07/2020:

不再需要下面的程式碼。 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 中顯示數學的其他方法可用。

相關內容