数学方程式格式

数学方程式格式

我需要将方程式存储在文本文件中,采用可以转换为可渲染格式的源格式(例如 mathML)。我喜欢 OpenOffice 中使用的格式。我不想使用 TeX,或者至少我不想背负解释 TeX 的所有负担。OpenOffice 方程式编辑器使用什么格式,是否有第三方命令行转换器可以处理这种格式?我不想每次需要渲染/转换方程式时都必须运行 OpenOffice。

答案1

OpenOffice 公式编辑器使用什么格式?

LibreOffice Math(和OpenOffice 数学)都使用数学语法来表示数学标记。

只需使用 Math 保存任何方程式并简单地解压它(它是 ZIP 压缩包)。例如,如果您创建著名的 [E=mc²] 并保存它,那么在content.xml您的.odt文件中您会发现类似以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<math xmlns="http://www.w3.org/1998/Math/MathML">
    <semantics>
        <mfenced open="[" close="]"><mrow>
            <mi>E</mi><mo stretchy="false">=</mo><msup><mi mathvariant="italic">mc</mi><mn>2</mn></msup>
        </mrow></mfenced>
        <annotation encoding="StarMath 5.0">left[ E=mc^2 right]</annotation>
    </semantics>
</math>

如您所见,Math 将方程式存储在自己的格式annotation部分中,但您可以使用纯 MathML 作为输入格式。

…将处理此格式的命令行转换器

我相信,您可以将 Python API 用于 Libre (Open) Office。

您可以将自己的方程式放入注释中(以 StarMath 的格式)。看起来 Math 根据它在注释中的表示方式构建方程式,而 MathML 文件的其余部分仅用于表示/兼容性。

如果 MathML 看起来不像是由 StartMath 制作的,它会建议“修复”该文件,之后它就可以正常工作了。

答案2

我假设您想了解 OpenOffice Math 的数学命令。这些命令是专有的,而且似乎没有任何第三方转换器。

无需启动整个 tex 编译系统,即可使用 tex。我使用javascript 库 mathJax直接渲染。如果要转换为中间格式(如 mml),然后稍后渲染,可以使用以下库:SnuggleTeX 适用于 Java

答案3

OpenOffice Math 中的语法基于方程,这比 LaTeX 更具可读性。如果你将方程式存储为 eqn 代码,你可以使用以下代码快速渲染它们:特罗夫或者转变转换为 LaTeX 并以此方式渲染。Troff 的数学渲染不如 LaTeX 那么好,但 troff 更轻量。

答案4

StarMath 的格式记录在LibreOffice 4.4 数学指南. 附录 A 包含命令参考。

相关内容