Мне нужно хранить уравнения в текстовом файле, в исходном формате, который можно преобразовать во что-то, что может быть визуализировано (например, mathML). Мне нравится формат, используемый в OpenOffice. Я не хочу использовать TeX, или, по крайней мере, я не хочу брать на себя весь багаж интерпретации TeX. Какой формат использует OpenOffice Equation Editor, и существуют ли сторонние конвертеры командной строки, которые будут обрабатывать этот формат? Я не хочу запускать OpenOffice каждый раз, когда мне нужно визуализировать / преобразовать мои уравнения.
4 ответа
Какой формат использует OpenOffice Equation Editor?
LibreOffice Math (и OpenOffice Math) оба используют MathML для представления математической разметки.
Просто сохраните любое уравнение, используя 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, он предложит "восстановить" файл, и после этого он будет работать нормально.
Синтаксис в OpenOffice Math основан на eqn, который гораздо более читабелен, чем LaTeX. Если вы сохраняете уравнения в виде eqn-кода, вы можете очень быстро их визуализировать с помощью troff или конвертировать в LaTeX и обрабатывать таким образом. Математическая отрисовка Troff не так хороша, как у LaTeX, но troff гораздо более легковесен.
Я предполагаю, что вы хотите знать о математических командах для OpenOffice Math. Команды являются частными, и, похоже, сторонних конвертеров не существует.
Вы можете использовать текс без использования всей системы компиляции текс. Я использую библиотеку javascript mathJax для визуализации напрямую. Если вы хотите преобразовать в промежуточный формат, такой как mml, а затем выполнить рендеринг позже, вы можете использовать библиотеку, такую как SnuggleTeX для Java.
Формат для StarMath задокументирован в руководстве по математике LibreOffice 4.4. Приложение A содержит справочник команд.