我有一个方程式内的数组并对齐,无法识别数学模式

我有一个方程式内的数组并对齐,无法识别数学模式

我正在尝试创建一个括号内的矩阵,其中的行和列都带有标签。我的尝试是:

\begin{equation}
    \begin{aligned}
        &\begin{array}{*{7}{p{.8cm}}}
             \mathcal{G}^{\{1\}} & \mathcal{G}^{\{2\}} & \mathcal{G}^{\{3\}} & \mathcal{G}^{\{4\}} & \mathcal{G}^{\{5\}} & e_{r1} & e_{r2}\end{array}\\
        \begin{array}{r}
        \text{plant (out)}\\
        n_1\\
        n_2\\
        \text{plant (in)}\end{array} & \left[\begin{array}{*{7}{p{.8cm}}}
           0 & 0 & -1 & -1 & -1 & -1 & 0\\
           0 & 0 & -1 & -1 & -1 & -1 & 0\\
           0 & 0 & -1 & -1 & -1 & -1 & 0\\
           0 & 0 & -1 & -1 & -1 & -1 & 0\end{array}\right]
    \end{aligned}
\end{equation}  

但是当我这样做时,我收到许多错误,例如“LaTeX 错误: \mathcal 仅允许在数学模式下使用。”和“缺少插入的 $。”。我的序言中包含了 array 和 amsmath 包。为什么这不起作用,实现此目的的最佳方法是什么?添加 $$ 会导致错误“\begin{array} 后出现意外的 $”

答案1

默认情况下,列的内容p以文本模式处理。由于自动换行似乎不是必需的,我建议您将p列类型替换为由包w提供的列类型,该类型array还以长度参数(列的设计宽度)作为其参数。

在此处输入图片描述

\documentclass{article}
\usepackage{array}   % for 'w' column type
\usepackage{amsmath} % for 'aligned' env.
\newcommand\mG[1]{\mathcal{G}^{\{#1\}}} % handy shortcut macro

\begin{document}

\begin{equation}
\begin{aligned}
     &\kern4pt
     \begin{array}{ *{6}{wl{8mm}} r }
        \mG{1} & \mG{2} & \mG{3} & \mG{4} & \mG{5} & e_{r1} & e_{r2}
     \end{array} \\
     \begin{array}{r}
        \text{plant (out)}\\
        n_1\\
        n_2\\
        \text{plant (in)}
     \end{array} 
     &\left[
     \begin{array}{ *{6}{wl{8mm}} r }
           0 & 0 & -1 & -1 & -1 & -1 & 0\\
           0 & 0 & -1 & -1 & -1 & -1 & 0\\
           0 & 0 & -1 & -1 & -1 & -1 & 0\\
           0 & 0 & -1 & -1 & -1 & -1 & 0
     \end{array}
     \right]
\end{aligned}
\end{equation} 

\end{document}

答案2

我建议使用nicematrix

\documentclass{article}
\usepackage{amsmath} % for 'aligned' env.
\usepackage{nicematrix}

\newcommand\cG[1]{\mathcal{G}}

\begin{document}

\begin{equation}
\begin{bNiceArray}[first-row,first-col]{*{7}{w{c}{2em}}}
& \cG^{\{1\}} & \cG^{\{2\}} & \cG&{\{3\}} & \cG^{\{4\}} & \cG^{\{5\}} & e_{r1} & e_{r2} \\
\text{plant (out)} & 0 & 0 & -1 & -1 & -1 & -1 & 0 \\
n_1                & 0 & 0 & -1 & -1 & -1 & -1 & 0 \\
n_2                & 0 & 0 & -1 & -1 & -1 & -1 & 0 \\
\text{plant (in)}  & 0 & 0 & -1 & -1 & -1 & -1 & 0
\end{bNiceArray}
\end{equation} 

\end{document}

这样w{c}{2em}您就可以获得固定宽度的列。

在此处输入图片描述

相关内容