我使用 SimpleTeX4ht 将 LaTeX 文件转换为 HTML。文件很好,只是平方根与其余文本并列时渲染效果不佳,例如:
关于如何使平方根更好地呈现,有什么建议吗?(无论是使用不同的转换器,使用不同的 LaTeX 等)
我的 LaTeX 代码是
\noindent \textbf{Example:} Failure of unique prime factorization in $\mathbb{Z}[\sqrt{-5}\hspace{0.1 cm}]$:\\
$6 = (1 + \sqrt{-5})\cdot (1 + \sqrt{-5}) = 2 \cdot 3$.\
对应的 HTML 内容如下
<!--l. 269--><p class="noindent" ><span
class="cmbx-12">Example: </span>Failure of unique prime factorization in <span
class="msbm-10x-x-120">ℤ</span>[<img
src="Fermat10x.png" alt="√ --5" class="sqrt" > ]:<br
class="newline" />6 = (1 + <img
src="Fermat11x.png" alt="√ ---
- 5" class="sqrt" >) <span
class="cmsy-10x-x-120">⋅ </span>(1 + <img
src="Fermat12x.png" alt="√ ---
- 5" class="sqrt" >) = 2 <span
class="cmsy-10x-x-120">⋅ </span>3.<br
class="newline" />
答案1
前面两个答案已经回答了你的直接疑问。不过,我想补充一点,也许你应该尝试pandoc
主页。它可以将各种格式(如latex
、html、xhtml、html5、docx、odt、epubconTeXt
等)相互转换。我的体验很愉快。但是,安装 pandoc 需要haskell platform
占用近 350MB 的空间ubuntu 12.04
。
为了在 中很好地呈现数学html
,我认为这mathjax
是可行的方法。大多数浏览器都支持它。它可以处理大多数latex
数学环境。但有一个缺点是包含大量数学的网页加载速度很慢。
我用了:
pandoc -s --mathjax a.tex -o a.html
要得到
就我个人而言,我已经将包含大量数学内容的博士论文转换成了 html,并用pandoc
它来处理参考书目。
编辑:pandoc v1.9.2 中已解决与数学环境相关的主要错误。上面的示例使用最新版本 1.9.4.5。Ubuntu 存储库中有旧版本。因此,建议从haskell
存储库安装最新版本以获得最佳效果。
答案2
在我看来,您的输出是使用图像来表示数学内容;如果使用,您会得到更好的输出MathML
。您有几种选择:
htlatex myfile.tex "html,mathml"
生成一个html
文件,MathML
其中包含
mk4ht mzlatex myfile.tex "html,mathplayer"
生成一个.xht
带有 MathML 的文件。
从可访问性的角度来看,大多数屏幕阅读器最适合处理.xht
文件。
MathML 很棒,但唯一的缺点是并非所有浏览器都能原生呈现它。
- Firefox 可以轻松渲染它(并且已经这样做了很多年)
- 如果你礼貌地询问并安装,IE 就可以正常工作数学播放器,适用于 IE 8 及更高版本(或从相同 URL 下载 MathPlayer2 测试版,适用于 IE 9 和 10)。
大卫·卡莱尔
- Chrome 24 具有原生支持
- Safari 从第 5 版开始提供原生支持
- Opera 支持有限
答案3
最近我在网上做了很多数学实验,也许我的一些结论可能对你有帮助。
此时我实际上认为从 LaTeX 转换为 HTML 在哲学上是一种错误的做法(我对大多数将 LeTeX 转换为 HTML 的工具都很熟悉)。
与我之前的结论相反,我认为人们从一开始就应该输入文档,并且认为它应该在网络上很好地显示并以 LaTeX 的形式很好地打印出来。我的方法是采用txt2tags。然而,txt2tags 的主要目标是使用轻量级标记来生成 10 种不同的输出。代价是输出结果并非完美无缺,但您可以接受。我的方法是使用 txt2tags,并认为最终输出将是 LaTeX 或 XHTML。通过在标记模式下将 LaTeX 代码片段包含在 t2t ASCII 文件中,可以获得包含公式的相当好的 LaTeX 输出。例如 mwe.t2t
mwe.t2t
普雷德拉格·普诺舍瓦茨
Example: Failure of unique prime factorization in $\mathbb{Z}[\sqrt{-5}\hspace{0.1 cm}]$
'''
\begin{equation*}
6 = (1 + \sqrt{-5})\cdot (1 + \sqrt{-5}) = 2 \cdot 3
\end{equation*}
'''
but must be processed with pdflatex!
使用以下方式处理此类文件
txt2tags -t tex mwe.t2t
pdflatex mwe.tex
pdflatex.mwe.tex
会产生“完美”的 LaTeX 代码。但是 XHTML 呢?好吧,我们要研究的第一件事是如何在网络上正确显示数学。答案是数学家它使用 MathML 作为后端!MathJex 可以使用各种语法作为输入来生成数学,但特别是它可以使用 LaTeX 原生语法。这意味着上面的测试文件被处理为
txt2tags -t xhtml mwe.t2t
几乎就是你所需要的。为什么?也就是说,MathJax 不需要安装在你的本地机器上。你只需要在 mwe.xhtml 文件中附加以下几行代码
<meta http-equiv="Content-Language" content="English" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/x-mathjax-config">
MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'],
['\\(','\\)']]}});
</script>
<script type="text/javascript"
src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorM
ML">
</script>
最后一个meta
标签之后,用于在网络上显示 Math 的字体将从 MathJex 服务器上传。页面加载需要多一秒钟的时间,但没什么大不了的。它将在任何支持邪恶 JavaScript 的浏览器上正确显示。将上述代码放入mathjax.patch文件。脏活将由sed加载文件(r-命令)
$ more Makefile
SHELL = /bin/sh
.SUFFIXES : .t2t .tex .pdf .html
FILE = lesson_plans
SRC = ${FILE}.t2t
TXT2TAGS = /usr/local/bin/txt2tags
PDFLATEX = /usr/local/bin/pdflatex
TEX = ${SRC:.t2t=.tex}
HTML = ${SRC:.t2t=.html}
XHTML = ${SRC:.t2t=.xhtml}
.xhtml.t2t :
${TXT2TAGS} -t xhtml ${FILE}.t2t
html : ${SRC}
${TXT2TAGS} -t xhtml ${FILE}.t2t
mv ${XHTML} ${HTML}
sed '/meta/r mathjax.patch' ${HTML} > aux
mv aux ${HTML}
${TEX}: ${SRC}
${TXT2TAGS} -t tex ${FILE}.t2t
pdf: ${TEX}
${PDFLATEX} ${TEX}
${PDFLATEX} ${TEX}
clean-html :
/bin/rm -f *.html *.xhtml
clean-tex :
/bin/rm -f *.tex
clean :
/bin/rm -f *.log *.aux *.bbl *.blg *.bm *.toc *.out *.bak
clean-ps : clean
/bin/rm -f *.ps
clean-all : clean-tex clean-html clean
/bin/rm -f *.pdf
备注:我有 clean-ps 目标,因为我通常使用 tex->dvi->ps->pdf 例程,而我的.exrcnvi 编辑器的文件有
map ^X :w^M:!make pdf clean-ps %^M
因此我只需使用 CTRL+x 命令即可在 nvi 内部完成所有操作。
享受!!!