.. meta:: :description: LibreOffice Math Formula Editor :keywords: LibreOffice, Math, Formula, Editor, либреоффис Глава 9 – Редактор формул LibreOffice Math ========================================== Что такое Math? --------------- Math — модуль LibreOffice для написания математических и химических формул. Math обычно используется как редактор формул для текстовых документов, но также может быть использован в других типах документов (презентациях, таблицах, рисунках) или автономно. При использовании внутри Writer, формула обрабатывается как объект в текстовом документе. .. ================================================================== При использовании внутри Writer, уравнение обрабатывается как объект в текстовом документе. Надо уточнить писалось ли что-то про объекты в предыдущих главах. ================================================================== .. note:: Math используется для записи формул в символическом виде, как в формуле :eq:`primer1`, и не предназначен для расчетов. Для расчета числовых значений используйте модуль Calc (см. руководство по Calc). .. math:: \frac{df(x)}{dx} = \ln(x) + \tan^{-1}(x^2) :label: primer1 или .. math:: NH_3 + H_2 O ⇌ NH^+_4 + OH^- ____ Начало работы ------------- Math может быть запущен автономно или вызван из других модулей LibreOffice (Writer, Impress, Calc, Draw). Создание формулы в виде отдельного документа ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Чтобы создать формулу в виде отдельного документа, откройте модуль LibreOffice Math одним из следующих способов: * В :guilabel:`Стартовом центре` выберите :guilabel:`Формула Math`; * Если LibreOffice уже открыт, в строке меню выберите :menuselection:`&Файл --> &Создать --> &Формулу`. * На стандартной панели инструментов нажмите на треугольник справа от кнопки :guilabel:`Создать` и выберите :guilabel:`Формулу`. Откроется пустой документ Math (рисунок :ref:`math-short-001`). .. _math-short-001: .. figure:: _static/chapter9/math-short-001.png :scale: 50% :align: center :alt: Новый документ Math Новый документ Math В верхней части находится окно предварительного просмотра, в котором отображается вводимая формула. В нижней части находится редактор формул, в который вводится код разметки формулы. Слева находится прикрепляемая панель элементов. Вставка формулы в документ Writer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Чтобы вставить формулу в документ Writer, откройте документ и выберите пункт :menuselection:`Вставка --> Объект --> Формула`. Редактор формул откроется в нижней части окна Writer. А в документе появится небольшой прямоугольник с серыми границами, в котором будет отображаться формула. В зависимости от настроек, может также появиться панель элементов. .. _math-short-002: .. figure:: _static/chapter9/math-short-002.png :scale: 50% :align: center :alt: Вставка формулы в документ Writer Вставка формулы в документ Writer После завершения ввода формулы, можно закрыть редактор клавишей ``Esc`` или щелкнув область за пределами формулы в основном документе. Двойной щелчок левой кнопкой мыши по формуле снова откроет редактор, позволяя изменить формулу. Формулы вставляются в качестве объектов :abbr:`OLE (Object Linking and Embedding)`. В текстовых документах Writer, формула вставляется с привязкой *как символ* по умолчанию, чтобы не разрывать текст. Как и у любого другого OLE-объекта, *привязка* формулы может быть изменена, чтобы сделать её плавающей. В Calc, Impress и Draw документах формулы внедряются как плавающие OLE-объекты. Чтобы упростить процесс вставки формул, можно добавить кнопку :guilabel:`Формула` на стандартную панель инструментов или создать сочетание клавиш. *Смотрите Главу 14: Настройка LibreOffice.* ____ Ввод формулы ------------ Для написания формулы в Math используется специальный язык разметки, состоящий из команд, которые вводятся в редактор формул. Например, команда ``%beta`` вводит символ бета (β) греческого алфавита. Мнемонически, язык разметки формул напоминает чтение формулы по-английски. Например, команда ``a over b`` преобразуется в :math:`\frac{a}{b}`. .. index:: over Вводить формулу можно тремя способами: * Выбрать символ на Боковой панели или панели Элементы; * Щелкнуть правой кнопкой мыши в редакторе формул и выбрать символ из контекстного меню; * Ввести разметку в редакторе формул. Контекстное меню, Боковая панель или панель Элементы содержат все команды и символы разметки. Это обеспечивает удобный способ изучить разметку LibreOffice Math. .. note:: * Нажмите на любую область в теле документа за пределами формулы, чтобы выйти из редактора формул. * Дважды щелкните по формуле, чтобы снова войти в редактор формул. Боковая(прикрепляемая) панель элементов ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Быстрым и простым способом ввода формул является использование боковой панели элементов. По умолчанию, панель отображается в левой части редактора формул при первом открытии Math. Боковая панель элементов может быть скрыта через :menuselection:`&Вид --> При&крепляемая панель элементов` или нажав один раз на «Ручку». Также, потянув за ручку, можно изменить размер боковой панели. .. note:: Боковая панель элементов доступна в LibreOffice 4 и выше. В более ранних версиях используйте :ref:`elements-window`. Боковая(прикрепляемая) панель элементов разделена на две части: * Выпадающий список в верхней части панели показывает категории символов; * Под списком категорий отображаются символы. Эти символы меняются в зависимости от выбранной категории. .. _math-short-003: .. figure:: _static/chapter9/chapter9math-short-003.png :scale: 60% :align: center :alt: Выбор категорий символов на боковой панели Выбор категорий символов на боковой панели Пример 1 ^^^^^^^^ Для примера введем с помощью боковой панели элементов простую формулу: :math:`5×4`. 1. Убедитесь, что в выпадающем списке выбрана категория :guilabel:`Унарные/бинарные операторы` (см. рисунок :ref:`math-short-003`); 2. Выберите символ :guilabel:`Умножение (крестик)` (см. рисунок :ref:`math-short-004`); .. _math-short-004: .. figure:: _static/chapter9/math-short-004.png :scale: 60% :align: center :alt: Выбор символа Выбор символа После выбора символа умножения крестиком произойдет две вещи: * В редакторе формул появится разметка: `` times ``; * В теле документа появится серый блок со следующим содержанием ``❑×❑``. .. index:: times .. _math-short-005: .. figure:: _static/chapter9/math-short-005.png :scale: 50% :align: center :alt: Результат выбора символа Результат выбора символа Символы ````, показанные на рисунке выше, нужно заменить собственными значениями, например, ``5×4``. .. _math-short-006: .. figure:: _static/chapter9/math-short-006.png :scale: 50% :align: center :alt: Результат ввода значений Результат ввода значений .. tip:: Для перемещения между символами ```` можно использовать клавиши ``F4`` и ``Shift+F4`` (перемещает в обратном направлении). .. tip:: Для автоматического обновления отображения формулы выберите :menuselection:`Вид --> Автообновление экрана`. Чтобы обновить формулу вручную, нажмите ``F9``, или выберите :menuselection:`Вид --> Обновить`. .. _elements-window: Панель Элементы ~~~~~~~~~~~~~~~ Аналогично боковой панели для быстрого набора формул можно использовать панель :guilabel:`Элементы`. Для её отображения перейдите в :menuselection:`Вид --> Элементы`. Панель :guilabel:`Элементы` также разделена на две области: * В верхней области показаны категории символов. Нажмите на категорию, чтобы изменить список символов в нижней части; * В нижней части отображается список символов, доступный в выбранной категории (см. рисунок :ref:`math-short-007`). .. _math-short-007: .. figure:: _static/chapter9/math-short-007.png :scale: 60% :align: center :alt: Панель Элементы Панель Элементы Контекстное меню ~~~~~~~~~~~~~~~~ Другим способом быстрого ввода формул является использование контекстного меню, которое вызывается нажатием правой кнопки мыши в редакторе формул. Элементы контекстного меню соответствуют элементам окна :guilabel:`Элементы`, с некоторыми дополнительными командами. .. _math-short-008: .. figure:: _static/chapter9/math-short-008.png :scale: 50% :align: center :alt: Контекстное меню Контекстное меню Разметка ~~~~~~~~ Вы можете вводить команды языка разметки непосредственно в редакторе формул. Например, вы можете непосредственно ввести ``5 times 4``, чтобы получить ``5 × 4``. Если вы знаете язык разметки, это может быть самым быстрым способом ввода формул. .. note:: Язык разметки формул напоминает чтение формулы по-английски. Ниже приведен краткий список общих выражений и соответствующая им разметки. .. index:: cdot, sqrt, _, ^, infinity, times, int .. list-table:: Основные выражения :widths: 15 15 15 15 :header-rows: 1 * - Результат - Разметка - Результат - Разметка * - :math:`a=b` - a = b - :math:`\sqrt{a}` - sqrt {a} * - :math:`a^2` - a^2 - :math:`a_n` - a_n * - :math:`\int f(x) dx` - int f(x) dx - :math:`\sum a_n` - sum a_n * - :math:`a\le b` - a <= b - :math:`\infty` - infinity * - :math:`a \times b` - a times b - :math:`a \cdot b` - x cdot y Символы греческого алфавита ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Символы греческого алфавита (α, β, γ, θ, и т.д.) широко используются в математических формулах. Эти символы не доступны в окне :guilabel:`Элементы`, на боковой панели или в контекстном меню. Для их набора используется простая разметка. Символы греческого алфавита набираются так же, как и пишутся по-английски и предваряются знаком процента ``%``, например: ``%alpha`` позволяет набрать символ ``α``. .. index:: %alpha * Чтобы записать символ в нижнем регистре, введите имя символа в нижнем регистре; * Для ввода прописной буквы, введите имя символа в верхнем регистре; * Для записи курсивом, просто добавьте ``i`` между знаком ``%`` и названием буквы. Полная таблица символов греческого алфавита приведена в приложении Руководства по Math. В таблице ниже приведены несколько примеров. .. list-table:: Некоторые символы греческого алфавита :widths: 11 11 11 15 :header-rows: 1 * - Нижний регистр - Верхний регистр - Курсив нижний регистр - Курсив верхний регистр * - %alpha → α - %ALPHA → :math:`\mathrm{A}` - %ialpha → :math:`\alpha` - %iALPHA → :math:`A` * - %beta → β - %BETA → :math:`\mathrm{B}` - %ibeta → :math:`\beta` - %iBETA → :math:`B` * - %gamma → γ - %GAMMA → :math:`\Gamma` - %igamma → :math:`\gamma` - %iGAMMA → :math:`\mathit{\Gamma}` * - %psi → ψ - %PSI → :math:`\Psi` - %ipsi → :math:`\psi` - %iPSI → :math:`\mathit{\Psi}` * - %phi → φ - %PHI → :math:`\Phi` - %iphi → :math:`\phi` - %iPHI → :math:`\mathit{\Phi}` * - %theta → θ - %THETA → :math:`\Theta` - %itheta → :math:`\theta` - %iTHETA → :math:`\mathit{\Theta}` .. index:: %alpha, %beta, %theta, %THETA Другой способ вставить греческие символы, использовать окно :guilabel:`Каталог`. Выберите :menuselection:`Сервис --> Каталог` (рисунок :ref:`math-short-009`). В выпадающем списке выберите :guilabel:`Набор` и нажмите на нужный символ в списке. .. _math-short-009: .. figure:: _static/chapter9/math-short-009.png :scale: 60% :align: center :alt: Каталог символов Каталог символов Пример 2: ^^^^^^^^^ Введем выражение ``π ≃ 3.14159``. Для этого выполним следующие шаги: **Шаг 1:** Выберите в :guilabel:`Каталоге` символ ``π`` или введите в редакторе формул разметку ``%pi``. **Шаг 2:** Откройте окно :guilabel:`Элементы` (:menuselection:`Вид --> Элементы`). Или воспользуйтесь боковой панелью. **Шаг 3:** Перейдите в категорию :guilabel:`Отношения` и выберите символ ``≃`` (Подобно или равно). Если навести курсор мыши на элемент, то появится всплывающая подсказка (как на рисунке :ref:`math-short-010`). .. _math-short-010: .. figure:: _static/chapter9/math-short-010.png :scale: 60% :align: center :alt: Окно Элементы Окно :guilabel:`Элементы` **Шаг 4:** Теперь в редакторе формул отображается разметка ``%pi simeq `` .. index:: %pi, simeq **Шаг 5:** Удалите первый символ ````, а затем нажмите клавишу :guilabel:`F4`, чтобы перейти к следующему символу ````. **Шаг 6:** Замените символ ```` на ``3.14159``. В итоге, мы получим разметку ``%pi simeq 3.14159``. Результат показан на рисунке ниже. .. _math-short-011: .. figure:: _static/chapter9/math-short-011.png :scale: 60% :align: center :alt: Результат Результат Изменение формулы ~~~~~~~~~~~~~~~~~ Изменить формулу можно в любой момент. Для переключения в режим редактирования, дважды щелкните на формуле левой кнопкой мыши. Чтобы перейти к соответствующему месту в коде разметки, выполните одно из следующих действий: * В редакторе формул установите курсор в нужное место; * В области предварительного просмотра нажмите на элемент, который нужно и изменить. Курсор автоматически переместится к соответствующей точке в редакторе формул; .. _math-short-012: .. figure:: _static/chapter9/math-short-012.png :scale: 50% :align: center :alt: Изменение формулы Изменение формулы Чтобы второй способ работал, на панели инструментов должна быть активирована кнопка :guilabel:`Курсор формулы` (смотрите рисунок :ref:`math-short-012`) Вы можете изменить формулу путем перезаписи выделенного текста или вставкой нового кода разметки в то место, где находится курсор. ____ Разметка формул --------------- Больше всего трудностей при использовании LibreOffice Math вызывает написание сложных формул. Этот раздел содержит несколько советов. Скобки ~~~~~~ Math ничего не знает о порядке операций. Необходимо использовать фигурные скобки для группировки, чтобы явно задать порядок следования выражений. Рассмотрим следующие примеры: .. list-table:: :widths: 11 11 11 15 :header-rows: 1 * - Разметка - Результат - Разметка - Результат * - 2 over x + 1 - :math:`\frac{2}{x}+1` - 2 over {x + 1} - :math:`\frac{2}{x+1}` * - – 1 over 2 - :math:`\frac{-1}{2}` - – {1 over 2} - :math:`{-}\frac{1}{2}` В первом примере Math считает, что к знаменателю дроби принадлежит только символ ``х`` и отображает формулу соответствующим образом. Если необходимо, чтобы в знаменателе находилось выражение ``x+1``, нужно сгруппировать его используя фигурные скобки ``{x+1}``. Во втором случае Math распознает знак минус как часть числителя. Чтобы знак минуса стоял перед всей дробью, необходимо сгруппировать дробь с помощью фигурных скобок, а знак минус поместит за их пределы. Фигурные скобки являются служебными символами и не отображаются в формуле. Для набора фигурных скобок в формуле, необходимо использовать команды ``lbrace`` и ``rbrace``. Сравните следующие примеры: .. index:: lbrace, rbrace .. list-table:: :widths: 11 11 11 15 :header-rows: 1 * - Разметка - Результат - Разметка - Результат * - x over {–x + 1} - :math:`\frac{2}{-x+1}` - x over lbrace –x + 1 rbrace - :math:`\frac{2}{\{x+1\}}` Масштабируемые скобки ~~~~~~~~~~~~~~~~~~~~~ Для начала, рассмотрим пример с матрицами. .. list-table:: :widths: 20 20 :header-rows: 1 * - Разметка - Результат * - matrix { a # b ## c # d } - :math:`\begin{matrix} a & b \\ c & d \end{matrix}` .. tip:: Строки в матрицах разделяются двумя символами решетки ``##``, столбцы – одним ``#``. Первая проблема с матрицами, возникающая у людей, заключается в том, что скобки не масштабируются. Т.е. размер скобок не увеличивается в зависимости от содержания. .. list-table:: :widths: 20 20 :header-rows: 1 * - Разметка - Результат * - ( matrix { a # b ## c # d } ) - .. image:: _static/chapter9/math-short-013.png Math позволяет вводить масштабируемые скобки с помощью добавления команд ``left`` и ``right`` перед открывающейся и закрывающейся скобками соответственно. .. index:: left, right .. list-table:: :widths: 20 20 :header-rows: 1 * - Разметка - Результат * - left( matrix { a # b ## c # d } right) - :math:`\begin{pmatrix} a & b \\ c & d \end{pmatrix}` .. tip:: Используйте команды ``left [`` и ``right ]``, чтобы получить масштабируемые квадратные скобки. Список всех доступных скобок приведен в Руководстве по Math. .. index:: left [, right ] Масштабируемые скобки могут быть использованы с любыми элементами такими, как дроби, квадратным корнем и т.д. Одиночные и непарные скобки ~~~~~~~~~~~~~~~~~~~~~~~~~~~ При вводе формул Math ожидает, что каждая открывающаяся скобка будет иметь закрывающуюся. Если не ввести закрывающуюся скобку, то Math отобразит формулу с ошибкой. На месте отсутствующей закрывающейся скобки будет стоять перевернутый вопросительный знак, который исчезнет после того как будет введена соответствующая закрывающаяся скобка. В случае, когда нужно ввести непарную скобку, решение зависит от типа используемых скобок. Для не масштабируемых скобок достаточно использовать обратный слэш `\\` перед скобкой, чтобы указать, что следующий за ним символ не следует рассматривать как скобки. Следовательно, Math не будет ждать ввода закрывающейся скобки. .. list-table:: :widths: 20 20 :header-rows: 1 * - Разметка - Результат * - \\(-5, 7\\] - :math:`(-5, 7]` * - \\[-5, 7\\) - :math:`[-5, 7)` Для масштабируемых скобок используются команды ``left`` (ставится перед открывающейся скобкой) и ``right`` (ставится перед закрывающейся скобкой). Чтобы ввести одиночную масштабируемую скобку, необходимо вместо закрывающейся скобки использовать команду ``right none``. .. index:: none .. list-table:: :widths: 20 20 :header-rows: 1 * - Разметка - Результат * - abs x = left lbrace matrix { -x #, x <0 ## x # , x>= 0} right none - :math:`|x| = \biggl\{ {\begin{matrix} -x & , x < 0 \\ x & , x \geq 0 \end{matrix}}` .. index:: matrix Распознавание функций в Math ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ По умолчанию Math выделяет переменные курсивным начертанием. При вводе функций Math, как правило, корректно распознает их (список распознаваемых функций доступен в Руководстве по Math). Если Math не смог распознать функцию, можно принудительно сообщить ему об этом. Для этого перед функцией необходимо ввести команду ``func``. .. index:: func Некоторые функции, используемые в Math, должны обязательно содержать число или переменную. В случае их отсутствия, Math отображает перевернутый вопросительный знак ``¿`` на их месте. Удалить его можно путем корректировки формулы, введя переменную или число, или поставив пару пустых фигурных скобок ``{}`` в качестве заполнителя. .. tip:: Для перемещения между ошибками используйте клавиши ``F3`` и ``Shift + F3`` (перемещает в обратном направлении). Многострочные уравнения ~~~~~~~~~~~~~~~~~~~~~~~ Предположим, необходимо ввести выражение, занимающее больше одной строки: :math:`\begin{matrix} x = 3 \\ y = 1 \end{matrix}`. Ваша первая реакция будет просто нажать клавишу ``Enter``. Тем не менее, если вы нажмете клавишу ``Enter``, хотя разметка и переходит на новую строку, окончательная формула этого не делает. Вы должны ввести команду перевода строки ``newline`` в явном виде, как показано в таблице ниже. .. index:: newline .. list-table:: :widths: 20 20 :header-rows: 1 * - Разметка - Результат * - x =3 y =1 - :math:`x = 3 y =1` * - x = 3 newline y = 1 - :math:`\begin{matrix} x = 3 \\ y = 1 \end{matrix}` Если первая строка уравнения заканчивается знаком равно ``=``, то команда ``newline`` не срабатывает. Это происходит потому, что оператор ``=`` ожидает наличия символов с обеих сторон. Чтобы выполнить перенос, воспользуйтесь одним из следующих способов: * Поставьте пустые кавычки ``""`` между знаком равно и командой ``newline``; * Поставьте пустую пару скобок ``{}`` между знаком равно и командой ``newline``; * Поставьте символ обратной кавычки ````` или ``~`` (тильда) между знаком равно и командой ``newline``. .. index:: ~ Как поставить дополнительный пробел или табуляцию? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Math не чувствителен к пробелам, т.е. десять пробелов подряд будут отображены как один. Но иногда возникает необходимость ввода нескольких пробелов или табуляции. Команда ``phantom{<любой заполнитель>}`` создает отступ равный по длине заполнителю. .. index:: phantom Другой способ сделать несколько пробелов подряд заключается в том, чтобы поместить пробелы в кавычки ``" "``. Также в качестве пробела может использоваться символ обратной кавычки «`» (не путать с одинарной кавычкой) или символ тильды ``~``. Символ тильды дает несколько больший пробел. .. index:: ~ Как добавить пределы суммы/интеграла? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Для набора пределов используется команда ``from {} to {}``. Данную команду можно использовать совместно с суммой ``sum`` или интегралом ``int`` (полный список смотрите в приложении Руководства по Math). .. index:: sum, from to .. list-table:: :widths: 20 20 :header-rows: 1 * - Разметка - Результат * - sum from k = 1 to n a_k - :math:`\sum\limits_{k=1}^n {a_k}` * - int from 0 to x f(t) dt или int_0^x f(t) dt - :math:`\int\limits_{x}^{0} f(t) dt` или :math:`\int_{x}^{0} f(t) dt` * - int from Re f - :math:`\int\limits_{\Re} f` * - sum to infinity 2^{-n} - :math:`\sum\limits^{\infty} {2^{-1}}` Как мне ввести производную? ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Ввод производной заключается в использовании дроби (команда ``over``) и буквы ``d``. Для частных производных используется команда ``partial``. .. index:: over, partial .. list-table:: :widths: 20 20 :header-rows: 1 * - Разметка - Результат * - {df} over {dx} - :math:`\frac{df}{dx}` * - {partial f} over {partial y} - :math:`\frac{\partial{f}}{\partial{y}}` * - {partial^2 f} over {partial t^2} - :math:`\frac{\partial^2{f}}{\partial{t^2}}` .. note:: Обратите внимание, необходимо использовать фигурные скобки, чтобы ввести производную. Служебные символы ~~~~~~~~~~~~~~~~~ Служебные символы – символы используемые в командах разметки. К таким символам относятся: символ процента ``%``, фигурные скобки ``{}``, а также символы ``|, _, &, ^, ''``. Поэтому для ввода выражений ``2% = 0.02`` или ``1" = 2.56cm`` необходимо воспользоваться одним из двух способов: * Использовать двойные кавычки, чтобы ввести символ как простой текст ``2"%"= 0.02``. Этот способ не работает для символа двойных кавычек; * Добавить необходимый символ в Каталог, подробнее смотрите раздел :ref:`customizing-the-catalog`; В некоторых случаях можно использовать специальные команды, например: * Команды ``lbrace`` и ``rbrace`` позволяют ввести фигурные скобки ``{}``. .. index:: lbrace, rbrace Текст в формулах ~~~~~~~~~~~~~~~~ Чтобы включить текст в формулы, заключите его в прямые двойные кавычки: ``abs x = left lbrace matrix {x # "for " x >= 0 ## -x # "for " x < 0} right none`` .. math:: |x| = \biggl\{ {\begin{matrix} x \text{ for } x \geq 0 \\ -x \text{ for } x < 0 \end{matrix}} Все символы, кроме двойных англоязычных кавычек ``"``, являются допустимыми в тексте. Для ввода других типов кавычек воспользуйтесь Каталогом или наберите текст в текстовом редакторе и вставьте в редактор формул через буфер обмена. .. _math-short-014a: .. figure:: _static/chapter9/math-short-014a.png :scale: 50% :align: center :alt: Вставка текста в формулы Вставка текста в формулы Текст отображается шрифтом, установленном в категории :guilabel:`Текст` диалогового окна :guilabel:`Шрифты`, подробнее смотрите в разделе :ref:`changing-the-font`. По умолчанию текст выравнивается по левому краю. Чтобы изменить выравнивание, используйте команды ``alignc`` (по центру) и ``alignr`` (по правому краю). Команды, не интерпретируются в тексте. Используйте кавычки, чтобы разбить текст, если вы хотите использовать специальные команды форматирования. .. index:: alignc, alignr .. _align-equals-sign: Как выровнять строки уравнения по знаку равно? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Обычно Math выравнивает каждую строку формулы по центру. Чтобы выровнять все строки по знаку равенства можно использовать матрицу, например: .. list-table:: :widths: 20 20 :header-rows: 1 * - Разметка - Результат * - matrix { alignr x+y # {}={} # alignl 2 ## alignr x # {}={} # alignl 2-y } - :math:`\begin{array}{r l} x + y & = {\ \ } 2 \\ x & = {\ \ } 2 - y \end{array}` Пустые скобки вокруг знака «=»(равно) необходимы потому, что он является бинарным оператором, т.е. требует наличия выражений с каждой стороны. Пространство вокруг «=»(равно) может быть уменьшено путем изменения расстояния между столбцами матрицы: * Выберите :menuselection:`Формат --> Интервал`; * Нажмите :guilabel:`Категория` и выберите раздел :guilabel:`Матрицы` из выпадающего списка; * Введите расстояние между столбцами 0% . .. _math-short-015: .. figure:: _static/chapter9/math-short-015.png :scale: 60% :align: center :alt: Изменение расстояния между столбцами матрицы Изменение расстояния между столбцами матрицы Можно обойтись без использования матрицы и воспользоваться командой разметки ``phantom``, как показано ниже: .. index:: phantom .. list-table:: :widths: 20 20 :header-rows: 1 * - Разметка - Результат * - ``""3(x+4)-2(x-1)=3x+12-(2x-2) newline`` ``""phantom {3(x+4)-2(x-1)}=3x+12-2x+2 newline`` ``""phantom {3(x+4)-2(x-1)}=x+14`` - :math:`\begin{array}{r l} 3(x+4)-2(x-1) & = {\ \ } 3x+12-(2x-2) \\ & = {\ \ } 3x+12-2x+2 \\ & = {\ \ } x+14 \end{array}` ____ Изменение внешнего вида формул ------------------------------ .. _changing-the-font-size: Изменение размера (кегля) шрифта ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Все элементы формулы пропорционально масштабируются относительно основного размера. Для изменения основного размера укажите нужный размер в диалоге :menuselection:`Формат --> Кегли`. .. _math-short-016: .. figure:: _static/chapter9/math-short-016.png :scale: 60% :align: center :alt: Изменение размера (кегля) шрифта Изменение размера (кегля) шрифта .. tip:: Данные настройки будут применены только к текущей формуле. Чтобы внесенные изменения были применены как настройки по умолчанию LibreOffice Math, необходимо сначала задать размер (например, 11 пт), а затем нажать кнопку :guilabel:`По умолчанию`. Также можно изменить размер только отдельных символов формулы. Для этого используется комада разметки ``size``, например, ``b size 5{a}``. В качестве атрибутов команда ``size`` может принимать абсолютные числовые значения или относительные (относительно базового размера по умолчанию). Например, ``6``, ``-3``, ``/2``, или ``*2``. .. index:: size .. _changing-the-font: Изменение гарнитуры шрифта ~~~~~~~~~~~~~~~~~~~~~~~~~~ Диалоговое окно :menuselection:`Формат --> Шрифты` позволяет настроить гарнитуру и начертание шрифта. Для всех элементов отображается шрифт, заданный по умолчанию. .. _math-short-017: .. figure:: _static/chapter9/math-short-017.png :scale: 60% :align: center :alt: Изменение гарнитуры шрифта Изменение гарнитуры шрифта Чтобы изменить шрифт, нажмите кнопку :guilabel:`Изменить` и выберите тип элементов. Отобразится новое диалоговое окно. Выберите необходимый шрифт и установите требуемые атрибуты, а затем нажмите кнопку :guilabel:`Да`. Изменение настроек будет применено только для текущего документа. Чтобы сделать настройки по умолчанию для всех документов, нажмите кнопку :guilabel:`По умолчанию`. .. _math-short-018: .. figure:: _static/chapter9/math-short-018.png :scale: 60% :align: center :alt: Изменение гарнитуры шрифта Изменение гарнитуры шрифта Можно изменить начертание отдельных элементов формулы с помощью команд ``italic`` (курсивное начертание), ``bold`` (полужирное начертание), ``nitalic`` (убрать курсивное начертани), ``nbold`` (убрать полужирное начертание). Для примера смотрите рисунок :ref:`math-short-014a`. .. index:: nitalic, italic, bold, nbold Изменение цвета ~~~~~~~~~~~~~~~ Для задания цвета элемента в формуле используется команда ``color``, которая может принимать 8 параметров: ``white``, ``black``, ``cyan``, ``magenta``, ``red``, ``blue``, ``green``, ``yellow``. Другими словами можно задать всего 8 цветов: белый, черный, голубой, пурпурный, красный, синий, зеленый, желтый. Например, команда, ``color green A color red B color magenta C color cyan D`` дает результат: |color-font|. .. index:: color .. |color-font| image:: _static/chapter9/math-short-019.png Также можно использовать фигурные скобки для группировки отдельных элементов формулы. Например, ``color green {A B C} color cyan D`` дает следующий результат:|color-font2|. .. |color-font2| image:: _static/chapter9/math-short-020.png Задать фон формулы в Math невозможно, так как по правилам математики цвет фона формулы всегда прозрачный. Цвет фона всей формулы совпадает с цветом фона документа. В Writer можно использовать свойства объекта (щелкните по формуле правой кнопкой мыши и выберите :guilabel:`Объект`), чтобы выбрать цвет фона для всей формулы, а также границы и размер (подробнее в разделе :ref:`math-writer`). ____ .. _math-writer: Формулы в текстовых документах Writer ------------------------------------- Нумерация формул ~~~~~~~~~~~~~~~~ Одной из неочевидных функций LibreOffice является функция вставки нумерованных формул. Для этого: 1. Установите курсор на новую строку; 2. Введите ``fn`` (как сочетание букв ``f`` и ``n``, а не клавиша ``Fn``); 3. Затем нажмите клавишу ``F3``. .. index:: fn Произойдет автозамена ``fn`` на формулу: =========================== ============ :math:`F = mc^2` :math:`(1)` =========================== ============ Теперь вы можете дважды щелкнуть по формуле левой кнопкой мыши, чтобы перейти в режим редактирования формулы. Нажмите любую область в документе за пределами формулы, чтобы вернуться к стандартному режиму Writer. Также можно вставить перекрестную ссылку на уравнение (например, смотрите *Формулу 1*). Для этого выполните: 1. Выберите :menuselection:`Вставка --> Перекрестная ссылка`; 2. На вкладке :guilabel:`Перекрестные ссылки`, в поле :guilabel:`Тип` выберите :guilabel:`Текст`; 3. В поле :guilabel:`Выделенное` выберите номер формулы; 4. В поле :guilabel:`Вставить ссылку на` выберите :guilabel:`Категория и номер`; 5. Нажмите :guilabel:`Вставить`. .. _math-short-021: .. figure:: _static/chapter9/math-short-021.png :scale: 60% :align: center :alt: Вставка перекрестной ссылки на формулу Вставка перекрестной ссылки на формулу При добавлении новых формул в документ, все формулы будут автоматически пронумерованы, а перекрестные ссылки обновлены. Вставка нумерованных формул осуществляется с помощью функции :guilabel:`Автотекст`. Она состоит из таблицы 1х2, левая ячейка которой содержит формулу, а правая – значение автоматического счетчика :guilabel:`Текст`. Вы можете отредактировать данный автотекст, например, если необходимо писать номер формулы в квадратных скобках. Подробнее смотрите раздел *Использование автотекста* в Главе 3 краткого руководства по LibreOffice. Выравнивание по вертикали ~~~~~~~~~~~~~~~~~~~~~~~~~ По умолчанию формулы в текстовых документах Writer привязываются в режиме :guilabel:`Как символ` и выравниваются по базовой линии. Выравнивание формулы по вертикали в строке, как и любого OLE-объекта, может быть изменено, для этого перейдите в :menuselection:`Сервис --> Параметры --> LibreOffice Writer --> Знаки форматирования` и снимите флажок напротив :guilabel:`Формулы Math по базовой линии`. Данная настройка применяется ко всем формулам в документе и сохраняется вместе с ним. Новые документы используют настройки по умолчанию. Отступы и обтекание ~~~~~~~~~~~~~~~~~~~ Вставленные в документ объекты Math имеют отступы справа и слева от окружающего текста. Чтобы настроить отступы и интервалы одновременно для всех формул в документе, выполните следующие действия: 1. Нажмите :guilabel:`F11` или перейдите в :menuselection:`Формат --> Стили`. Откроется диалоговое окно :guilabel:`Стили и форматирование`; 2. Перейдите на вкладку :guilabel:`Стили врезок`; 3. Найдите стиль :guilabel:`Формула` и щелкните на нём правой кнопкой мыши; 4. В выпавшем меню выберите пункт :guilabel:`Изменить`. Откроется диалоговое окно :guilabel:`Стиль врезок` (смотрите рисунок :ref:`math-short-027`); 5. Перейдите на вкладку :guilabel:`Обтекание` и измените значения категории :guilabel:`Расстояние`; 6. Нажмите :guilabel:`Ок`, чтобы закрыть диалоговое окно. Это изменит настройки отступов и обтекания для всех формул в документе. .. _math-short-022: .. figure:: _static/chapter9/math-short-022.png :scale: 50% :align: center :alt: Настройка отступов и интервалов формул Настройка отступов и интервалов формул Текстовый режим ~~~~~~~~~~~~~~~ Большие формулы должны располагаться на отдельной строке. Когда формулы располагаются внутри предложения, их высота может быть выше высоты строки. Тем не менее, если необходимо поместить подобную формулу в предложение, в Math есть специальный режим отображения формул. Откройте редактор формул и перейдите в :menuselection:`Формат --> Текстовый режим`. В текстовом режиме Math будет стараться уменьшить высоту формулы в соответствии с высотой строки. Пример ^^^^^^ В качестве примера сравните отображение формулы в обычном режиме :math:`\sum\limits_{i=2}^{5} {i^2}` и отображение в текстовом режиме :math:`\sum_{i=2}^{5} {i^2}` Фон, обрамление и размер ~~~~~~~~~~~~~~~~~~~~~~~~ Формулы в текстовых документах Writer рассматриваются как объекты во врезках. Цвет фона и параметры обрамления могут быть настроены в стилях врезок (конкретно в стиле :guilabel:`Формула`) или непосредственно через диалоговое окно :guilabel:`Объект`, которое можно вызвать нажав правой кнопкой мыши на формулу и выбрав пункт :guilabel:`Объект`. Размер шрифта формулы может быть изменен только в режиме редактирования формулы, подробнее смотрите раздел :ref:`changing-the-font-size`. Создание библиотеки формул ~~~~~~~~~~~~~~~~~~~~~~~~~~ Любую формулу можно сохранить в отдельном файле. Если вы находитесь в модуле Math, выберите меню :menuselection:`Файл --> Сохранить`. Если вы находитесь в текстовом документе Writer, нажмите правой кнопкой мыши на формулу и выберите пункт :guilabel:`Сохранить копию как`. Позже, сохраненная таким образом формула, может быть вставлена в любой документ в качестве OLE-объекта. Для этого: 1. Перейдите в меню :menuselection:`Вставка --> Объект --> Объект OLE`; 2. В открывшемся диалоге выберите :guilabel:`Формула LibreOffice`; 3. Затем выберите :guilabel:`Создать из файла`; 4. В диалоге выбора файлов выберите файл с формулой и нажмите :guilabel:`Вставить`. .. tip:: При необходимости можно установить галочку напротив :guilabel:`Связать с файлом`, тогда все изменения в файле с формулой будут автоматичсеки отображаться в текущем документе. .. _math-short-023: .. figure:: _static/chapter9/math-short-023.png :scale: 60% :align: center :alt: Вставка формулы как объекта OLE Вставка формулы как объекта OLE .. note:: Сохраненную в отдельном файле формулу невозможно вставить в текстовый документ с помощью перетаскивания мышью или меню :menuselection:`Вставка --> Файл`. Формулы не могут быть сохранены в Галерее, так как они находятся не в графическом формате. Однако, можно сохранить формулу как Автотекст. Для этого наберите формулу в текстовом документе Writer и перейдите в меню :menuselection:`Правка --> Автотекст`. Подробнее смотрите главу 3 в Руководстве по Writer. Быстрая вставка формул ~~~~~~~~~~~~~~~~~~~~~~ Если вы выучили разметку формул, то для быстрой вставки формулы в текстовые документы достаточно просто набрать разметку на новой строке, выделить её и перейти в меню :menuselection:`Вставка --> Объект --> Формула`. Разметка будет автоматически преобразована в формулу, без вызова редактора формул. ____ Дополнительная настройка ------------------------ .. _customizing-the-catalog: Настройка Каталога ~~~~~~~~~~~~~~~~~~~ Если необходимо вставить в формулу дополнительные символы, для которых отсутствуют команды разметки Math, нужно воспользоваться :guilabel:`Каталогом`. Math может использовать любые символы из доступных в установленных в системе шрифтах. Так что, если у вас есть шрифт со смайликами или готический шрифт, то можно вставлять их прямо в ваши формулы. Каталог содержит несколько стандартных наборов символов. Любой из этих набором можно изменить (добавив, удалив, изменив отдельные символы) или можно создавать свои наборы. Каждый символ в Каталоге начинается с символа ``%``. Для символов греческого алфавита заданы стандартные команды, которые имеют вид ``%ALPHA``. Для нестандартных символов обычно используется их позиция в юникоде — ``%Ux0054``. Предварительно нестандартные символы нужно добавить в Каталог. Также при добавлении им можно присвоить своё оригинальное название. Рассмотрим работу с каталогом на примере. Создадим собственный набор символов и добавим в него символ из другого шрифта, для этого: 1. Перейдите в :menuselection:`Сервис --> Каталог`; 2. Нажмите кнопку :guilabel:`Изменить`, чтобы открыть диалог :guilabel:`Правка символов`. .. _math-short-024: .. figure:: _static/chapter9/math-short-024.png :scale: 50% :align: center :alt: Правка символов Правка символов 3. Для создания нового набора в поле :guilabel:`Набор символов` введите произвольное название. 4. В списке :guilabel:`Шрифт` выберите шрифт, из которого будут браться те или иные символы. Для выбора доступны все шрифты, установленные в системе. В примере я использовал шрифт ``fonts-oflb-asana-math``. 5. В поле :guilabel:`Символ` присвойте символу свою команду, в противном случае по умолчанию будет использован код его позиции в юникоде. Присвоим символу название ``MyChar``, следовательно, вводиться он будет командой ``%MyChar``. 6. После выбора символа и присвоения ему всех параметров нажмите кнопку :guilabel:`Добавить`. Символ добавлен в каталог вместе с новым набором. .. _math-short-025: .. figure:: _static/chapter9/math-short-025.png :scale: 60% :align: center :alt: Диалог символы Диалог символы Теперь можно вставлять новый символ либо через каталог, либо командой ``%MyChar``. .. _math-short-026: .. figure:: _static/chapter9/math-short-026.png :scale: 60% :align: center :alt: Вставка нового символа Вставка нового символа Многие бесплатные шрифты содержат большое количество математических символов. Например, шрифт STIX [#]_ был специально разработан для математических и технических текстов. Шрифты DejaVu [#]_ и Lucida [#]_ также включают широкий набор дополнительных символов. .. [#] Семейство шрифтов STIX доступно на сайте http://www.stixfonts.org/ .. [#] Семейство шрифтов DejaVu доступно на сайте http://www.dejavu-fonts.org .. [#] Lucida Sans входит в состав пакета :abbr:`JRE (Java Runtime Environment)`, вероятно, он уже установлен на вашем компьютере. По умолчанию Math сохраняет все пользовательские наборы в файле, что позволяет делиться им с другими людьми, не опасаясь проблем с отображением. Для уменьшения размера файла, можно сохранять в файле только используемые символы, а не полностью весь набор. Для этого перейдите в модуле Math в :menuselection:`Сервис --> Параметры --> LibreOffice Math --> Настройки` и установите галочку напротив :guilabel:`Внедрять только используемые символы`. Стандартный стиль формулы ~~~~~~~~~~~~~~~~~~~~~~~~~ В Writer формулы оформляются в соответствии с настройками, заложенными в стиле врезок :guilabel:`Формула`. С помощью модификации данного стиля можно изменить настройки всех формул в документе, подробнее смотрите главу `Отступы и обтекание`_. .. _math-short-027: .. figure:: _static/chapter9/math-short-027.png :scale: 60% :align: center :alt: Стили формулы Стили формулы Изменения в стилях сохраняются только для текущего документа. Чтобы применить эти изменения ко всем новым документам, необходимо сохранить текущий документ в качестве шаблона, а затем установить его в качестве стандартного шаблона для текстовых документов. Для получения более подробной информации о диспетчере шаблонов обратитесь к главе 9 краткого руководства по LibreOffice. Набор химических формул ~~~~~~~~~~~~~~~~~~~~~~~ Math можно использовать и для набора химических формул, которые обычно набираются в прямом начертании в верхнем регистре. Чтобы отключить наклонное начертание, используйте команду ``nitalic`` или измените шрифт всей формулы, подробнее смотрите :ref:`changing-the-font`. .. index:: nitalic Вот некоторые примеры химических формул: .. list-table:: :widths: 15 15 30 :header-rows: 1 * - Оператор - Результат - Разметка * - Молекулы - H\ :sub:`2`\ SO\ :sub:`4`\ - ``H_2 SO_4`` (пробел между элементами обязателен) * - Изотопы - :math:`{^{238}_{92}\mathrm{U}}` - ``U lsub 92 lsup 238`` * - Ионы - :math:`{\mathrm{SO}^{2-}_{4}}` - ``SO_4^{2-{}}`` или ``SO_4^{2"-"}`` .. note:: Для набора верхних и нижних индексов перед символом, используются команды ``lsup`` и ``lsub``. .. index:: lsup, lsub .. note:: В последнем примере, пустые скобки после знака минус необходимы, так как Math требует наличия какого-либо элемента после него. Для набора обратимых реакций не существует специальных команд разметки, просто скопируйте символы ``⇄ ⇆ ⇋ ⇌`` из стандартного набора символов. Если у вас есть шрифт с подходящими символами, вы можете использовать метод, описанный в разделе :ref:`customizing-the-catalog`. Многие специальные символы можно найти на следующих ресурсах: * http://dev.w3.org/html5/html-author/charref * http://www.unicode.org/charts/PDF/U2190.pdf * http://www.unicode.org/charts/#symbol Справка по командам Math ------------------------ Полный список команд и зарезервированных слов, используемых в Math, доступен в Руководстве по Math: * Унарные/бинарные операторы * Отношения * Операции над множествами * Функции * Операторы * Атрибуты * Скобки * Форматы * Прочее * Символы греческого алфавита * Специальные символы * Зарезервированные слова в алфавитном порядке