Нам предстоит набирать текст с математическими формулами. Как сделать это так, чтобы получилось красиво, и было поменьше мороки? Рассмотрим имеющиеся способы.
Набор при помощи меню
Word.
Открываем меню Вставка/Объект/Microsoft Equation 3.0 и набираем формулу

опять-таки — с помощью меню.
Сложно? Нет, конечно! Но обратите внимание: чтобы набрать эту простенькую формулу пришлось 6-7 раз сделать выбор с помощью мыши и поставить на выбранное место символ, но уже с помощью клавиатуры. При этом приходится «целиться» в нужные пункты меню, иначе вместо верхнего индекса получим нижний. Каждое переключение — это напряжение внимания, дополнительные усилия и — маленькая пауза. В результате, скорость работы падает, а сама работа выглядит так, будто во время набора текста вы играете в дартс. А ведь даже в небольшой курсовой может оказаться сотня формул (учтите не только отдельно стоящие формулы, но и те, что находятся внутри текста). Посмотрим, какие решения предлагают альтернативные редакторы.
LibreOffice
На первый взгляд — все то же самое. Да, отличаются меню и панели инструментов, но это — дело привычки. Самое интересное здесь — выделенный на картинке текст

Линейная запись
позволяет набирать формулы так, как это делается в языках программирования. Набирая команды
int from {a} to {b} x^{2} dx
мы видим, как в расположенном выше окне они преобразуются в «красивую» запись формулы.
Команда int означает интеграл, from и to задают пределы интегрирования «от» и «до», ^ служит для возведения в степень и других верхних индексов. Фигурные скобки задают блок, который должен рассматриваться как единое целое. В данном примере они не нужны, т. к. как каждый блок состоит всего из одного символа, но если символов будет несколько, то
int from a to b x^{a-1} dx
даст

тогда как
int from a to b x^a-1 dx
создает

Итак, в LibreOffice (а также в OpenOffice) есть модуль Math, позволяющий вводить формулы не только при помощи меню, но и линейно, как в языках программирования. Для записи формул используется специальный язык.
Word не мог долго оставаться в стороне. Прошло всего несколько лет с момента появления линейной записи в свободных офисных пакетах, как в Word 2007 появилась аналогичная возможность.

Команда
\int_a^b<пробел>x^2<пробел>dx
даст нам уже знакомыйдо боли интеграл. С помощью символа подчеркивания _ задаются нижние индексы (в нашем случае — нижний предел интегрирования).
Язык (подробнее он описан здесь), как видим, очень похож на язык LibreOffice, только ключевые слова вроде int, начинаются с бэкслеша (‘\’). При линейной записи формул в Word существенную роль играют пробелы. Так, не сделав пробел после 2 в предыдущем примере, получим

Т. е. пробелы играют роль фигурных скобок. Остальные пробелы просто отображаются в записи формулы. В LibreOffice, напротив, пробелы игнорируются, так что
int from a to b x^a-1 dx
даст все тот же неизменный интеграл.
Неприятно то, что вернувшись из профессионального режима (так назван режим набора с помощью меню) в линейный, мы увидим не текст команд которые только что набирали, а то, как их «понял» Word

В итоге переключений мышь-клавиатура при наборе формул в Word стало меньше, но обработка команд оставляет желать лучшего. Сделан значительный шаг вперед, но предстоит еще долгая дорога.
Совместимость
Набранные в LibreOffice формулы автоматически преобразуются в: 1) формулы «нового стиля» Word 2007, если сохранить документ в формате .docx, и 2) в формат Microsoft Equation, если сохранить документ как .doc. Формулы, созданные в Word в новом стиле, LibreOffice также понимает хорошо и адекватно воспроизводит команды. Так, интеграл, созданный в Word и сохраненный в .docx, в LibreOffice представляется командами
int from {a} to {b} {{x} ^ {2} dx}
что позволяет не только просматривать, но и редактировать формулы, набранные в Word.
А вот формулы Microsoft Equation преобразуются плохо. LibreOffice пытается сохранить только их внешнее начертание
size 12{ Int cSub { size 8{a} } cSup { size 8{b} } {x rSup { size 8{2} } } ital "dx"} {}
что также не всегда удается

Лучших результатов можно достичь, если установить Microsoft Equation на компьютер с LibreOffice. К сожалению, этот модуль распространяется только вместе со всем MS Office.
Следовательно, если вам нужна совместимость между Word и свободными офисными пакетами, пользуйтесь новым стилем написания формул и сохраняйте офисные документы в формате docx.
Совсем без меню
обойтись при наборе формул в офисных пакетах невозможно: всякий раз нужно кликать мышью для вызова режима набора формул и выхода из него (можно использовать клавиатурную комбинацию, но это все равно требует некоторой паузы и переключения внимания). Можно ли обойтись без этого? Конечно. Следующая запись позволяет получить выключную формулу (т. е. формулу, стоящую в отдельной строке)
\[
\int_a^b x^2 dx
\]

Большинство команд нам знакомо. Скобки \[, \] означают, что формула выключная. Для формул, помещаемых в строке, нужно использовать скобки \(, \).
Теперь переключений не нужно совсем, а скорость набора возрастает до максимума. Но не впадаем ли мы в другую крайность? Что делать, если мы забыли, как набрать нужную функцию. Обычно нам помогало меню, а теперь…
Вот панель символов редактора Texmaker (бесплатного и кросс платформенного). Выбирая нужный символ, вы тем самым вставляете в документ соответствующую этому символу команду

Так что проблемы как вспомнить команду не существует.
Да, кажется, я забыл упомянуть, где существует подобное совершенство. Это LaTeX — пакет для подготовки научных документов. Но ведь он, наверное, очень сложен — скажет кто-то. Отнюдь. Основную часть его пользователей составляют студенты и ученые. Последним хватает своих сложностей, чтобы добавлять себе проблем с набором формул. А уж насколько не любят сложностей студенты, я думаю, и говорить не стоит.
Кроме того, формулы нужно не только набрать — их нужно еще и пронумеровать, и желательно, чтобы это делалось автоматически. На формулу нужно уметь ссылаться, да так что не приходилось запоминать ее номер (что непросто, когда их десятки). Все это LaTeX умеет. А сделать это можно… Впрочем, это уже совсем другая история.
Комментарии
comments powered by Disqus