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

Что касается рендеринга вообще, то на сей счет у нас есть LaTeX и специальные векторные шрифты, позволяющие добиться чуть ли не идеального результата. С другой стороны, офисные вордпроцессоры имеют в своем составе или в составе офиса "редакторы формул", с помощью которых можно накликать что-то вроде следующего:

Набрано в  "редакторе формул" из состава офиса
Набрано в "редакторе формул" из состава офиса

Как можно заметить, все без исключения скобки чуть‑ли не касаются символов, круглые скобки где‑то прямые, где‑то наклонены. Это как раз то, из‑за чего такие формулы не похожи на те, которые мы видим в книгах и профессиональных изданиях.

Дело тут в том, что обычный пользователь, желающий натолкать в документ формул, не владеет основами типографской верстки этих самых формул, а инструмент, которым он для этой цели пользуется, «знает» еще и меньше него. Соответственно, даже если пользователь и знал бы, как нужно расставить все элементы, он не смог бы этого сделать, поскольку инструмент необходимыми функциональными возможностями не обладает.

Красивый документ с формулами можно сверстать на LaTeX'е, однако есть причины, исключающие это. Они в отношении пользователя бываю внешними и внутренними. Внутренние художественно выведены в двух прекрасных мультиках — «Вовка в тридевятом царстве» и «Крылья, ноги и хвосты». Внешние причины включают:
1) частое отсутствие в требованиях к оформлению документов, содержащих формулы, возможности использования LaTeX'а. Последним особенно страдают материалы российских конференций и прочая техническая периодика, издаваемые, в том числе, и серьезными организациями, такими как, например, АО «Российские космические системы» — требования к оформлению у них такие, словно в начало 90-х вернулся;
2) отсутствие возможностей для набора и качественного рендеринга формул в офисных пакетах из коробки (LO) и вообще (MSO).

Все современные «офисные пакеты» так или иначе, отдельно или в составе какой-нибудь программы, содержат крайне неудобный, неэффективный, малофункциональный и выносящий мозг качеством результата редактор формул, производящий что-то похожее на представленное на картинке в начале статьи. Особо нужно отметить метод ввода, заключающийся в тыканьи мышкой или еще каким указателем в картинки. Это мне напоминает появление в Windows 3.0 "виртуальной клавиатуры", когда куча новоиспеченных "виндузятников" вместо использования удобнейшей механической клавиатуры на герконах с калиброванным нажатием (других тогда c IBM PC/AT/PS2 и их клонами не поставлялось) при наборе текстов захлебываясь от собственной "продвинутости" тыкала неудобнейшей мышкой в квадратики с буквами и цифрами.

Хотел сразу приступить к дополнению TexMaths к офисным пакетам Open/Libre Office, но решил провериться -- а вдруг в MSWORD завезли LaTeX. Набрал в поисковике "Альтернативы редактору формул в MS Word?" и выхлоп был прямо таки многообещающий:

Сделал все, как написано, однако оказалось, что это всего лишь один из доступных методов ввода, причем распознаются лишь те из команд латеха, которые не выходят за рамки возможностей редактора формул. Но и это не все -- редактировать уже введенный ранее код у меня не получилось -- возможно, сам LaTeX-код не сохраняется, а конвертируется в маттайп, или что там используется, и присутствует в документе в таком виде. С другой стороны, а чего я ожидал, если в системе, на которой я все это тестировал, латех не установлен...

Итак, поскольку до сих пор (июнь 2025) MSO не позволяет напрямую использовать LaTeX для рендеринга формул, приходится использовать многошаговый метод, если нужно в документе формата .docx иметь приличный вид формул. Кратко, предполагая, что LaTeX в системе присутствует, алгоритм следующий:

1) устанавливаем libreoffice и плагин TexMaths к нему;

2) регистрируем свою преамбулу -- да, TexMath позволяет использовать в формулах все доступное из texlive, включая пакеты AMS, русские стили и прочее полезное;

3) устанавливаем выхлоп в .png и 1200 dpi (поддержка .svg в MSO пока оставляет желать лучшего, однако, если нет задачи экспортировать документ в MSO, лучше выбирать .svg);

4) набираем формулы в LaTeX -- это работает во writer, impress и draw и они красиво рендерятся там;

5) поскольку сам код и преамбула сохраняются в документе, нет никаких проблем код редактировать и даже копипастить в другие документы как результат рендертнга и как код;
6) а теперь просто экспортируем свой .odt в формат .docx, но не обычный, а Word 2010-365.

Ниже приведены формулы из картинки в начале статьи, набранные в латехе из-под TexMaths и libreofficе. После набора файл был сохранен, как "Документ Word 2010-365", открыт в WINWORD.EXE из MSO 2022, после чего был сделан скриншот.

Поскольку TexMaths вызывает установленный в системе LaTeX для компиляции и рендеринга формул, результат будет всегда одинаков вне зависимости от платформы.

Моя преамбула для TexMaths
\usepackage{mathtext}
\usepackage[T1,T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{cancel}

%%\usepackage{txfonts}
%%\usepackage{setspace}

\usepackage[english,russian]{babel}

% Uncomment this line for sans-serif font
%\everymath{\mathsf{\xdef\mysf{\mathgroup\the\mathgroup\relax}}\mysf}

% Uncomment these lines for colored equations
% Caution! Background color breaks transparency!
%\definecolor{fgcolor}{RGB}{0,0,255}
%\definecolor{bgcolor}{RGB}{255,0,0}
%\pagecolor{bgcolor}\color{fgcolor}

%%\def\ttdefault{cmtt}
%%\def\rmdefault{cmr}

\usepackage{bm}
%% Прямые интегралы и греческие символы
\usepackage{fixint}
\usepackage{rumathgrk}
%\usepackage{rumathgrk1}
%% наклонные русские индесы по умолчанию 
\DeclareSymbolFont{T2Aletters}{T2A}{cmr}{m}{it}

\usepackage{color}
\def\red#1{{\color[rgb]{0.5,0,0}{#1}}}
\def\magenta#1{{\color[rgb]{0.5,0,0.5}{#1}}}
\def\blue#1{{\color[rgb]{0,0,0.5}{#1}}}
\def\green#1{{\color[rgb]{0,0.5,0}{#1}}}

\def\le{\leqslant}
\def\ge{\geqslant}

\DeclareMathOperator*{\Exp}{Exp}
\DeclareMathOperator*{\rnd}{rnd}
\DeclareMathOperator*{\scal}{scal}
\DeclareMathOperator*{\vect}{vect}
\DeclareMathOperator*{\sign}{sign}

Чтобы все это работало в MS Windows, кроме libreoffice и TexMaths требуется установить MikTeX -- это порт texlive для MS Windows.

Комментарии (9)


  1. kompilainenn2
    29.06.2025 11:00

    Не очень понятно зачем в этой связке появился МС Офис


    1. quartz64
      29.06.2025 11:00

      Он появляется у принимающей/проверяющей стороны. «Ничего не знаю, у меня всё должно открыться в Ворде, в котором я работаю последние 20 лет!».


  1. 0mogol0
    29.06.2025 11:00

    Эти пакеты»офисы» обычно состоят из вордпроцессора, процессора электронных таблиц, векторного редактора, редактора презентаций, морды к базам данных и прочих маловостребованных компонент.

    какой-то дикий микс из отечественной терминологии 90ых и жаргонизмов. Если уж так хотелось использовать слэнг времён ЭВМ, то речь тогда шла про текстовый процессор, электронный таблицы итп.

    а вообще что-то https://habr.com/ru/articles/918522/ кучно пошли... Хотя странно, вроде сессия должна была завершиться


    1. strvv
      29.06.2025 11:00

      А это хвосты досдают, и на основе своего опыта - пишут шпаргалки для будущих поколений.
      Но будущие также игнорируют опыт предыдущих и храбро шагают по граблям.


  1. Stingray42
    29.06.2025 11:00

    Гораздо проще кмк использовать pandoc для конвертации markdown исходников с latex формулами в docx файлы, если уж одним latex не обойтись.


  1. lepota
    29.06.2025 11:00

    Да проще уже весь документ в latex'е делать, к чему все остальное, если уж без latex'а никак.


  1. MainEditor0
    29.06.2025 11:00

    Если условия позволяют, то можно использовать Typst (аналог LaTeX, но с более простым синтаксисом и меньшим числом плагинов)


    1. quartz64
      29.06.2025 11:00

      Typst действительно хорош (меня порой сильно утомляет борьба с зоопарком латексовых пакетов), вот только его мало где принимают. Если это не журнал (студенческая работа, например), то достаточно PDF, а журналам подавай исходные форматы.


  1. quartz64
    29.06.2025 11:00

    требования к оформлению у них такие, словно в начало 90-х вернулся;

    Похожая беда часто бывает и в случае LaTeX — требования четвертьвековой давности как минимум: кодировка CP1251 и даже CP866 встречается, ручная нумерация уравнений через eqno, ручная работа с библиографией, PSCyr, процесс latex→dvi→ps→pdf и прочие древние страдания. Люди на такой работе бывают очень консервативны — наладили процесс 20–30 лет назад, сделали шаблон чуть ли не на plain TeX, давно перешли пенсионный возраст и им ничего уже не нужно.

    Я часто сталкиваюсь, наоборот, с консерватизмом авторов: редакция принимает LaTeX или docx с формулами, набранными во встроенном редакторе (тогда они худо-бедно конвертируются через pandoc), но автор использует что-нибудь древнее (например, Word 2003 + MathType) и присылает вместо doc с формулами в картинках. Такое можно сконвертировать через GrindEQ.

    вдруг в MSWORD завезли LaTeX
    Но и это не все -- редактировать уже введенный ранее код у меня не получилось

    Завезли, и вы это нашли. Возможности там действительно сильно ограничены. Править уже введенное в LaTeX-режиме можно, если переключить вид уравнения с «профессионального» на «линейный» (такая терминология сбивает с толку, конечно).

    Использование TexMaths действительно помогает решить в лоб проблему передачи работы с большим количеством сложных формул тому, кто принимает только docx, но есть один серьезный нюанс: в требованиях зачастую прописано «формулы набираются при помощи встроенного редактора», а у вас всё будет в картинках, документ могут завернуть.

    удобнейшей механической клавиатуры на герконах с калиброванным нажатием (других тогда c IBM PC/AT/PS2 и их клонами не поставлялось)

    Герконы в те времена встречались разве что в советских клавиатурах для ЕС (м.б. ещё кто-то в СЭВ делал).