LXF121:OOMatch

Материал из Linuxformat.

(Различия между версиями)
Перейти к: навигация, поиск
(викификация, оформление, иллюстрация, формула)
(С чего начать?)
Строка 35: Строка 35:
# вручную.
# вручную.
-
{{Врезка|Содержание=[[Изображение:LXF121_59_1.jpg|300px]] Контекстное меню поля ввода команд.
+
{{Врезка|Содержание=[[Изображение:LXF121_59_1.jpg|200px]] Контекстное меню поля ввода команд.
-
[[Изображение:LXF121_59_2.jpg|300px]] Панель Выбор: отсюда можно вводить шаблоны команд.|Ширина=300px}}
+
[[Изображение:LXF121_59_2.jpg|200px]] Панель Выбор: отсюда можно вводить шаблоны команд.|Ширина=200px}}
Рассмотрим использование всех трех способов на простых примерах. Допустим, надо ввести выражение «a плюс b». Последовательность действий:
Рассмотрим использование всех трех способов на простых примерах. Допустим, надо ввести выражение «a плюс b». Последовательность действий:

Версия 12:14, 29 июня 2010

'OpenOffice.org' Используем открытый офисный пакет для верстки математических текстов

Содержание

OOo: Вам Math, коллега!

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

На этом уроке мы займемся, пожалуй, самым малоосвещенным в широкой прессе компонентом OpenOffice.org – программой для набора математических формул OpenOffice.org Math. Она не является насущной необходимостью для всех и каждого; ее пользователи – люди, имеющие дело с документами, где применяются математические формулы и выражения: студенты, профессора, технические специалисты, инженеры.

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

Мама, что это?

Главное окно OpenOffice.org Math ничего особенного собой не представляет

Именно такой реакции следует ожидать от человека, знакомого с Microsoft Office и впервые решившего вставить формулу Math в текстовый документ Writer. И действительно: вместо привычного ввода символов непосредственно в конкретное место документа создается какая-то рамочка, а внизу появляется еще какое-то поле ввода. Пользователь инстинктивно нажимает на кнопки с шаблонами формул, но вместо привычного появления символов видит какие-то квадратики, да еще и в нижнем поле ввода печатаются какие-то непонятные буковки. И что с этим делать?

А ларчик открывается просто: Math использует командный ввод формул, то есть пользователь набирает их с клавиатуры, как в языке программирования. Привычное щелканье мышью по панели Выбор всего лишь вставляет шаблон желаемой формулы в поле ввода. Так что пользователю MSO, привыкшему к Equation и MathType, придется учиться заново, так же как и новичку. Пользователям LaTeX будет проще.

Когда необходимость обучения «с нуля» становится ясна (а это происходит почти сразу после попытки набрать первую формулу), в голову приходят мысли: «А зачем это надо?» и «Почему не сделали как в Word?» Пользователя можно понять: на обучение надо тратить силы и время. Однако в данном случае эти затраты могут с лихвой окупиться в будущем. За счет чего? По сравнению с «обычным» методом, используемым в Equation, командный имеет одно важное преимущество: по окончании обучения можно будет вводить формулы, практически не используя мышь, с помощью одной клавиатуры! Представьте себе, что вам больше не понадобится постоянно отвлекаться на панель символов, дабы ввести греческую букву или особенный знак. Так что, может быть, стоит потратить немного времени сейчас, чтобы экономить его потом?

Уговорил? Ну тогда поехали!

С чего начать?

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

В процессе освоения редактора формул можно запускать Math как отдельное приложение, однако набирать в нем текстовые документы не рекомендуется. В большинстве случаев Math используется для создания и редактирования математических выражений во внешний программах (преимущественно OOo Writer, с которым имеется тесная связь). Впрочем, используя Math автономно, вы сможете сохранять набираемые формулы, создавая тем самым их личную библиотеку.

Существуют два подхода ко вводу формул: с помощью шаблонов команд (кода) и вручную. Как правило, первый используется при ознакомлении с Math, а также при поиске команд, вид которых неизвестен. После обучения пользователь чаще всего переходит на ручной ввод команд, поскольку это позволяет работать, не отвлекаясь на панели инструментов и меню. Шаблоны команд можно получить, щелкнув на нужную кнопку в панели инструментов Выбор или из контекстного меню поля ввода команд. Чтобы отобразить или скрыть панель Выбор, найдите в главном меню Math пункт Вид > Выбор; чтобы отобразить контекстное меню поля ввода команд, щелкните по полю правой кнопкой мыши.

Таким образом, оба подхода образуют три способа ввода формул:

  1. с помощью панели инструментов Выбор (или, что то же самое, окна Выбор);
  2. с помощью контекстного меню поля ввода команд;
  3. вручную.

Контекстное меню поля ввода команд. Панель Выбор: отсюда можно вводить шаблоны команд.

Рассмотрим использование всех трех способов на простых примерах. Допустим, надо ввести выражение «a плюс b». Последовательность действий:

  1. В верхней половине окна Выбор щелкаем на кнопке Унарные/бинарные операторы, а в нижней половине – на кнопке Сложение +. В поле ввода команд появляется текст <?> + <?>. Заменяем первый набор символов <?> на a, а второй – на b.
  2. Из контекстного меню поля ввода команд выбираем Унарные/бинарные операторы – a + b. Как и в предыдущем случае, в поле ввода команд появляется текст <?> + <?>. Аналогично заменяем первый <?> на a, а второй – на b.
  3. Печатаем a+b в поле ввода команд.

Заметим, что пробелы, окаймляющие с двух сторон знак +, необязательны.

Вы скажете, что про знак «плюс» можно было бы и догадаться. А как поступить в случае, когда ответ не столь интуитивен – например, «а умножить на b»? Ведь ни точки по центру строки, ни крестика на клавиатуре нет, звездочкой принято обозначать свертку, а буква x – неадекватная замена крестику. В таком случае, мы ищем подходящий внешний вид формулы в панели Выбор. После нажатия на соответствующие кнопки, в поле ввода команд появятся шаблоны <?> cdot <?> для точки и <?> times <?> для крестика. Как и в ранее описанном случае, <?> надо заменить на нужные символы.

После ряда подобных действий вы станете все реже обращаться к окну Выбор – ведь это увеличивает время ввода формулы – и будете чаще набирать формулы «от руки» в поле ввода команд.

Вербальная логика

Когда человек сталкивается с чем-то новым, он часто ищет аналогии; случай с Math – не исключение. Так на что похож редактор формул Math? Пользователь Linux скажет – на командную строку, программист – на язык программирования, лингвист – на измененный английский язык с другим применением, наборщик – на комбинацию цифр и букв. И все они правы. Но важно то, что у метода набора формул в Math есть логика.

Когда я изучал программирование, то встречал фразы вроде «сравните … с английским языком». Давайте посмотрим, насколько Math может быть сравним с тем же английским? А поскольку английский язык является для нас иностранным, то будем проводить аналогии и с русским языком.

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

Команды Math можно вводить похожим образом, как бы переводя их с русского языка на язык разметки Math. Если рассмотреть указанный выше пример, то перевод можно осуществить по такой логике:

эф – f

открывающая круглая скобка – (

икс – x

закрывающая круглая скобка – )

равно – =

степень – ^

плюс – +

Соединив эти команды воедино, получим: f(x)=x^2+2 x+3: f(x) = x2 + 2x + 3

Пробел перед x нужен в силу особенностей языка разметки, но во многих случаях вы вольны расставлять пробелы по собственному желанию. Можно записать, например, так: f(x) = x^2 + 2 x + 3, f(x) = x^2+2 x+3 и так далее.

Поговорим теперь о перестановке слов в языке или о перестановке слов в мыслях. Когда вы записываете дробь, вы можете думать: «Числитель, горизонтальная черта, знаменатель» или «Горизонтальная черта, вверху – числитель, внизу – знаменатель». В Math можно реализовать оба подхода. Рассмотрим простой пример:

\frac{1}{2}

Первая логика: «Один, горизонтальная черта, два». Или «Единица над двойкой».

«Перевод» первой логики: один – 1, горизонтальная черта – over, два – 2. Вместе: 1 over 2. Вводятся все символы этой строки команды подряд.

Вторая логика: «Горизонтальная черта, сверху – 1, снизу – 2».

«Перевод»: 1 over 2. Да, в этом случае итоговая строка команды одна и та же. Но прелесть в том, что можно сначала написать over, затем написать слева от over единичку, а справа – двойку, или наоборот. Нет жестких правил порядка ввода команд, важен лишь их итоговый порядок!

Чем это удобно? Если я ввожу длинное выражение в скобках, то мне удобно сначала поставить обе скобки, а затем – вставить нужное выражение между ними. Но я могу сделать и по-другому: ввести все подряд, а не расставлять скобки в самом начале. Кому как удобнее. Появляется большая свобода ввода.

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

Использование скобок

С некоторыми простыми выражениями мы познакомились, теперь усложним задачу. Снова обратимся к лингвистической стороне вопроса. Рассмотрим более сложный пример – «дробь: в числителе 1, в знаменателе 2+3». В этом случае ход мыслей такой: «единица над двойкой плюс три». Но если записать 1 over 2+3, то получится так:

\frac{1}{2}+3

А это совсем не то, что нам нужно! Для таких случаев используют операторные (групповые) скобки. В Math это фигурные скобки { и }. Тогда ход мыслей может быть, например, такой: «единица над двойкой-плюс-тройкой». Своего рода логическое разделение одной части фразы от другой. Правильная запись: 1 over {2+3}.

Операторные скобки можно использовать не только по их прямому назначению, но и «для себя»: дабы не запутаться в сложном выражении, можно «обернуть» в них его части. При этом главное – не нарушить вид вашей формулы, и количество открывающих операторных скобок должно быть равно количеству закрывающих. Впрочем, это касается всех скобок: круглых – (), квадратных – [], треугольных (угловых) – <> и так далее.

Кстати о вводе скобок. Если круглые и квадратные скобки вводятся с клавиатуры нажатием соответствующих клавиш, то треугольные, фигурные и другие виды реализуются с помощью специальных команд. Например () [] langle rangle lbrace rbrace даст:

\left(\right)\left[\right]\lbrace\rbrace\langle\rangle

Важный момент: скобки обязательно должны быть парными. Если вам нужна одиночная скобка – вставьте ее как текст, заключив в двойные кавычки. Так, ввод ( приведет к ошибке, а “(“ отобразит открывающую фигурную скобку в формате, указанном для текста (настроить форматирование формул можно, выбрав нужные пункты из меню Формат).

Помимо простых скобок, в Math есть еще и масштабируемые. Обычные скобки превращаются в масштабируемые путем приписывания ключевых слов left и right к соответствующим командам. Например немасштабируемые скобки ldbracket a over b rdbracke:

[\frac{a}{b}]

масштабируемые скобки left ldbracket a over b right rdbracket

\left[\frac{a}{b}\right]

А как поступить, если надо поставить одиночную масштабируемую скобку? Ведь необходимо же соблюсти парность! Разработчики предусмотрели эту возможность, введя «невидимую» скобку, описываемую ключевым словом none. Например масштабируемые скобки left lbrace over b right none :

\left\{ \frac{a}{b}\right.

Этот «фокус» можно использовать при записи систем уравнений. Подробности можно прочитать в моей статье «Сложная разметка и хитрости в OpenOffice.org Math» (http://i-rs.ru/Stat-i/Konkurs-2007/konkursnye-raboty-53/Slozhnaya-razmetka-i-hitrosti-v-OpenOffice.org-Math) или в книге «OpenOffice.org pro для профессионала», выпущенной издательством «ДМК Пресс» в 2008 году. Там же описаны и другие интересные приемы, обеспечивающие эффективность работы в OpenOffice.org Math и демонстрирующие гибкость приложения.

Околосимвольные элементы

Math обладает широким спектром околосимвольных элементов. К таковым можно отнести индексы, стрелки и точки над символами и так далее. Запомнить команды легко. Например, lsub, csub и rsub можно расшифровать как «left subindex», «central subindex» и «right subindex» соответственно. Кстати, и со скобками можно провести аналогию.

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

X lsup a csup b rsup c lsub d csub e rsub f:

\overset{b}{\underset{e}{{}^{a}_{f}X_{d}^{c}}}

Tо же самое, но запись немного короче X lsup a csup b^c lsub d csub e_f

Почувствуйте разницу vec a vec abc widevec abc: \overrightarrow{a}\, a\overrightarrow{b}c\,\overrightarrow{abc}

Векторная производная dot vec a: \overset{\centerdot}{\overrightarrow{a}}

Более сложные операторы

Рассмотрим несколько операторов, в которых могут использоваться три операнда. Вы можете увидеть соответствующие им конструкции, нажав на кнопку Операторы в верхней части окна Выбор. С помощью этих операторов можно создавать формулы, содержащие пределы, интегралы, суммы и произведения. Общий синтаксис всех этих операторов выглядит так: название_оператора from нижний_предел to верхний_предел выражение

Нижний и верхний пределы являются необязательными и могут существовать отдельно друг от друга. Проиллюстрирую это на примере.

Личные инструменты
  • Купить электронную версию
  • Подписаться на бумажную версию