
- •Смена шрифтов, начертания, размеров, индексы, разные знаки. Интерпретатор TeX.
- •Интерпретатор LaTeX.
- •Суммы, произведения, интегралы, дроби, предел, корни.
- •Разные скобки и ограничители переменного размера.
- •Тригонометрические, гиперболические функции и логарифмы
- •Смена шрифтов для интерпретатора LaTeX
- •Установка интервалов в формулах
- •Горизонтальные скобки, линии и стрелки
- •Формулы в тексте и текст в формулах.
- •Расположение формул в несколько строк и вывод матриц
- •Преобразование формулы в рисунок (объект Image)
- •Часть 2 Базовые графические объекты.
- •Размещение текста на трехмерных графиках.
- •Изменение вида текстового объекта.
- •Указание положения текстового объекта и надписи при помощи свойств. Пример: "бегущая строка".
- •Вывод многострочного текста.
- •Примечание про логическое индексирование.
- •Заголовок и подписи осей это текстовые объекты, потомки осей.
- •Xlabel('подпись к оси X', 'Свойство', значение, 'Свойство', значение, ... )
- •Xlabel (указатель на оси, 'подпись к оси X', 'Свойство', значение, 'Свойство', значение, ...)
Расположение формул в несколько строк и вывод матриц
Разумеется, вывод формул в несколько строк возможен при помощи создания нескольких текстовых объектов при помощи функции text. Однако, использование одного текстового объекта и интерпретатора LaTeX дает определенные преимущества, например при наборе матриц. Для вывода формулы в несколько строк следует использовать окружение array, в котором указываются: способ выравнивания (c - по центру, l - по левому краю и r - по правому краю), разделители в строке символом & и концы строк символами \\
\begin{array}{lll}
формула & формула & формула \\
формула & формула & формула \\
формула & формула & формула
\end{array}
Например, команды
figure
hT=text('Position', [0.1 0.5], 'Interpreter', 'latex', 'String',...
'$$\begin{array}{lll} 2x+3y&=&5 \\ 4x+y&=&5 \end{array}$$', 'FontSize', 20)
приводят к появлению двух формул (одного текстового объекта), в которых выравнивание сделано по знаку равенства
При включенном интерпретаторе LaTeX, функция text требует в качестве значения свойства String строку или строковую переменную, которую можно сформировать из нескольких строк для того, чтобы обращение к функции text не занимало слишком длинную строку. Предыдущий текстовый объект можно было вывести, разбив строку с формулой на две части, записав их в переменные s1 и s2 и сцепить их затем, например при помощи квадратных скобок или функции horzcat:
figure
s1 = '$$\begin{array}{lll} 2x+3y&=&5 \\';
s2 = '4x+y&=&5 \end{array}$$';
text('Position', [0.1 0.5], 'Interpreter', 'latex', 'String', [s1 s2], 'FontSize', 20)
Расположение формул одного текстового объекта в несколько строк позволяет использовать скобку, автоматически изменяющую размер, для записи уравнений в виде системы, например:
figure
s1='$$\left\{\begin{array}{lll} 2x+3y&=&5 \\'
s2='4x+y&=&5 \end{array}\right.$$'
hT=text('Position', [0.1 0.5], 'Interpreter', 'latex', 'String',...
[s1 s2], 'FontSize', 20)
приводит к системе
Окружение array позволяет набирать и более сложные формулы, например матрицы. Операторы
figure
s1='$$A=\left(\begin{array}{llll} a_{11}&a_{12}&\ldots&a_{1n}\\'
s2='a_{21}&a_{22}&\ldots&a_{2n}\\'
s3='\vdots&\vdots&\ddots&\vdots\\'
s4='a_{m1}&a_{m2}&\ldots&a_{mn}'
s5='\end{array}\right)$$'
s=[s1 s2 s3 s4 s5]
hT=text('Position', [0.1 0.5], 'Interpreter', 'latex', 'String', s, 'FontSize', 20)
выводят в графическое окно следующую матрицу
В результате получается один текстовый объект, который позволяет применить к нему свойства текстового объекта, описанные в разделе Изменение вида текстового объекта, например можно изменить цвет фона и шрифта
set(hT,'Color','y','BackgroundColor','k')
В качестве примера автоматизации этого процесса для матриц, содержащих числовые значения, приведем простую функцию mat2tex, которая по заданной матрице формирует соответствующую строку для интерпретатора LaTeX (слишком длинные строки интерпретатор MATLAB не может обработать):
function s=matr2tex(A,fmt)
[m,n]=size(A);
s='$$\left(\begin{array}';
s=[s '{' repmat('l',1,n) '}'];
for i=1:m-1
for j=1:n-1
s=[s num2str(A(i,j),fmt) '\,' '&'];
end
s=[s num2str(A(i,j),fmt) '\\'];
end
for j=1:n-1
s=[s num2str(A(m,j),fmt) '\,' '&'];
end
s=[s num2str(A(m,n),fmt) '\end{array}\right)$$'];
Ее входные аргументы: A - матрица и fmt - строка с форматом представления числа или количество значащих цифр, например:
figure
A=rand(5)
s=matr2tex(A,'%11.2f')
hT=text('Position', [0.1 0.5], 'Interpreter', 'latex', 'String',s, 'FontSize', 15)
приводит к