配列の周囲の表内のスペースが正しくありません

配列の周囲の表内のスペースが正しくありません

フォーラムで少し検索してみましたが、問題に対する満足のいく解決策が見つかりません。

2 つの異なる状況を比較する表を作成したいのですが、比較の行は配列/行列です。すべてが狭すぎるため、表の間隔をもう少し広くしたいと思います。そこで、\arraystretchグループ内の変更を使用します。

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

テキスト行にはうまく機能しますが、内部に配列/マトリックスがある場合、上部と下部に追加のスペースが配置されません。これは期待どおりではありません。ただし、 を増やすと\arraystretch3配列の上部にスペースが表示され、 を増やすと、4下部にスペースが表示されるようになります。

配列がスペースで囲まれていることを LaTeX に理解させる方法を誰か知っていますか?

追加の質問: に大きな数値\arraystretch( を超える4) を設定すると、垂直方向の配置が中央揃えにならず、少し下に寄ってしまいます。tabularx、ミニページなどを使用する以外にオプションはありますか?

答え1

の値を変更する必要は実際にはありません\arraystretchmakecellパッケージは行に垂直方向のパディングを与えることができます。さらに、同名のコマンドを使用して、さまざまな太さの罫線やセル内の改行を設定できます。数式の場合は、cases環境を使用する方が簡単です。

私は、booktabs ルール コマンドを使用し、垂直線を使用しないという @Mico のコメントに同意します。垂直線を使用する場合は、このような表を (私の好みに合わせて!) 改善する方法を示します。

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

ここに画像の説明を入力してください

答え2

さまざまなsの上下の間隔を考えるのに時間を費やすのではなく\hline、内側の水平線(およびすべての垂直線)を削除し、ブックタブパッケージを使用して上部と下部の線を描画します。もちろん、\renewcommand{\arraystretch}{1.5}必要に応じてこの命令を使用することもできます。

ここに画像の説明を入力してください

このレイアウトは少なくとも縦線と横線がたくさんあるものと同じくらい読みやすいです...

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

関連情報