Форматы математических уравнений

2087
Jason S

Мне нужно хранить уравнения в текстовом файле, в исходном формате, который можно преобразовать во что-то, что может быть визуализировано (например, mathML). Мне нравится формат, используемый в OpenOffice. Я не хочу использовать TeX, или, по крайней мере, я не хочу брать на себя весь багаж интерпретации TeX. Какой формат использует OpenOffice Equation Editor, и существуют ли сторонние конвертеры командной строки, которые будут обрабатывать этот формат? Я не хочу запускать OpenOffice каждый раз, когда мне нужно визуализировать / преобразовать мои уравнения.

7
Принадлежит стеку joe 15 лет назад 1
То же самое. Это не имеет ничего общего с программированием. Jason S 15 лет назад 1

4 ответа на вопрос

4
Alex Bolotov

What format does OpenOffice Equation Editor use?

LibreOffice Math (and OpenOffice Math) both use MathML to represent mathematical markup.

Just save any equation using Math and simply unpack it (it is ZIP packed). For example if you create famous [E=mc²] and save it, then in content.xml inside your .odt file you will find something like this:

<?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> 

As you see, Math stores equation in own format annotation section, but you can use plain MathML as input format.

… command-line converters that will process this format

I believe, you can use Python API for Libre (Open) Office.

You can put your own equation in annotation (in StarMath's format). Looks like Math builds equation based on how it is represented in annotation and the rest of MathML file is just for representation/compatibility.

If MathML doesn't look like made from StartMath it will propose to "repair" the file and it will work just fine after this.

* Пользовательский интерфейс * редактора не использует MathML. Они могут * хранить * математическую разметку как MathML, но я не хочу использовать MathML. Я хочу использовать язык разметки пользовательского интерфейса (если посмотреть на раздел «аннотации» вашего ответа, он должен называться «StarMath»). Это намного проще. Jason S 13 лет назад 0
2
Steven

Я предполагаю, что вы хотите знать о математических командах для OpenOffice Math. Команды являются частными, и, похоже, сторонних конвертеров не существует.

Вы можете использовать текс без использования всей системы компиляции текс. Я использую библиотеку javascript mathJax для визуализации напрямую. Если вы хотите преобразовать в промежуточный формат, такой как mml, а затем выполнить рендеринг позже, вы можете использовать библиотеку, такую ​​как SnuggleTeX для Java .

2
user60598

Синтаксис в OpenOffice Math основан на eqn, который гораздо более читабелен, чем LaTeX. Если вы сохраняете уравнения в виде eqn-кода, вы можете очень быстро их визуализировать с помощью troff или конвертировать в LaTeX и обрабатывать таким образом. Математическая отрисовка Troff не так хороша, как у LaTeX, но troff гораздо более легковесен.

+1 за ссылку `eqn`! dolmen 9 лет назад 0
0
dolmen

The format for StarMath is documented in the LibreOffice 4.4 Math Guide. Appendix A contains the Command Reference.