将包含 MathML 方程式的 HTML 页面转换为 Word 文档

将包含 MathML 方程式的 HTML 页面转换为 Word 文档

我的目标是转换此文档(https://galileo.phys.virginia.edu/classes/252/lorentztrans.html) 将包含数学运算的文字文档以格式良好的方程式呈现。

你会问为什么只用 Microsoft Word?我正在用这份讲义自学物理。我所有的笔记都是用 OneNote 做的(在我的 Ipad 上,用 ipencil 手写方程式和手绘图表)。问题是,OneNote 的方程式系统与 Microsoft Word 相同。如果将其转换为 Word,则将其转换为 OneNote。

我尝试了谷歌搜索的所有可能方法。我尝试了以下方法,但没有成功。

方法 1:将 MathML 复制粘贴到 MS Word 中。我发现,这种方法对一些简单的方程式有效。但奇怪的是,这种方法对本网站的任何方程式都无效。我认为本网站的 MathML 有点奇怪。

方法 2:使用 pandoc 将 HTML 转换为 docx。我保存了此页面的 html(仅限)。然后使用pandoc -s input.html -o output.docx。它跳过了所有方程式。

方法 3:直接复制粘贴到 MS Word 和 Apache OpenOffice Write 中。

我不介意先转换为中间格式,然后再转换为 Word。

注意:我正在寻找一种自动解决方案,因为我需要为数百页进行此操作。作者已以这种格式撰写了各种讲座笔记。

答案1

文档中的数学标签如下所示:

<math xmlns='//www.w3.org/1998/Math/MathML' style='background-color:#'>
 <semantics>
  <mi>v</mi>
 </semantics>
</math>

XML 命名空间以与协议无关的 URI 形式给出,即以 开头//。这是不正确的,它必须使用协议http:,如下所示:http://www.w3.org/1998/Math/MathML

Pandoc 也对此感到困惑,因为它不是有效的 MathML,因此无法将其识别为方程式。如果添加前缀,它会很好地工作http:。因此,解决方案是在输入 HTML 文档中进行搜索和替换,修复 xmlns 属性,然后将修复的结果传递给 pandoc。

相关内容