Como alinhar elementos de duas matrizes horizontalmente?

Como alinhar elementos de duas matrizes horizontalmente?

Gostaria de posicionar duas matrizes uma embaixo da outra para que as colunas das matrizes também sejam renderizadas uma embaixo da outra. Um exemplo do que eu gostaria de ter:

  |100 200|
A=| 30  3 |
  | 1  119|

b=[ 1   0 ]

Eu tentei isso:

\begin{align*}
    A= &\begin{vmatrix}
        100 & 200 \\
        30 & 3\\
        1 & 119
    \end{vmatrix}\\
    b= &\begin{bmatrix}
        1 & 0
    \end{bmatrix}
\end{align*}

...mas alinha apenas os sinais =, mas não as colunas das duas matrizes. Qual é o truque? Desde já, obrigado!

Responder1

Presumo que os números devam estar alinhados à direita nas respectivas colunas. Se for esse o caso, você poderia

  • usar {vmatrix*}[r]ambientes e empregar \phantomdiretivas adequadamente escolhidas para "preencher" os números no bvetor linha com zeros invisíveis; ou

  • carregue o siunitxpacote e use seu Stipo de coluna dentro arraydos ambientes.

insira a descrição da imagem aqui

\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}

Responder2

Expandindo a solução do Mico, o complicado de usar bmatrixé que os colchetes ficam mais largos à medida que ficam mais altos. Eu uso um savebox para medir a largura sem precisar digitar o código duas vezes.

\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}

demonstração

informação relacionada