Array-Umgebungszelle über zwei Zeilen unter Beibehaltung der Ausrichtung

Array-Umgebungszelle über zwei Zeilen unter Beibehaltung der Ausrichtung

Ich versuche, Klammern über zwei Zeilen zu verteilen und dabei die Ausrichtung im folgenden Beispiel beizubehalten

korrekte Ausrichtung

in diesem Fall ist die Ausrichtung korrekt. Ich glaube, ich bin fast am Ziel. Für jede Hilfe wäre ich sehr dankbar.

Das obige Bild wurde erstellt von

\begin{equation}
    \begin{array}[t]{ccccccccccl}
        &  &  &  &  & a & a & a &a & \} & d \vspace{0.1cm} \\
        \hline \vspace{-0.4cm}\\
         &  &  &  &  &a & a & a &a\\
         &  &  &  &  &   & b & b & b& \Big\} &d\\
         &  &  & c & c & c & c &c& c \\
         \hline \vspace{-0.4cm}\\
         &  &  & a &a & a & a & a &a\\
         &  &  &  & b &b &b & b & b & \Big\} & d\\
         & c &c & c & c&c&  &c& c\vspace{0.1cm} \\
    \end{array}\label{eq:diagramm}
\end{equation}.

Die Klammern sollten aussehen wie

richtige Zahnspange

aber dies zerstört die Ausrichtung. Dieser Versuch basiert aufdiese Frage

\documentclass{article}
\usepackage{amsmath,amsthm,array}% http://ctan.org/pkg/{amsmath,amsthm,array}
\newcommand{\twolinebrace}{\left.\kern-\nulldelimiterspace\begin{array}{@{}c@{}}   \\\\\end{array}\right\}}
\newtheorem{theorem}{Theorem}
\begin{document}
\[
  \renewcommand{\arraystretch}{1.25}
  \begin{array}{@{}l@{\quad}l@{}}
    \begin{array}{lllllllll}
      &  &  &  &  &a & a & a &a\\ % RHS
      &  &  &  &  &   & b & b & b \\ % RHS   
      &  &  & &c& c& c &c& c  % RHS
    \end{array} & \twolinebrace\text{d} \\
        \begin{array}{lllllllll}
      &  &  &  & a &a & a & a &a\\ % RHS
      &  &  &  &  & b  & b & b & b \\ % RHS   
      &  & & c&c& c& c &c& c  % RHS
    \end{array} & \twolinebrace\text{d} 
  \end{array}
\]
\end{document}

Antwort1

Das geht mit dem blkarrayPaket ganz einfach. Es benötigt zwei Spalten weniger als in deinem Code:

\documentclass{article}
\usepackage{amsmath}
\usepackage{blkarray}%

\begin{document}
\[
  \renewcommand{\arraystretch}{1.3}
  \begin{blockarray}{*{9}{l}}
\begin{block}{*{8}{l}l<{\,}\Right{\}}{\,$ d $}}
      & & & & &a & a & a &a \\
      & & & & & & b & b & b \\
      & & & &c& c& c &c& c \\
\end{block}
\begin{block}{*{8}{l}l<{\,}\Right{\}}{\,$ d $}}
      & & & & a & a & a & a & a \\
      & & & & & b & b & b & b \\
      & & & c & c & c & c & c & c \\
\end{block}
%\end{block}
  \end{blockarray}
\]
\end{document} 

Bildbeschreibung hier eingeben

Antwort2

Um die Ausrichtung beizubehalten, müssen Sie nur ein Array verwenden.

Die Klammern können \smashangebracht werden, wodurch ein Auseinanderdriften der Reihen vermieden wird.

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
  \renewcommand{\arraystretch}{1.25}
  \begin{array}{lllllllllll}
      &  &  &  &  &a & a & a &a  &&\\ % RHS
      &  &  &  &  &   & b & b & b & \smash{\Bigg\}} & d\\ % RHS   
      &  &  & &c& c& c &c& c  \\% RHS
      &  &  &  & a &a & a & a &a &&\\ % RHS
      &  &  &  &  & b  & b & b & b & \smash{\Bigg\}} & d\\ % RHS   
      &  & & c&c& c& c &c& c  % RHS
  \end{array}
\]
\end{document}

Ausgabe des Beispielcodes

dabei wird der Einfachheit halber die größte vorhandene Größe verwendet, \Biggbei Bedarf könnte jedoch eine größere konstruiert werden, wodurch die zum Bau der „großen“ Zäune verwendete Abmessung vergrößert wird:

\def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}}
\def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}}
\def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}}

Der Unterschied zwischen den Schritten beträgt 3pt, also wären die nächsten beiden Schritte

\def\biggg#1{{\hbox{$\left#1\vbox to20.5\p@{}\right.\n@space$}}}
\def\Biggg#1{{\hbox{$\left#1\vbox to23.5\p@{}\right.\n@space$}}}

(Diese Definitionen stammen von plain.texund setzen moderne Computerschriftarten voraus.)

Antwort3

Fügen Sie \phantom{c}in einer der ersten Zellen in der dritten Zeile des ersten großen ein hinzu array, und Ihr Code muss nicht weiter angepasst werden.

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{amsmath,amsthm,array}% http://ctan.org/pkg/{amsmath,amsthm,array}
\newcommand{\twolinebrace}{\left.\kern-\nulldelimiterspace\begin{array}{@{}c@{}}   \\\\\end{array}\right\}}
\newtheorem{theorem}{Theorem}
\begin{document}
\[
  \renewcommand{\arraystretch}{1.25}
  \begin{array}{@{}l@{\quad}l@{}}
    \begin{array}{lllllllll}
      &  &  &  &  &a & a & a &a\\ % RHS
      &  &  &  &  &   & b & b & b \\ % RHS   
      &  &  & \phantom{c}&c& c& c &c& c  % RHS
    \end{array} & \twolinebrace\text{d} \\
        \begin{array}{lllllllll}
      &  &  &  & a &a & a & a &a\\ % RHS
      &  &  &  &  & b  & b & b & b \\ % RHS   
      &  &  & c&c& c& c &c& c  % RHS
    \end{array} & \twolinebrace\text{d} 
  \end{array}
\]
\end{document}

Nachtrag: Ein Teil Ihres Codes, der aussieht, als könnte er einige Optimierungen vertragen, ist das Makro \twolinebrace: Da die Klammerdreianstatt nur zwei Zeilen möchten Sie vielleicht ein neues Makro definieren (und verwenden), das ich wie folgt nenne \threelinebrace:

\newcommand{\threelinebrace}{\left.\kern-\nulldelimiterspace\begin{array}{@{}c@{} \\\\\\ \end{array}\right\}}

Im Vergleich zu \twolinebraceverfügt das neue Makro über ein zusätzliches \\Paar.

verwandte Informationen