Ich habe ein Array innerhalb der Gleichung und ausgerichtet, erkenne den Mathematikmodus nicht

Ich habe ein Array innerhalb der Gleichung und ausgerichtet, erkenne den Mathematikmodus nicht

Ich versuche, eine in Klammern eingeschlossene Matrix zu erstellen, in der die Zeilen und Spalten beschriftet sind. Mein Versuch ist:

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

Wenn ich dies jedoch mache, erhalte ich viele Fehlermeldungen wie „LaTeX-Fehler: \mathcal nur im Mathematikmodus zulässig.“ und „Fehlendes $ eingefügt.“. Ich habe sowohl das Array- als auch das Amsmath-Paket in meine Präambel aufgenommen. Warum funktioniert das nicht und was wäre der beste Weg, dies zu erreichen? Das Hinzufügen von $$ verursacht den Fehler „unerwartetes $ nach \begin{array}“

Antwort1

Der Inhalt einer pSpalte wird standardmäßig im Textmodus verarbeitet. Da ein automatischer Zeilenumbruch nicht erforderlich zu sein scheint, schlage ich vor, den pSpaltentyp durch den wSpaltentyp zu ersetzen, der vom arrayPaket bereitgestellt wird und auch einen Längenparameter (die Entwurfsbreite der Spalte) als Argument annimmt.

Bildbeschreibung hier eingeben

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

Antwort2

Ich schlage vor, zu verwenden 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}

Mit w{c}{2em}erhalten Sie Spalten mit fester Breite.

Bildbeschreibung hier eingeben

verwandte Informationen