如何在 Excel 中生成 MathML 方程式并作为正确的方程式导入 Word?

如何在 Excel 中生成 MathML 方程式并作为正确的方程式导入 Word?

我所说的方程式是你通过插入->方程式得到的方程式格式

在此处输入图片描述

如果我将 MathML 代码复制到 word 中,它可以正常工作,因此我尝试将 MathML 标签连接到字符串,=CONCATENATE(...)然后尝试从 excel 复制表格

在此处输入图片描述

到 word,看看 Word 是否自动格式化 MathML 代码,但由于我复制了整个表格,所以我猜 Word 无法识别该等式。

此时,我正在寻找一种奇怪的方法来做到这一点,但我想我在这里问一下,看看是否有人有什么想法。

编辑:

文本单元格中的数据通过这样的连接形成。以下是上例中显示的两个文本单元格的公式。

=CONCATENATE(
    "<math xmlns=""http://www.w3.org/1998/Math/MathML""> <mfrac> <mrow> <mi>",
    D2,
    "</mi><mo>&#xA0;</mo><mo>-</mo><mo>(</mo><mi>",
    B2,
    "</mi><mo>)</mo></mrow><mrow><mi>",
    C2,
    "</mi><mo>-</mo><mo>(</mo><mi>",
    A2,
    "</mi><mo>)</mo></mrow></mfrac></math>"
)
=CONCATENATE(
    "<math xmlns=""http://www.w3.org/1998/Math/MathML""> <mfrac> <mrow> <mi>",
    D3,
    "</mi><mo>&#xA0;</mo><mo>-</mo><mo>(</mo><mi>",
    B3,
    "</mi><mo>)</mo></mrow><mrow><mi>",
    C3,
    "</mi><mo>-</mo><mo>(</mo><mi>",
    A3,
    "</mi><mo>)</mo></mrow></mfrac></math>"
)

编辑2

所有单元格的截图:

在此处输入图片描述

答案1

这很有趣。如果你将 MathML 代码粘贴<math ... </math>未格式化的文本进入 Word 后,它将被格式化为公式。但是,如果它被格式化为 html(从网站复制)或对象(从 Excel 单元格复制),则不会。例如,如果您直接从超级用户那里复制以下内容:

<math xmlns="http://www.w3.org/1998/Math/MathML"> <mfrac> <mrow> <mi>4</mi><mo>&#xA0;</mo><mo>-</mo><mo>(</mo><mi>2</mi><mo>)</mo></mrow><mrow><mi>3</mi><mo>-</mo><mo>(</mo><mi>1</mi><mo>)</mo></mrow></mfrac></math>

然后直接粘贴到 Word 中,它将粘贴为 HTML 格式的垃圾:

在此处输入图片描述

但是,如果您单击粘贴下拉菜单(或按 CTRL),并选择“仅保留文本”(或使用选择性粘贴),它将正确格式化:

在此处输入图片描述

总结

Excel 需要未格式化的文本,其中包含单个<math...> ... </math>MathML 元素,以便识别并重新格式化它。从 Excel 粘贴多个单元格将不起作用,因为为了保留表格/单元格格式,Word 必须以 HTML 格式(或作为 Excel 对象)粘贴数据,并且不会运行 MATHML 解析器。反之亦然,如果您仅以文本形式粘贴,表格格式将丢失。此外,解析器仅接受一个 MathML 元素,因此无法处理多个元素,只能以文本形式粘贴所有元素。

多个公式粘贴选项

  • 在 Excel 中选择所有 MATHML 单元格,将其复制并粘贴到记事本中。现在逐个选择它们,然后将其剪切并粘贴到 Word 中。
  • 在 excel 中生成每个方程式,不带 <math ...> 和标签。将开始标签放在最上面一行,将结束标签放在最下面一行。现在使用 将它们全部连接在一起=TEXTJOIN("",TRUE, B1:B10)。复制结果并以纯文本形式粘贴到 Word 中。编辑菊花链式方程式,然后按每个方程式之间的 Enter 键将它们分成单独的方程式。
  • 如上所述,但要弄清楚 Word 如何在 MathML 中换行(我做不到,mspace 标签似乎不起作用)。也许可以尝试普通的 Office Open XML 换行标签?
  • 如果您确实想将方程式粘贴到表格中,请在空白 Word 文档中创建一个空白表格,粘贴一个简单的 MathML 方程式,保存并关闭。在资源管理器中将 Word .docx 重命名为 .zip,解压缩并搜索相应的 OOXML 文件。手动编辑它,看看您是否可以理解 OOXML 标签,以便将方程式破解到 OOXML 中。替换、保存、重新压缩、重命名回 .docx 并检查!
  • 我发现 Word 的内置公式编辑器也支持 {LaTeX} 和 /UnicodeMath 格式。也许可以研究一下这些格式,这样你也能本地编写表格代码。

相关内容