Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
25
Добавлен:
11.05.2015
Размер:
114.33 Кб
Скачать

Дата создания: 09.03.2007

Номинация: Офисные Технологии

Название: Сложная разметка и хитрости в OpenOffice.org Math

Автор: Смирнов Дмитрий Вячеславович (DMA)

e-mail: dma2002@hotbox.ru

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

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

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

Хочу также выразить благодарность участникам форума http://community.i-rs.ru

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

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

Формула

Код

left lbrace alignl {stack{

уравнение1#

уравнение2#

уравнение3}

} right none

Примечание: далее по тексту заголовок таблицы буду опускать

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

left lbrace– открывающаяся масштабируемая фигурная скобка.

right none– указывает, что закрывающей скобки не требуется.

alignl– устанавливает выравнивание строк по левому краю

#- переход на новую строку

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

Скобки можно комбинировать. Например: left [ right rbrace. Пример использования: преобразование записи из совокупности неравенств в промежуток на числовой оси.

left [ alignl stack{x<0#x>5} right rbrace drarrow x in (-infinity;0) union (5;+infinity)

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

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

left lbrace alignl

stack{уравнение1, условие1#

уравнение2, условие2}

right none

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

left lbrace alignl

stack{уравнение1, условие1#

длинное уравнение2, условие2}

right none

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

left lbrace alignl

matrix{уравнение1,#условие1##

длинное уравнение2,#условие2}

right none

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

left lbrace– открывающаяся масштабируемая фигурная скобка.

right none– указывает, что закрывающей скобки не требуется.

alignl– устанавливает выравнивание строк по левому краю

#- следующий элемент строки (т.е. переход на следующий столбец в текущей строке)

##- переход на новую строку

При такой записи также можно опустить запятые после уравнений.

В качестве примера запишем кусочно-непрерывную функцию.

y=left lbrace alignl matrix {

-x#x<-1##

1#-1 leslant x leslant 1##

x#x>1

} right none

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

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

alignl 1 over {100}

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

alignl {alignc 1} over {alignc 100}

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

alignl {alignc 1} over 100

alignl 237 over {alignc 8}

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

alignl dot %varphi_2(2+j)=

200+100 j newline

alignl dot %varphi_2=

{200+100 j}over{alignc2+j}=

{100(2+j)} over {alignc2+j}=100

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

Соседние файлы в папке math