3. Matriz e ambientes semelhantes
Existem vários ambientes para as estruturas semelhantes a matrizes com tipo de matriz definidas no pacote amsmath
. Eles são todos semelhantes ao ambiente padrão do LaTex Array
em sintaxe e layout. Em geral, uma grande variedade de estruturas matemáticas bidimensionais e layouts tabulares pode ser descrita como matrizes.
Três ambientes - casos
, matrix
e pmatrix
- substitua os comandos do LaTeX padrão. Os comandos padrão usam uma notação diferente para que não possam ser usados juntamente com os formulários de ambiente discutidos aqui. O pacote amsmath
produzirá uma mensagem de erro se um dos comandos antigos for usado. Por outro lado, se você tentar usar os formulários de ambiente AMSMATH
sem carregar o pacote, provavelmente receberá a seguinte mensagem de erro:"Alinhamento extraviado Caractere da guia de alinhamento &"
.
3.1. O ambiente casos
O ambiente case
é usado para lidar com construções, onde uma única equação possui algumas variantes. Tais construções são muito comuns em matemática. Produz uma matriz com duas colunas, ambas alinhadas à esquerda.
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}
Observe o uso do comando \text
e o" modo de matemática incorporado “nas seqüências de texto.
3.2. Os ambientes da matriz
Os ambientes da matriz, diferentemente do Array
do LATEX, não aceitam um argumento que especifica os formatos das colunas. Em vez disso, eles fornecem um formato padrão: até 10 colunas centralizadas. O espaçamento também difere um pouco do padrão em Array
. Os exemplos a seguir ilustram os ambientes matrix
, pmatrix
, bmatrix
, bmatrix
, vmatrix
e 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*}
O contador maxmatrixcols
determina o número máximo de colunas em um ambiente de matriz. Você pode alterá -lo usando o comando de contador padrão do LATEX. O valor do parâmetro de comprimento \arrayColsep
determina a quantidade de espaço entre as colunas. Assim como em matrizes padrão, mas nenhum espaço é adicionado em ambos os lados da matriz. Mais colunas farão o LaTeX trabalhar mais e exigir mais recursos. No entanto, é possível definir maxmatrixcols
para 20 ou mais, sem um desempenho notável, pois com as implementações típicas de Tex de hoje são menos importantes.
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} \]
Neste exemplo, o comando \hdotsfor
é usado para produzir uma linha de pontos em uma matriz, abrangendo um determinado número de colunas. O parâmetro opcional (aqui 2) pode ser usado para especificar um multiplicador para o espaço padrão (3 unidades de matemática) entre os pontos. O espaço fino e o grupo BRACE \, {}
no final de cada linha simplesmente fazem com que o layout pareça melhor; Juntos, eles produzem dois espaços finos, cerca de 6mu ou 1/3em.
Para produzir uma pequena matriz em linha para uso no texto, você pode usar o ambiente 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.
Observe que as linhas de texto não estão separadas, mesmo que a linha antes da pequena matriz contenha letras com descendentes.
3.3. Empilhando em subscritos e superestritos
Às vezes, pode ser necessário digitar várias linhas em um subscrito ou substituto. Para fazer isso, você pode usar o comando \Substack
com \\
delimitando linhas.
O ambiente Subarray
é uma estrutura um pouco mais geral que permite alinhar as linhas à esquerda ou à direita, em vez de tê -las centradas.
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}
Note que ambos os ambientes necessitam de estar entre chavetas quando aparecem como subscrito ou sobrescrito.
3.4. Diagramas comutativos
O pacote AMSCD
define alguns comandos para produzir diagramas comutativos simples com base em matrizes. Existem algumas formas de abreviação úteis para especificar setas decoradas e outros conectores. No entanto, possui limitações - por exemplo, esses conectores podem ser apenas horizontais ou verticais.
No ambiente CD
, as notações @>>>
, @<<<
, @vvv
e @aaa
produzem as setas à direita, à esquerda, para baixo e para cima, respectivamente. O exemplo a seguir também mostra o uso do comando \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} \]
Vamos ver como as decorações são especificadas. Para as setas horizontais, o material entre o primeiro e o segundo símbolos >
ou <
será digitado como um sobrescrito, e o material entre o segundo e o terceiro será com o tipógrafo como um subscrito. Da mesma forma, o material entre o primeiro e o segundo, ou o segundo e o terceiro, a
ou v
de setas verticais será digitado como “Script lateral” à esquerda ou direita. Veremos o uso deste formato no próximo exemplo.
As notações @=
e @|
dê linhas duplas horizontais e verticais.
Em vez de uma seta visível, você pode usar uma “seta nula” (@.
) para preencher uma matriz sempre que necessário.
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} \]
Um layout semelhante pode ser produzido no LaTeX padrão. Mas não parece tão bom.
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}\]
Este exemplo mostra claramente quão melhores os resultados o pacote AMSCD
produz: a notação é mais fácil, as setas horizontais são mais longas, o espaçamento entre os elementos é muito melhorado. Os pacotes mais especializados ajudarão você a obter resultados ainda mais bonitos.
3.5. Delimitadores em torno de uma matriz: o pacote DelArray
Nesta seção, discutiremos uma extensão geral útil para o pacote Array
. Usando essa extensão, o usuário pode especificar delimitadores de abertura e fechamento extensíveis para envolver um ambiente de matemática. Vejamos o exemplo:
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\]
Note que o pacote
delarray
é independente deamsmath
, mas carrega automaticamente o pacotearray
se necessário.
Os delimitadores são colocados em ambos os lados do {cc}
.
Este exemplo também ilustra o recurso mais útil do pacote DelArray
: o uso dos argumentos [t] e
[b]
opcionais, que não são permitidos com os ambientes matriciais de ‘amsmath’. Eles mostram que o uso da sintaxe DelArray
não é equivalente ao ambiente ao redor do ambientearray
com \left
e \right
, já que os delimitadores são elevados, assim como a própria matriz.