Нам предстоит набирать текст с математическими формулами. Как сделать это так, чтобы получилось красиво, и было поменьше мороки? Рассмотрим имеющиеся способы.

Набор при помощи меню

Word.

Открываем меню Вставка/Объект/Microsoft Equation 3.0 и набираем формулу

first.png

опять-таки — с помощью меню.

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

LibreOffice

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

lo.png

Линейная запись

позволяет набирать формулы так, как это делается в языках программирования. Набирая команды

int from {a} to {b} x^{2} dx

мы видим, как в расположенном выше окне они преобразуются в «красивую» запись формулы.

Команда int означает интеграл, from и to задают пределы интегрирования «от» и «до», ^ служит для возведения в степень и других верхних индексов. Фигурные скобки задают блок, который должен рассматриваться как единое целое. В данном примере они не нужны, т. к. как каждый блок состоит всего из одного символа, но если символов будет несколько, то

int from a to b x^{a-1} dx

даст

lin1.png

тогда как

int from a to b x^a-1 dx

создает

lin2.png

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

Word не мог долго оставаться в стороне. Прошло всего несколько лет с момента появления линейной записи в свободных офисных пакетах, как в Word 2007 появилась аналогичная возможность.

word.png

Команда

\int_a^b<пробел>x^2<пробел>dx

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

lin3.png

Т. е. пробелы играют роль фигурных скобок. Остальные пробелы просто отображаются в записи формулы. В LibreOffice, напротив, пробелы игнорируются, так что

int from a to b x^a-1           dx

даст все тот же неизменный интеграл.

Неприятно то, что вернувшись из профессионального режима (так назван режим набора с помощью меню) в линейный, мы увидим не текст команд которые только что набирали, а то, как их «понял» Word

lin4.png

В итоге переключений мышь-клавиатура при наборе формул в 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"} {}

что также не всегда удается

lin5.png

Лучших результатов можно достичь, если установить Microsoft Equation на компьютер с LibreOffice. К сожалению, этот модуль распространяется только вместе со всем MS Office.

Следовательно, если вам нужна совместимость между Word и свободными офисными пакетами, пользуйтесь новым стилем написания формул и сохраняйте офисные документы в формате docx.

Совсем без меню

обойтись при наборе формул в офисных пакетах невозможно: всякий раз нужно кликать мышью для вызова режима набора формул и выхода из него (можно использовать клавиатурную комбинацию, но это все равно требует некоторой паузы и переключения внимания). Можно ли обойтись без этого? Конечно. Следующая запись позволяет получить выключную формулу (т. е. формулу, стоящую в отдельной строке)

\[
\int_a^b x^2 dx
\]

lin6.png

Большинство команд нам знакомо. Скобки \[, \] означают, что формула выключная. Для формул, помещаемых в строке, нужно использовать скобки \(, \).

Теперь переключений не нужно совсем, а скорость набора возрастает до максимума. Но не впадаем ли мы в другую крайность? Что делать, если мы забыли, как набрать нужную функцию. Обычно нам помогало меню, а теперь…

Вот панель символов редактора Texmaker (бесплатного и кросс платформенного). Выбирая нужный символ, вы тем самым вставляете в документ соответствующую этому символу команду

texmaker.png

Так что проблемы как вспомнить команду не существует.

Да, кажется, я забыл упомянуть, где существует подобное совершенство. Это LaTeX — пакет для подготовки научных документов. Но ведь он, наверное, очень сложен — скажет кто-то. Отнюдь. Основную часть его пользователей составляют студенты и ученые. Последним хватает своих сложностей, чтобы добавлять себе проблем с набором формул. А уж насколько не любят сложностей студенты, я думаю, и говорить не стоит.

Кроме того, формулы нужно не только набрать — их нужно еще и пронумеровать, и желательно, чтобы это делалось автоматически. На формулу нужно уметь ссылаться, да так что не приходилось запоминать ее номер (что непросто, когда их десятки). Все это LaTeX умеет. А сделать это можно… Впрочем, это уже совсем другая история.



Комментарии

comments powered by Disqus