2 つの行列を互いの下に配置し、行列の列も互いの下にレンダリングされるようにしたいと思います。私が望む例:
|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*}
...しかし、= 記号のみが揃えられ、2 つの行列の列は揃えられません。 コツは何でしょうか? よろしくお願いします!
答え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
Mico のソリューションを拡張すると、使用上の注意点bmatrix
は、括弧が高くなるにつれて幅が広くなることです。コードを 2 回入力しなくても幅を測定できる 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}