
Я хотел бы расположить две матрицы друг под другом так, чтобы столбцы матриц также отображались друг под другом. Пример того, что я хотел бы иметь:
|100 200|
A=| 30 3 |
| 1 119|
b=[ 1 0 ]
Я попробовал это:
\begin{align*}
A= &\begin{vmatrix}
100 & 200 \\
30 & 3\\
1 & 119
\end{vmatrix}\\
b= &\begin{bmatrix}
1 & 0
\end{bmatrix}
\end{align*}
...но он выравнивает только знаки =, но не столбцы двух матриц. В чем подвох? Заранее спасибо!
решение1
Я предполагаю, что числа должны быть выровнены по правому краю в соответствующих столбцах. Если это так, вы могли бы
использовать
{vmatrix*}[r]
окружения и применять соответствующим образом выбранные\phantom
директивы для «дополнения» чисел вb
векторе-строке невидимыми нулями; илизагрузить
siunitx
пакет и использовать егоS
тип столбца внутриarray
сред.
\documentclass{article}
\usepackage{mathtools}% for 'vmatrix*' and 'align*' env.
\usepackage{siunitx} % for 'S' column type
\begin{document}
\begin{align*}
A&= \begin{vmatrix*}[r]
100 & 200 \\
30 & 3\\
1 & 119
\end{vmatrix*}\\
b&= \begin{vmatrix*}[r]
\phantom{00}1 & \phantom{00}0
\end{vmatrix*}
\end{align*}
\begin{align*}
A&= \left\lvert
\begin{array}{@{}*{2}{S[table-format=3.0]}@{}}
100 & 200 \\
30 & 3\\
1 & 119
\end{array}
\right\rvert\\
b&= \left\lvert
\begin{array}{@{}*{2}{S[table-format=3.0]}@{}}
1 & 0
\end{array}
\right\rvert
\end{align*}
\end{document}
решение2
Расширяя решение Мико, сложность использования bmatrix
заключается в том, что скобки становятся шире по мере того, как они становятся выше. Я использую savebox для измерения ширины без необходимости вводить код дважды.
\documentclass{article}
\usepackage{mathtools}% for 'bmatrix*'
\usepackage{array}
\usepackage{collcell}
\newlength{\mywidth}
\settowidth{\mywidth}{$222$}% adjust to fit
\newcommand{\Rcolumn}[1]{\mathmakebox[\mywidth][r]{#1}}
\newcolumntype{R}{>{\collectcell\Rcolumn}c<{\endcollectcell}}
\newsavebox{\tempbox}
\begin{document}
\savebox{\tempbox}{$\displaystyle \begin{bmatrix*}[R]
100 & 200 \\
30 & 3\\
1 & 119
\end{bmatrix*}$}
\begin{align*}
A&= \usebox{\tempbox}\\
b&= \mathmakebox[\wd\tempbox][c]{\begin{bmatrix*}[R]
1 & 0
\end{bmatrix*}}
\end{align*}
\end{document}