Презентации, рисунки, формулы (Impress/Draw/Math)

Сложная разметка в OpenOffice.org Math Печать
Автор Смирнов Д.В.   
09.03.2007 г.
Я - студент. Использую OpenOffice.org уже не первый год как основной офисный пакет. Поскольку я учусь на технической специальности, для меня важно иметь под рукой необходимый инструментарий для создания технических документов. Одним из таких инструментов, привлекших меня, был как раз OpenOffice.org Math - редактор формул OpenOffice.org. Потратив пару дней на освоение и чтение кое-какой документации, я понял, что, несмотря на трудности при освоении OOo Math, потраченное время с лихвой окупится в дальнейшем при наборе формул.

Но на одном удобстве метода далеко не уедешь. Необходимо было научиться вводить не только простые, но и сложные формулы, наборы формул, выровненные особым образом, «многоэтажные» формулы и т.д. Помимо этого передо мной (и не только передо мной) вставал стандартный вопрос: «А как это сделать?»

Предлагаю Вашему вниманию ряд решений для создания сложных формул.


Поскольку речь пойдёт именно о сложной разметке, я буду предполагать, что человек, читающий статью, освоил основы работы с OpenOffice.org Math (например, прочитал 16-ю главу Руководства по Writer ), в противном случае читатель может не разобраться в статье.
Хочу также выразить благодарность участникам форума http://community.i-rs.ru

Системы уравнений и неравенств

Про запись систем упоминается в 16-й главе Руководства по Writer. Например: 

Image

Разберём этот код.

  • left lbrace - открывающаяся масштабируемая фигурная скобка.
  • right none - указывает, что закрывающей скобки не требуется.
  • alignl - устанавливает выравнивание строк по левому краю
  • # - переход на новую строку

Хочу обратить внимание, что команды left и right не могут использоваться отдельно друг от друга. Кроме того, использование # как символа перехода на новую строку вне блока stack может вызвать ошибку.
Скобки можно комбинировать. Например: left [ right rbrace. Пример использования: преобразование записи из совокупности неравенств в промежуток на числовой оси.

Image

Системы уравнений и неравенств с условиями

Иногда к уравнениям требуется дописать условие. Например, y = 0 при x > 3. Часто вместо слова при ставят запятую. Запишем пример системы уравнений с условиями 

Image

Однако подобная запись не всегда будет смотреться эстетично. Например:
Image

Требуется реализовать такую запись, чтобы условия были друг под другом и выровнены по их левому краю. В таком случае лучше использовать команду matrix 

Image

Разберём этот код.

  • left lbrace - открывающаяся масштабируемая фигурная скобка.
  • right none - указывает, что закрывающей скобки не требуется.
  • alignl - устанавливает выравнивание строк по левому краю
  • # - следующий элемент строки (т.е. переход на следующий столбец в текущей строке)
  • ## - переход на новую строку

При такой записи также можно опустить запятые после уравнений.
В качестве примера запишем кусочно-непрерывную функцию.

Image

Выравнивание в дробях

Если вы будете записывать системы уравнений, содержащие дроби, вы наверняка столкнётесь с проблемой выравнивания числителя и знаменателя дроби. Дело в том, что, указав alignl перед системой уравнений или перед конкретной строкой, все элементы этой строки будут выровнены по левому краю. В том числе числитель и знаменатель дроби. Аналогичное явление будет наблюдаться в многострочных формулах (например, при использовании newline и/или stack). Простой пример:

Image


Логичный выход из ситуации - установка выравнивания по центру для числителя и знаменателя дроби. 

Image

Если присмотреться к тому, как Math определяет границы выравнивания, то очевидно, что он определяет их по наиболее длинному элементу. Например, выравнивание по левому краю короткого числителя приводит к тому, что числитель выравнивается по левому краю относительно левого края знаменателя. Аналогичная картина будет наблюдаться при выравнивании короткого числителя по центру: он выровняется по центру относительно знаменателя. В большинстве случаев мы заранее можем определить длины числителя и знаменателя. Тогда достаточно указать выравнивание либо числителя, либо знаменателя. Это приводит к сокращению записи. 

Image

Приведу пример многострочной формулы. 

Image

Аналогично осуществляется выравнивание числителя и знаменателя по центру в системах уравнений и неравенств.

Расширенные матрицы

Немного расскажу о записи расширенных матриц, не вдаваясь в математическую сторону вопроса. По сути, требуется провести вертикальную линию между столбцами матрицы. Для этого существует команда mline. Например: 

Image 

Однако у mline есть серьёзный недостаток, который мне пока не удалось компенсировать даже другими методами проведения вертикальной линии. Речь о некорректном выравнивании элементов матрицы друг относительно друга. Простой пример: 

Image

На самом деле 6 цифра должна быть на уровне 3 и 4. Разработчики оповещены о проблеме.  

Обсудить на форуме...

  •  Источник: конкурс на лучшую статью о пакете OpenOffice.org. Номинация "Офисные технологии"
Последнее обновление ( 09.09.2012 г. )
 
« Пред.   След. »

Главная arrow Формулы arrow Сложная разметка в OpenOffice.org Math

MyOOo.ru, 2008 — 2024. Хостинг предоставлен компанией Netangels