矩阵中的对齐(bmatrix)

矩阵中的对齐(bmatrix)

以下是 MWE:

\documentclass[12pt,a4paper]{article}

\usepackage{amsmath}

\begin{document}

The reparameterisation is
\begin{equation}
\label{eqn:linear_ssK3}
    \begin{matrix}
    s
    & = & [ &
    s_1 & s_2 & s_3 & s_4 & s_5
    & ]^T \\
    & = & [ &
        \phi_1+ABCD   &
        \phi_2+ABCD   &
        \tau_{p3}+ABCD&
        \mu_p+ABCD    &
        \mu_p^2+ABCD  &
    ]^T
    \end{matrix}.
\end{equation}

\end{document}

我正在尝试使用这种对齐方式。但请注意句号的.位置不对。

有没有更好的方法来实现这个目标?

谢谢!!

更新:

抱歉,如果我没有说清楚,可能会造成一些混淆。我希望像更新后的矩阵一样对齐单元格中的元素。许多建议的方法不会以这种方式对齐。

可能有些夸张,但我希望能够表达出我想要达到的目标。

答案1

如果要保持列之间的对齐,请使用array,并进行一些增强:

\documentclass[12pt,a4paper]{article}

\usepackage{amsmath}
\usepackage{array}

\begin{document}

The reparameterisation is
\begin{equation}
\label{eqn:linear_ssK3}
\begin{array}{@{} >{{}}r<{{}} @{}r@{\,} *{5}{c} @{\,}l@{}}
s = & [ & s_1       & s_2       & s_3          & s_4      & s_5     & ]^T \\[1ex]
  = & [ & \phi_1^{} & \phi_2^{} & \tau_{p3}^{} & \mu_p^{} & \mu_p^2 & ]^T.
\end{array}
\end{equation}

\end{document}

在此处输入图片描述

对于一次性应用程序来说,这很好;如果需要几个类似的显示,您可以定义一个环境和一个命令来简化输入:

\documentclass[12pt,a4paper]{article}

\usepackage{amsmath}
\usepackage{array}

\newenvironment{alignedrows}[1]
 {\begin{array}{@{} >{{}}r<{{}} @{}r@{\,} *{#1}{c} @{\,}l@{}}}
 {\end{array}}
\newcommand{\arow}[2]{%
  #1 & [ & #2 & ]^T %
}

\begin{document}

The reparameterisation is
\begin{equation}
\label{eqn:linear_ssK3}
\begin{alignedrows}{5}
\arow{s=}{ s_1       & s_2       & s_3          & s_4      & s_5     } \\[1ex]
\arow{ =}{ \phi_1^{} & \phi_2^{} & \tau_{p3}^{} & \mu_p^{} & \mu_p^2 }.
\end{alignedrows}
\end{equation}

\end{document}

输出是一样的。

答案2

在此处输入图片描述

不要将其equation用于多线方程式align,也不要将其matrix用于对齐整个方程式,而仅将其用于制作矩阵,或者在这里您可以bmatrix按照 sigur 的建议使用。

\documentclass[12pt,a4paper]{article}

\usepackage{amsmath}

\begin{document}

The reparameterisation is
\begin{equation}
\label{eqn:linear_ssK3}
\begin{aligned}
s&=
    \begin{bmatrix}
    s_1 & s_2 & s_3 & s_4 & s_5
    \end{bmatrix}^T \\
 &= \begin{bmatrix}
        \phi_1   &
        \phi_2   &
        \tau_{p3}&
        \mu_p    &
        \mu_p^2  
    \end{bmatrix}^T
    \text{.}
\end{aligned}
\end{equation}

\end{document}

如果您希望使用单一对齐来对齐条目,则会破坏表达式的结构,每个矩阵都有一个环境,因此我将使用单独的对齐,但强制宽度相等:

在此处输入图片描述

\documentclass[12pt,a4paper]{article}

\usepackage{amsmath,array}

\begin{document}

The reparameterisation is
\begin{equation}
\label{eqn:linear_ssK3}
\begin{aligned}
s&=
    (\begin{array}{@{}*{5}{>{\centering\arraybackslash$}p{1.2em}<{$}}@{}}
    s_1 & s_2 & s_3 & s_4 & s_5
    \end{array})^T \\
 &= (\begin{array}{@{}*{5}{>{\centering\arraybackslash$}p{1.2em}<{$}}@{}}
        \phi_1   &
        \phi_2   &
        \tau_{p3}&
        \mu_p    &
        \mu_p^2  
    \end{array})^T
    \text{.}
\end{aligned}
\end{equation}

\end{document}

答案3

以下是 @Sigur 建议的解决方案。(他发表评论时我正在研究这个问题。)

在此处输入图片描述

为了获得您想要的内部对齐,我对一些空格进行了硬编码。如果您经常需要这样做,那么您将需要一个更优雅的解决方案。

\documentclass[12pt,a4paper]{article}

\usepackage{amsmath}

\begin{document}

The reparameterisation is

\begin{align}
\label{eqn:linear_ssK3}
s & = \begin{bmatrix}
        & s_1 & s_2 \  & s_3 \  & s_4 & s_5 &
       \end{bmatrix}^T \\
& = \begin{bmatrix}
        &
        \phi_1   &
        \phi_2   &
        \tau_{p3}&
        \mu_p    &
        \mu_p^2  &
     \end{bmatrix}^T \quad . \notag
\end{align}

\end{document}

答案4

另外一个选择

\documentclass{scrartcl}

\usepackage{mathtools}
\usepackage{xparse}

\ExplSyntaxOn
\NewDocumentCommand \vect { s m }
 {
  \IfBooleanTF { #1 }
    { \chen_v_vector:n { #2 } }
    { \chen_h_vector:n { #2 } }
 }

\cs_new_nopar:Npn \chen_h_vector:n { \chen_vector_aux:nn { &  } }
\cs_new_nopar:Npn \chen_v_vector:n { \chen_vector_aux:nn { \\ } }
\cs_new_protected:Npn \chen_vector_aux:nn #1 #2
 {
  \begin { bmatrix }
    \seq_set_split:Nnn \l_tmpa_seq { , } { #2 }
    \seq_use:Nn \l_tmpa_seq { #1 }
  \end { bmatrix }
 }
\ExplSyntaxOff

\begin{document}

The reparameterisation is
\begin{equation}
\label{eqn:linear_ssK3}
\begin{split}
  s &= \vect{s_1,s_2,s_3,s_4,s_5}^T \\[1ex]
    &= \vect{\phi_1,\phi_2,\tau_{p3},\mu_p,\mu_p^2}^T.
\end{split}
\end{equation}

\end{document}

在此处输入图片描述

使用我定义的新命令,\vect您可以轻松输入矩阵向量:\vect{a,b,c}将创建一个包含三个条目的水平数组(abc,它们以逗号分隔),然后\vect*{a,b,c}您将得到一个垂直的矩阵。

相关内容