Обновление МойОфис 2021.02. Пишите формулы и математические выражения в текстовом редакторе

Привет, Хабр! Недавно мы обновили МойОфис до версии 2021.02. Одним из важных улучшений стала возможность добавления формул в текстовом редакторе. Она может быть полезна всем, кто работает с текстами и хочет получить корректное отображение сложных математических выражений в документах, особенно при последующей печати.
Для работы с формулами мы применяем LaTeX. Эта система набора и вёрстки документов считается стандартом «де факто» в научной среде благодаря корректной работе даже с особо сложными математическими формулами. В его основе лежит TeX — язык разметки низкого уровня, созданный Д. Кнутом в 70-х годах прошлого века. В 1984 году Л. Лампорт выпустил пакет расширения (или макронадстройки) для TeX, который включал порядка 600 макрокоманд. На сегодняшний день для LaTeX доступно большое количество различных пакетов-дополнений, позволяющих эффективно работать с разнообразными данными, такими как формулы, графика, ноты и другие. Потенциальные возможности системы не ограничены.
Работа с формулами при использовании LaTeX заметно отличается от привычного многим визуального редактора. Тем не менее, даже в Microsoft Word 2019 реализована возможность ввода формул в формате LaTeX, да и в файлах документов формулы хранятся именно в таком виде.
После изучения основ и базовых тегов языка, ввод и последующее редактирование формул становится простым и понятным процессом. А результат всегда будет выглядеть качественно.
Как вводить формулы
Сейчас мы продемонстрируем, как работать с формулами в МойОфис Текст. В меню «Вставка» необходимо выбрать раздел «Формула» с символом π в кружке.

По нажатию появляется окно с двумя полями: «Выражение LaTeX» и «Предварительный просмотр».

Попробуем ввести какую-нибудь формулу. Большинство математических функций и символов, а также скобки, матрицы и системы уравнений в синтаксисе LaTeX обозначаются тегами, начинающимися с символа \. Например, возьмём классический определённый интеграл функции f (x) на интервале [a, b]. В результате, формула будет выглядеть следующим образом:
\int_a^b f(x) dx
В данном случае a и b являются параметрами тега \int. После вставки формулы в поле предпросмотра мы видим результат.

Остаётся только нажать «ОК», и готовая формула появляется в указанном месте тестового документа. Работать с формулой можно так же, как и с любым другим объектом: после выделения её можно выровнять по центру, по правой или левой стороне, а также изменить размеры, потянув за одну из четырёх ключевых точек по углам объекта.

Также при выделении формулы на панели инструментов появляется блок кнопок «Формула» для изменения или удаления объекта. Удалить формулу можно и привычным способом, выделив её и нажав клавиши Backspace или Del — аналогично удалению других объектов.
Теперь давайте добавим более сложные формулы, чтобы продемонстрировать возможности текстового редактора «МойОфис Текст». Например, используем некую абстрактную функцию с четырьмя переменными. Буквы греческого языка и лемниската, символ бесконечности, также вводятся в виде тегов.
f(a,b,\delta, \gamma) = \frac{\sum \limits_{n=0}^{\infty} S_n \tan \left( \frac{104-2\delta \pi}{\mu} \right)+\gamma} {\mathcal{F} {g(a,b)} }
На этом примере уже хорошо прослеживается чёткость структуры. Разобьём формулу по строкам для большей наглядности:
f(a,b,\delta, \gamma) =
\frac{
\sum \limits_{n=0}^{\infty} S_n \tan \left( \frac{104-2\delta \pi}{\mu} \right)+\gamma
}
{
\mathcal{F} {g(a,b)}
}
В результате ввода получаем следующее выражение:

Видим, что всё отображается хорошо и корректно.
Теперь попробуем добавить ошибку в формулу и посмотрим, как поведет себя редактор. Например, добавим лишний пробел в слове delta (верхняя зеленая стрелка на скриншоте ниже).
Видим, что при наличии ошибки синтаксиса в формуле, в окне результата место с ошибкой будет выделено красным (нижняя зеленая стрелка). Удобно.
Редактор формул поможет найти ошибки, однако всегда стоит дополнительно контролировать результат, так как нередко разделённое случайным пробелом имя функции может случайно совпасть с именем совершенно иной функции, также существующим в LaTeX.

Если у вас есть длинное выражение, которое занимает более одной строки, стоит использовать разделитель \\. Так, к примеру, для записи такого равенства
1+2+3+4+5+6+7+8+ ... +97+98+99+100+101+102+103+...+146+147+148+149+150 = 11325
потребуется в редакторе формул ввести следующее выражение, в котором горизонтальное многоточие обозначено тегом \dots:
1+2+3+4+5+6+7+8+ \dots + \\ +97+98+99+100+101+102+103+ \dots + \\ +146+147+148+149+150 = 11325
В результате получаются аккуратно перенесённые строки.

Еще с помощью LaTeX удобно записывать матрицы и другие сложные выражения в несколько строк. Давайте для начала введём некую матрицу «А» произвольного размера с количеством столбцов и рядов, равным n. Для этого используем такой код:
A = \left(
\begin{array}{cccc}
a_{11} & a_{12} & \ldots & a_{1n}\\
a_{21} & a_{22} & \ldots & a_{2n}\\
\vdots & \vdots & \ddots & \vdots\\
a_{n1} & a_{n2} & \ldots & a_{nn}
\end{array}
\right)
К слову, в этом коде присутствуют уже три варианта многоточия: горизонтальное, обозначенное \ldots, вертикальное \vdots и диагональное \ddots. Даже сама структура тегов языка LaTeX понятна и логична, что порой позволяет интуитивно догадаться о смысле и различиях родственных элементов. В результате ввода получаем следующее:

Также можно объединять различное количество выражений в систему или использовать структуру для наглядного представления вариантов выбора с последствиями. В качестве примера возьмём систему из трёх уравнений с тригонометрическими функциями.
\begin{cases}
x &= \cos \alpha +2 \sqrt[3]{\cos 2 \alpha+3} + \cos \alpha + 4\\
y &=2 \sin \alpha +3 \sqrt[4]{\sin \alpha - 1} + \sin \alpha \\
z &= 5 \sin \alpha + 4 \cos 2 \alpha
\end{cases}
Количество элементов-строк может быть произвольным, а отделяются они так же, как и обычные строки — с помощью \\. В результате получается такая конструкция:

Сравним как формулы отображаются в других редакторах
Теперь проверим, как документ с формулами, созданный в МойОфис, открывается и читается в других популярных текстовых редакторах. Для чистоты эксперимента используем сразу несколько формул из приведённых выше. Тестовый документ выглядит так:

Сохраним его в двух форматах — ODT и DOCX. После чего откроем его в LibreOffice и Microsoft Word 2019 и сравним полученное с исходным.
Как формулы из МойОфис отображаются в LibreOffice
В LibreOffice файл .odt прочитался нормально за исключением некоторых деталей. Так, во второй формуле не отобразился каллиграфический шрифт для обозначения «F», вместо него добавился лишний оператор в знаменателе. В третьей формуле исчезла скобка и добавились красные перевёрнутые знаки вопроса в системе выражений, а также возникла проблема с диагональными точками в матрице.

При открытии файла .docx в первой формуле дополнительно появилось пустое поле между символом интеграла и функцией. Ещё одно отличие между двумя форматами — выравнивание: .odt выровнен по левому краю, а .docx — по центру.

Как формулы из МойОфис отображаются в Microsoft Office
Откроем те же документы в Microsoft Word 2019. В формате .odt формулы читаются, но снова проявилось пустое поле между интегралом и функцией. Также иначе отображаются пределы суммы, есть ошибка в отображении функции в знаменателе второй формулы, отсутствует скобка в системе выражений, а их форматирование внутри формулы сделано по центру.

В файле .docx ситуация аналогична, только все формулы выровнены по центру.

Как формулы из Microsoft Office отображаются в МойОфис
Многим пользователям важно и то, насколько успешно МойОфис открывает файлы c формулами, созданными в других редакторах. Для проверки этого создадим два документа в форматах .docx и .odt c полностью аналогичным набором выражений, используя для этого встроенные системы редактирования формул.
Начнём с Microsoft Office. Все формулы, которые мы создали во встроенном WYSIWYG-редакторе Word, без проблем открылись в МойОфис. Корректно отобразились все элементы, включая внутреннее форматирование (да, система из трёх уравнений и там расположена по центру). Разницы между форматами .docx и .odt не выявлено.

Как формулы из LibreOffice отображаются в МойОфис
А вот у файлов, созданных в LibreOffice, возникла небольшая проблема с изменением размера формул: при открытии в МойОфис все элементы оказались сжатыми по горизонтали. Самый очевидный момент — большая фигурная скобка в системе уравнений отобразилась в виде скобки обычного размера и к тому же располагается выше центра. Таким образом некоторые формулы после открытия в МойОфис, возможно, придётся подкорректировать. Но не более того.

Заключение
В статье мы продемонстрировали лишь малую часть возможностей LaTeX для отображения формул в текстовом редакторе «МойОфис Текст». Если вы захотите изучить систему верстки подробнее, то легко сможете найти инструкции и описания всех тегов в сети.
Наше исследование показало, что при работе с формулами в разных редакторах возможно возникновение небольших погрешностей при отображении математических выражений. В целом, «МойОфис Текст» корректно обрабатывает синтаксис LaTeX, благодаря чему вы можете писать формулы в полном соответствии с требованиями к оформлению инженерной документации. Пользователям доступна полноценная работа как с простыми функциями, так и сложными конструкциями из многих элементов, вы можете в реальном времени контролировать вид будущего выражения в окне предпросмотра и при необходимости сразу вносить изменения в код формулы. При этом критические ошибки в синтаксисе сразу будут заметны благодаря цветовому выделению.
Делитесь в комментариях впечатлениями о работе с формулами в «МойОфис Текст»: нашей команде важны ваши пожелания, предложения и замечания!