Смена шрифтов, начертания, размеров, индексы, разные знаки. Интерпретатор TeX.
ЛАБОРАТОРНАЯ РАБОТА № 6
ТЕМА «Вывод математических формул на график, смена шрифта и начертания. Базовые графические объекты»
ЧАСТЬ 1
Вывод математических формул на график, смена шрифта и начертания
В MATLAB имеется возможность вывода достаточно сложных математических формул, содержащих индексы, дроби, корни, интегралы и суммы, матрицы и специальные математические знаки, с использованием интерпретаторов TeX и LaTeX.
В справочной системе MATLAB соответствующая информация размещена в следующих разделах:
- MATLAB: Handle Graphics Property Browser, в правом окне надо щелкнуть по ссылке Axes, затем по Core Objects и потом по Text и посмотреть на значения свойств Interpreter и String текстового объекта.
- MATLAB: Graphics: Annotating Graphs: Adding Text Annotations to Graphs: Mathematical Symbols, Greek Letters, and TEX Characters - приведен пример формулы, содержащей греческие буквы и индексы, сделанной при помощи интерпретатора TeX.
- Страница с информацией о функции text, перейти к которой можно, например при помощи команды >> doc text.
Смена шрифтов, начертания, размеров, индексы, разные знаки. Интерпретатор TeX.
Формула является текстовым объектом, который создается при помощи функции text (см. Размещение текстового объекта, определение его размеров и положения). В качестве простого примера рассмотрим размещение подписи на графике функции sin x2; e-x, построенном на отрезке [0, 5] при помощи fplot, которая сама подбирает значения аргумента для получения наиболее точного графика:
fplot('sin(x.^2)*exp(-x)', [0 5])Для создания текстового объекта применим функцию text, указав в ее входных аргументах координаты текстового объекта по оси абсцисс 2.5 и по оси ординат 0.15, строку текста 'sin({\itx}^2){\ite}^{-{\itx}}' и размер шрифта 20 пт.
hT = text(2.5, 0.15, 'sin({\itx}^2){\ite}^{-{\itx}}', 'FontSize', 20)На оси выводится формула, а не в точности те символы, которые были заданы в текстовой строке
Так происходит потому, что по умолчанию функция text интерпретирует некоторые символы и сочетания как теги формата TeX (из-за того, что свойство Interpreter текстового объекта имеет значение 'tex') и соответствующим образом форматирует выводимый на оси текст так, как указано на рисунке ниже.
В данном случае команда \it привела к форматированию курсивом того текста, который вместе с \it заключен в фигурные скобки, а символ ^ позволил создать верхние индексы: двойку и содержимое фигурных скобок -{\itx}, из которого получилось -x. Для создания нижнего индекса следует воспользоваться знаком подчеркивания, например последовательность команд:
>> figure>> text(0.5, 0.5, '({\ita}_{\iti}+{\itc}_{\iti})^2', 'FontSize', 30)приводит к следующему результату:
Если нижним или верхним индексом размечается более одного символа, то все они должны быть заключены в фигурные скобки, сравните:
'A_ij^(1)' приводит к неверному результату | |
'A_{ij}^{(1)}' к верному |
Если текст не размечен, то интерпретатор TeX выводит его прямым шрифтом, как в нашем предыдущем примере. Для изменения начертания части текста следует применить одну из следующих команд:
- \bf - для жирного текста;
- \it - для курсива;
- \rm - для обычного текста.
и заключить текст в фигурные скобки. Если пропустить фигурные скобки, то действие команды распространится либо до конца строки, либо до следующей команды смены начертания, если она противоречит данной команде (текст может быть отформатирован одновременно и жирным и курсивом, но прямым шрифтом и курсивом не может). Ниже приведены некоторые примеры смены начертания шрифта вместе с получающимся результатом:
Строка | Результат | Комментарии |
'ABC\itDEF\bfIJK\rmLMNOP' | команда \bf не противоречит \it, т.к. текст может быть одновременно отформатирован жирным и курсивом, после команды \rm убирается все форматирование и текст выводится прямым шрифтом | |
'ABC{\itDEF}{\bfIJK}LMNOP' | действие команд \it и \bf распространяется только на текст, заключенный в фигурные скобки. | |
'\itABCDEF{\bfIJK}LMNOP' | форматирование курсивом применено ко всей строке, а дополнительная разметка жирным шрифтом действует только внутри фигурных скобок |
Кроме смены форматирования, возможно изменять шрифт и его размер. Для этого предназначены следующие команды:
- \fontname{имя шрифта} - смена шрифта. В фигурные скобки вводится название одного из шрифтов, установленных на компьютере.
- \fontsize{размер шрифта} - смена размера шрифта. По умолчанию, указанное в фигурных скобках значение воспринимается в пунктах, т.к. свойство FontUnits текстового объекта по умолчанию имеет значение 'points' (пункты). Если свойство FontUnits текстового объекта установлено в другое значение, то будут использоваться соответствующие единицы измерения (см. Размещение текстового объекта, определение его размеров и положения).
В одном текстовом объекте можно отформатировать текст несколькими шрифтами. При этом следует учесть, что область действия одной команды \fontname распространяется до другой команды \fontname или до конца строки. Например, указание во входных аргументах функции text следующей строки
'\fontname{Courier}ABCDEF\fontname{Arial}LMNOP'приводит к появлению текстового объекта, в котором первая половина текста отформатирована моноширинными шрифтом Courier, а вторая - пропорциональным шрифтом Arial
Разумеется, можно сочетать перечисленные выше команды смены шрифта, его начертания и размера, своевременно указывая необходимые параметры форматирования текста. Например, задание в функции text следующей строки
'\fontsize{40}\fontname{Courier}ABC\itDE\bfF\fontname{Arial}LM\fontsize{10}NOP'позволяет получить такой текст:
в котором размер символов сначала 40пт., затем 10пт., применены шрифты Courier и Arial, а так же курсив и жирный шрифт.
Для подписей осей, заголовка и легенды, которые делаются функциями xlabel, ylabel, zlabel и title, также можно использовать верхний и нижний индекс, смену начертания, шрифта и его размера, например:
xlabel('{\itx}_i')title('\bfVery simple \rmfunction')Так происходит потому, что подписи осей и заголовок, создаваемые функциями высокоуровневой графики xlabel, ylabel, zlabel и title, в действительности являются текстовыми объектами, принадлежащими осям в иерархии графических объектов MATLAB (см. раздел Заголовок и подписи осей это текстовые объекты, потомки осей).
В режиме интерпретатора TeX (когда свойство Interpreter текстового объекта установлено в 'tex', как по умолчанию), можно выводить различные математические символы, прописные и строчные греческие буквы. Для просмотра полной таблицы доступных символов и греческих букв следует обратиться к разделу справочной системе MATLAB, содержащему описание функции text:
>> doc textВ появившемся окне достаточно перейти по гиперссылке String и посмотреть таблицу. В ней приведены команды TeX, начинающиеся со знака обратной косой черты, для вывода следующих символов:
- прописных и строчных греческих букв \alpha, \beta, \gamma, \Gamma, \Sigma, \Pi и т.д.
- различных стрелок \leftarrow, \uparrow, \rightarrow и т. д.
- символов пересечения, объединения и принадлежности \cup, \cap, \in и т.д.
- знаков "больше или равно", "меньше или равно", "не равно" \geq, \leq, \neq
- кванторов \forall, \exists
- других знаки
При помощи этих знаков можно набирать несложные формулы, например указание в функции text строки
'\forall{\itn} \exists{\epsilon}: |{\itx}-{\itx_n}|\leq\epsilon'приводит к следующему тексту:
а строки
text(0.5, 0.5, '\Sigma_{{\itn}=1}^\infty1/{\itn} = \infty', 'FontSize', 30)к формуле
которая уже выглядит не очень красиво.
БОльшие возможности для набора математических формул предоставляет интерпретатор LaTeX.