我需要将方程式存储在文本文件中,采用可以转换为可渲染格式的源格式(例如 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
答案4
StarMath 的格式记录在LibreOffice 4.4 数学指南. 附录 A 包含命令参考。