MiKTeX 2.9 上的 TeX4ht (htlatex) 将 LaTeX 转换为 MathML,然后使用 Word 2010 转换为 Office MathML

MiKTeX 2.9 上的 TeX4ht (htlatex) 将 LaTeX 转换为 MathML,然后使用 Word 2010 转换为 Office MathML

我设法通过 MiKTeX 2.9 上的命令使用 TeX4hthtlatex成功将 LaTeX 文档转换为 HTML 文档。TeX 文件是一个相当简单的测试文档,显示格式为积分。但是,我使用此方法作为间接手段,最终使用 Office MathML (OMML) 数学将 LaTeX 转换为 Word。想法是将 TEX 文件转换为 HTML,然后在 Word 2010 中打开 HTML 并将其保存为 DOCX。

不幸的是,我似乎无法正确地将 LaTeX/TEX 转换为 MathML/HTML,再转换为 Office MathML/DOCX。我确实设法获得了不错的 HTML,但这就是我遇到的问题。

这是我尝试的方法。没有选项,htlatex会生成 PNG 格式的图片,而不是嵌入 HTML 文件中的 MathML。Word 会保留图片,并且不会创建 OMML。

htlatex使用选项“html,mathml”创建一个带有 MathML 的 HTML 文件,不带位图,但 Word 2010 无法正确读取它,并且生成的公式看起来粗略地变成了带有希腊字母和内联符号的文本。

在 Word 中打开 HTML 文件时,选项“xhtml,mathml”也会出现问题,类似于“DTD 禁止”。尝试过“xhtml,oofice,mathml”,结果也一样。

我不知道是否应该使用mk4h mzlatex而不是htlatex。我没有测试过这个替代方案,因为mk4h在 Windows 上似乎需要 Perl 解释器,而且它似乎与htlatex使用选项“xhtml,mozilla”非常相似,如https://stuff.mit.edu/afs/athena/system/i386_deb50/os-ubuntu-9.04/usr/share/doc/tex4ht/html/.htlatex不需要 Perl。

细节

  1. 在 Windows 7 上安装了 MiKTeX 2.9,miktex-tex4ht-bin-2.9miktex-tex4ht-base-2.9以管理员模式使用包管理器进行安装。

  2. 在中创建一个test.tex文件E:\downloads,内容如下:

    \documentclass{report}
    \begin{document}
    Hello there. This is a test of $x_i^2=3$, where
    $$\int_0^\infty f(x) = 1.$$
    \end{document}
    
  3. 使用以下 MS DOS 命令将 TeX 文件转换为 HTML 文件。需要注意的是,由于 htlatex 接受文件名但不接受路径名,因此必须将当前目录设置为 tex 文件所在的目录。如果为测试文件指定了路径名,例如 e:\downloads\test.tex,则会产生错误“未定义的命令序列”。

    e:
    cd Downloads
    "C:\Program Files (x86)\MiKTeX 2.9\scripts\tex4ht\htlatex.bat" test.tex
    
  4. 转换成功,但积分公式显示为位图文件,而不是嵌入为 MathML。

  5. 尝试了以下方法,它确实生成了 Math ML 代码而不是图像,但是 Word 2010 无法正确识别它并将其转换为 Office Math ML:

    "C:\Program Files (x86)\MiKTeX 2.9\scripts\tex4ht\htlatex" test.tex "html,mathml"
    

答案1

我已成功使用 Word 2010 打开您的文档。首先,我将文档转换为odt格式。由于您没有mk4ht可用的命令,因此您需要使用以下htlatex调用:

htlatex test.tex "xhtml,ooffice" "ooffice/! -cmozhtf" "-cooxtpipes -coo"

这些参数都是必要的,它们用于对xml文件和文档进行后期处理。

当我尝试使用 打开生成的文档时Word 2010,数学符号处只显示灰色交叉框。然后我尝试使用test.odt( OpenOffice3.2) 和LibreOffice(3.6) 打开并保存。在这两种情况下,保存的文件几乎是原来的两倍。在 中保存的文档在 中OpenOffice打开没有问题Word,在 中保存的文档LibreOffice报告内容不正确,但随后Word询问我是否要修复它,然后也能正确打开它。

我查看了odt从 保存的文件Open/LibreOfficess,似乎数学运算是从主文档中提取出来的,并且每个数学运算片段都保存在独立文件中,并带有一些额外的元数据。虽然生成的文件Open/LibreOffice可以接受,但 word 显然不行,并且它的支持需要特定格式的数学运算。我不知道这种行为是否也表明了当前版本,它可能是中支持的一个错误,但我对标准了解不够,无法判断。如果您的生成的文件中不支持数学运算,请尝试使用 打开并保存它。odttex4htodtWordodtWordodtWordodttex4htOpenOffice

在此处输入图片描述

相关内容