Falscher Abstand in einer Tabelle um ein Array

Falscher Abstand in einer Tabelle um ein Array

Ich habe schon ein wenig im Forum gesucht, konnte aber keine zufriedenstellende Lösung für mein Problem finden.

Ich möchte eine Tabelle erstellen, in der ich zwei verschiedene Situationen vergleiche, und eine Zeile des Vergleichs ist ein Array/eine Matrix. Ich möchte, dass der Abstand für die Tabelle etwas größer ist, da alles zu eng ist. Daher verwende ich eine Änderung \arraystretchinnerhalb von Gruppen:

\begin{center}
    \renewcommand*{\arraystretch}{1.5}
    \begin{tabular}{|c|c|}
        \hline
            Problem (1) & Problem (2)\\
        \hline
        \begingroup
            \renewcommand*{\arraystretch}{1}
            $\left\{
                \begin{array}{c}
                    G_1 = 1\\
                    G_2 = 0
                \end{array}
            \right.$
        \endgroup
        &
        \begingroup
            \renewcommand*{\arraystretch}{1}
            $\left\{
                \begin{array}{c}
                    G_1 = 0\\
                    G_2 = 1
                \end{array}
            \right.$
        \endgroup
        \\
        \hline
            displacement $u_1(x,y) = \chi_1(y)$ & displacement $u_1(x,y) = \chi_2(y)$\\
        \hline
    \end{tabular}
\end{center}

Es funktioniert gut für die Textzeilen, aber mit dem Array/der Matrix darin fügt es oben und unten keinen zusätzlichen Platz hinzu, was nicht das ist, was ich erwartet habe. Wenn Sie den \arraystretchWert 3jedoch vergrößern, sehen Sie oben in den Arrays einen Platz, und wenn Sie ihn dann vergrößern, 4sehen Sie den Platz unten.

Hat jemand eine Idee, wie man LaTeX verständlich macht, dass das Array von Leerzeichen umgeben sein soll?

Zusatzfrage: Bei einer großen Zahl für \arraystretch(über 4) erscheint die vertikale Ausrichtung nicht zentriert, sondern etwas weiter unten. Gibt es da eine andere Möglichkeit als tabularx, Minipages etc. zu verwenden?

Antwort1

Sie müssen den Wert von nicht wirklich ändern \arraystretch. Das makecellPaket kann Zeilen vertikal auffüllen. Darüber hinaus können Sie mit dem gleichnamigen Befehl Linien mit variabler Dicke und Zeilenumbrüche innerhalb von Zellen erstellen. Für die Formeln ist es einfacher, die casesUmgebung zu verwenden.

Ich stimme @Micos Kommentaren zur Verwendung des Booktabs-Regelbefehls und keinen vertikalen Regeln zu. Sollten Sie vertikale Regeln verwenden, zeige ich Ihnen, wie Sie solche Tabellen (nach meinem Geschmack!) verbessern können.

\documentclass{article}
\usepackage{array, booktabs}
\usepackage{makecell}
\setcellgapes{3pt}
\usepackage{mathtools}
\begin{document}

\begin{center}
  \makegapedcells
  \begin{tabular}{!{\vrule width 1pt}c|c!{\vrule width 1pt}}
    \Xhline{1pt}
    Problem (1) & Problem (2) \\
    \hline
    $ \begin{cases}
    G_1 = 1\\
    G_2 = 0
    \end{cases}$
     & 
    $ \begin{cases}
    G_1 = 0\\
    G_2 = 1
    \end{cases} $
    \\
    \hline
    \makecell{displacement \\$u_1(x,y) = \chi_1(y)$} & \makecell{displacement \\ $u_1(x,y) = \chi_2(y)$}\\
    \Xhline{1pt}
  \end{tabular}
\end{center}
\vskip1cm
\begin{center}
  \makegapedcells
  \begin{tabular}{@{}cc@{}}
    \toprule
    Problem (1) & Problem (2) \\
    \cmidrule(lr){1-1}\cmidrule(lr){2-2}
    $ \begin{dcases}
    G_1 = 1\\
    G_2 = 0
    \end{dcases}$
                                        &
    $ \begin{cases}
    G_1 = 0\\
    G_2 = 1
    \end{cases} $
    \\
    \addlinespace
    displacement $u_1(x,y) = \chi_1(y)$ & displacement $u_1(x,y) = \chi_2(y)$ \\
    \bottomrule
  \end{tabular}
\end{center}
\end{document}

Bildbeschreibung hier eingeben

Antwort2

Anstatt Zeit damit zu verbringen, den Abstand über und unter verschiedenen \hlines herauszufinden, können Sie einfach die inneren horizontalen Linien (und alle vertikalen Linien) entfernen und die Linienzeichnungsmakros desBuchtabsPaket zum Zeichnen der oberen und unteren Linien. Natürlich können Sie die Anleitung trotzdem verwenden, \renewcommand{\arraystretch}{1.5}wenn Sie möchten.

Bildbeschreibung hier eingeben

Ich hoffe, Sie stimmen mir zu, dass dieses Layoutmindestensgenauso lesbar wie die mit viel mehr vertikalen und horizontalen Linien ...

\documentclass{article}
\usepackage{amsmath}  % for 'cases' environment
\usepackage{booktabs} % for \toprule, \bottomrule, and \addlinespace macros
\begin{document}
\begin{center}
\renewcommand{\arraystretch}{1.5}
    \begin{tabular}{@{}cc@{}}
        \toprule
            Problem (1) & Problem (2) \\ \addlinespace
            $\begin{cases}
               G_1 = 1\\G_2 = 0
             \end{cases}$
            &
            $\begin{cases}
               G_1 = 0\\G_2 = 1
             \end{cases}$ \\ \addlinespace
            displacement $u_1(x,y) = \chi_1(y)$ & 
            displacement $u_1(x,y) = \chi_2(y)$ \\
        \bottomrule
    \end{tabular}
\end{center}
\end{document}

verwandte Informationen