LaTeX 到 HTML - 平方根

LaTeX 到 HTML - 平方根

我使用 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">&#x2124;</span>[<img 
src="Fermat10x.png" alt="&#x221A; --5"  class="sqrt" > ]:<br 
class="newline" />6 = (1 + <img 
src="Fermat11x.png" alt="&#x221A; ---
  - 5"  class="sqrt" >) <span 
class="cmsy-10x-x-120">&#x22C5; </span>(1 + <img 
src="Fermat12x.png" alt="&#x221A; ---
  - 5"  class="sqrt" >) = 2 <span 
class="cmsy-10x-x-120">&#x22C5; </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 的文件。

screenshot

从可访问性的角度来看,大多数屏幕阅读器最适合处理.xht文件。

MathML 很棒,但唯一的缺点是并非所有浏览器都能原生呈现它。

  • Firefox 可以轻松渲染它(并且已经这样做了很多年)
  • 如果你礼貌地询问并安装,IE 就可以正常工作数学播放器,适用于 IE 8 及更高版本(或从相同 URL 下载 MathPlayer2 测试版,适用于 IE 9 和 10)。

大卫·卡莱尔

  • Chrome 24 具有原生支持
  • Safari 从第 5 版开始提供原生支持
  • Opera 支持有限

答案3

最近我在网上做了很多数学实验,也许我的一些结论可能对你有帮助。

  1. 此时我实际上认为从 LaTeX 转换为 HTML 在哲学上是一种错误的做法(我对大多数将 LeTeX 转换为 HTML 的工具都很熟悉)。

  2. 与我之前的结论相反,我认为人们从一开始就应该输入文档,并且认为它应该在网络上很好地显示并以 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 内部完成所有操作。

享受!!!

相关内容