행렬의 열도 서로 아래에 렌더링되도록 두 개의 행렬을 서로 아래에 배치하고 싶습니다. 내가 갖고 싶은 예는 다음과 같습니다.
|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
보이지 않는 0으로 "채우기"합니다. 또는패키지를 로드
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
브래킷이 키가 커질수록 넓어진다는 것입니다. 코드를 두 번 입력하지 않고도 너비를 측정하기 위해 저장 상자를 사용합니다.
\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}