3. Матричні та подібні середовища | Підручник з LaTeX

Існує кілька середовищ для набору матричних структур, визначених у пакеті amsmath. Усі вони подібні до стандартного середовища масиву LaTeX за синтаксисом і макетом. Загалом, широкий спектр двовимірних математичних структур і табличних макетів можна описати як масиви.

Три середовища - cases, matrix і pmatrix - замінюють команди стандартного LaTeX. Стандартні команди використовують іншу нотацію, тому їх не можна використовувати разом із формами середовища, про які тут йдеться. Пакунок amsmath видасть повідомлення про помилку, якщо використовується одна зі старих команд. І навпаки, якщо ви спробуєте використати форми середовища amsmath без завантаження пакета, ви, швидше за все, отримаєте таке повідомлення про помилку: "Неправильне вирівнювання символу табуляції &".

3.1. Середовище cases

Середовище case використовується для обробки конструкцій, де одне рівняння має кілька варіантів. Такі конструкції дуже поширені в математиці. Він створює масив із двома стовпцями, обидва вирівняні за лівим краєм.

1\usepackage{amsmath}
2% -------------------------------------------------------------------------------
3\begin{equation}
4P_{r - j} = \begin{cases}
5                     0 & \text{if $r - j$ is odd,} \\
6r! \, (-1)^{(r - j)/2} & \text{if $r - j$ is even.}
7\end{cases}
8\end{equation}

Середовище випадків

Зверніть увагу на використання команди \text і “вбудованого математичних режимів” у текстових рядках.

3.2. Матричні середовища

Матричні середовища, на відміну від масиву LaTeX, не приймають аргумент, який визначає формати стовпців. Натомість вони надають формат за замовчуванням: до 10 стовпців по центру. Інтервал також дещо відрізняється від стандартного в array. Наступні приклади ілюструють середовища matrix, pmatrix, bmatrix, Bmatrix, vmatrix і Vmatrix.

1\usepackage{amsmath}
2% -------------------------------------------------------------------------------
3\begin{gather*}
4\begin{matrix} 0 & 1 \\ 1 & 0 \end{matrix} \quad \begin{pmatrix} 0 & -i \\ i & 0 \end{pmatrix} \\
5\begin{bmatrix} 0 & -1 \\ 1 & 0 \end{bmatrix} \quad \begin{Bmatrix} 1 & 0 \\ 0 & -1 \end{Bmatrix} \\
6\begin{vmatrix} a & b \\ c & d \end{vmatrix} \quad \begin{Vmatrix} i & 0 \\ 0 & -i \end{Vmatrix}
7\end{gather*}

Матричні середовища

Лічильник MaxMatrixCols визначає максимальну кількість стовпців у середовищі матриці. Ви можете змінити його за допомогою стандартної команди лічильника LaTeX. Значення параметра довжини \arraycolsep визначає відстань між стовпцями. Так само, як у стандартних масивах, але з обох сторін масиву не додається пробіл. Більше стовпців змусить LaTeX працювати важче та потребуватиме більше ресурсів. Однак встановлення MaxMatrixCols на 20 або вище можливе без помітного зниження продуктивності, оскільки в сучасних типових реалізаціях TeX такі обмеження менш важливі.

 1\usepackage{amsmath}
 2\setcounter{MaxMatrixCols}{20}
 3% -------------------------------------------------------------------------------
 4\[
 5\begin{Vmatrix}
 6\,a&b&c&d&e&f&g&h&i&j &\cdots\,{} \\
 7&a&b&c&d&e&f&g&h&i &\cdots\,{} \\
 8& &a&b&c&d&e&f&g&h &\cdots\,{} \\
 9& & &a&b&c&d&e&f&g &\cdots\,{} \\
10& & & &\ddots&\ddots&\hdotsfor[2]{5}\,{}
11\end{Vmatrix} \]

Більше стовпців у матричних середовищах

У цьому прикладі команда \hdotsfor використовується для створення ряду точок у матриці, що охоплює задану кількість стовпців. Необов’язковий параметр (тут 2) можна використовувати для визначення множника для інтервалу за замовчуванням (3 математичні одиниці) між крапками. Тонкий пробіл і фігурні дужки \,{} в кінці кожного рядка просто покращують макет; разом вони створюють два тонких простору, приблизно 6mu або 1/3em.

Щоб створити маленьку вбудовану матрицю для використання в тексті, ви можете використовувати середовище smallmatrix.

1\usepackage{amsmath}
2% -------------------------------------------------------------------------------
3To show the effect of the matrix on surrounding lines inside a paragraph, we put it here:
4$ \left( \begin{smallmatrix}
51 & 0 \\ 0 & -1
6\end{smallmatrix} \right) $
7and follow it with enough text to ensure that there is at least one full line below the matrix.

Середовище smallmatrix

Зауважте, що рядки тексту не розходяться, навіть якщо рядок перед малою матрицею містить літери з нижніми знаками.

3.3. Укладання в нижніх і верхніх індексах

Іноді може знадобитися набрати кілька рядків у нижньому чи верхньому індексі. Для цього можна використати команду \substack з розмежуванням рядків \\.

Середовище «субмасив» — це дещо загальніша структура, яка дозволяє вирівнювати лінії ліворуч або праворуч, а не центрувати їх.

 1\usepackage{amsmath}
 2% -------------------------------------------------------------------------------
 3\begin{gather}
 4\sum_{\substack{0 \le i \le m \\ 0 < j < n}} P(i, j) \\
 5\sum_{\begin{subarray}{l}
 6i \in \Lambda \\
 70 \le i \le m \\
 80 < j < n
 9\end{subarray}} P(i, j)
10\end{gather}

Складання в нижньому та верхньому індексах

Зауважте, що обидва середовища мають бути в дужках, коли вони відображаються як нижній або верхній індекс.

3.4. Комутативні діаграми

Пакет amscd визначає деякі команди для створення простих комутативних діаграм на основі масивів. Існує кілька корисних скорочених форм для вказівки прикрашених стрілок та інших сполучних елементів. Однак він має обмеження - наприклад, ці роз’єми можуть бути тільки горизонтальними або вертикальними.

У середовищі CD позначення @>>>, @<<<, @VVV і @AAA створюють стрілки вправо, вліво, вниз і вгору відповідно. У наступному прикладі також показано використання команди \DeclareMathOperator.

 1\usepackage{amsmath,amscd}
 2\DeclareMathOperator\add{add}
 3\DeclareMathOperator\cf {cf}
 4\DeclareMathOperator\cov{cov}
 5\DeclareMathOperator\non{non}
 6% -------------------------------------------------------------------------------
 7\[ \begin{CD}
 8\cov (L) @>>> \non (K) @>>> \cf (K) \\
 9@VVV @AAA @AAA \\
10\add (L) @>>> \add (K) @>>> \cov (K) \\
11\end{CD} \]

Проста комутативна діаграма

Подивимося, як задаються прикраси. Для горизонтальних стрілок матеріал між першим і другим символами «>» або «<» буде набраний як верхній індекс, а матеріал між другим і третім буде набраний як нижній індекс. Подібним чином, матеріал між першою та другою, або другою та третьою літерами «A» або «V» вертикальних стрілок буде набраний як лівий або правий «бічний сценарій». Ми побачимо використання цього формату в наступному прикладі.

Позначення @= і @| позначають горизонтальні та вертикальні подвійні лінії.

Замість видимої стрілки ви можете використовувати «нульову стрілку» (@.), щоб заповнити масив, де потрібно.

1\usepackage{amsmath, amscd}
2\DeclareMathOperator{\End}{End}
3% -------------------------------------------------------------------------------
4\[ \begin{CD}
5S^{W_\Lambda}\otimes T @>j>> T \\
6@VVV @VV{\End P}V \\
7(S \otimes T)/I @= (Z\otimes T)/J
8\end{CD} \]

Комутативна діаграма зі скриптами

Подібний макет може бути створений у стандартному LaTeX. Але це виглядає не так добре.

1\[\begin{array}{ccc}
2S^{\mathcal{W}_\Lambda}\otimes T & \stackrel{j}{\longrightarrow} & T \\
3\Big\downarrow & & \Big\downarrow\vcenter{\rlap{$\scriptstyle{\mathrm{End}}\,P$}} \\
4(S\otimes T)/I & = & (Z\otimes T)/J
5\end{array}\]

Комутативна діаграма в стандартному LaTeX

Цей приклад досить чітко показує, наскільки кращі результати дає пакунок amscd: нотація простіша, горизонтальні стрілки довші, відстань між елементами значно покращена. Більш спеціалізовані пакети допоможуть вам досягти ще кращих результатів.

3.5. Роздільники навколо масиву: пакет delarray

У цьому розділі ми обговоримо корисне загальне розширення пакета array. Використовуючи це розширення, користувач може вказати відкриваючі та закриваючі розширювані роздільники, щоб оточувати математичний масив. Давайте розглянемо приклад:

1\usepackage{delarray}
2% -------------------------------------------------------------------------------
3\[ \mathcal{Q} =
4\begin{array}[t] ( {cc} ) X & Y \end{array}
5\begin{array}[t] [ {cc} ] A & B \\ C & D \end{array}
6\begin{array}[b] \lgroup{cc}\rgroup L \\ M \end{array}
7\]

Використання пакета delarray

Зауважте, що пакунок delarray не залежить від amsmath, але він автоматично завантажує пакунок array, якщо необхідно.

Роздільники розміщуються по обидві сторони від {cc}.

Цей приклад також ілюструє найкориснішу функцію пакета delarray: використання необов’язкових аргументів [t] і [b], які не дозволені в матричних середовищах amsmath``. Вони показують, що використання синтаксису delarrayне еквівалентно оточенню середовищаarray \leftі\right`, оскільки роздільники піднімаються, а також сам масив.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.