有沒有什麼工具可以將 Latex 文檔轉換為 HTML 文檔,以便所有數學都可以呈現數學賈克斯?
(顯然,編寫一個能夠進行粗略轉換的快速 Perl 腳本相當容易,但我對更強大的解決方案感興趣 - 至少它應該自動正確地獲取所有交叉引用。)
答案1
更新 07/2020:
不再需要下面的程式碼。 TeX4ht 現在完全支援 MathJax 輸出。與下面的程式碼等效的是:
make4ht filename.tex "mathml,mathjax"
如果你想將 LaTeX 數學保留為純文本,只需使用:
make4ht filename.tex "mathjax"
make4ht
是htlatex
預設轉換為 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 中顯示數學的其他方法可用。