Неправильное пространство в таблице вокруг массива

Неправильное пространство в таблице вокруг массива

Я немного поискал на форуме, но не смог найти удовлетворительного решения моей проблемы.

Я хочу создать таблицу, в которой я сравниваю две разные ситуации, а строка сравнения — это массив/матрица. Я хочу, чтобы интервал для таблицы был немного больше, потому что все слишком плотно. Поэтому я использую изменение внутри \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}

Это хорошо работает для текстовых строк, но с массивом/матрицей внутри, это не добавляет никакого дополнительного пространства сверху и снизу, что не то, что я ожидал. Если вы увеличите over \arraystretch, 3вы увидите пространство сверху массивов, затем увеличение to 4позволит вам увидеть, как пространство появляется снизу.

Есть ли у кого-нибудь идеи, как заставить LaTeX понять, что массив должен быть окружен пространством?

Дополнительный вопрос: при большом числе для \arraystretch(над 4), вертикальное выравнивание кажется не по центру, а немного внизу. Есть ли какие-то варианты, кроме использования tabularx, мини-страниц и т. д.?

решение1

Вам на самом деле не нужно менять значение \arraystretch. makecellПакет может задать вертикальный отступ строкам. Более того, вы можете иметь правила с переменной толщиной и переносы строк внутри ячеек с помощью одноименной команды. Для формул проще использовать среду cases.

Я согласен с комментариями @Mico об использовании команды booktabs rules и отсутствии вертикальных правил. Если вы используете вертикальные правила, я покажу, как можно улучшить (на мой вкус!) такие таблицы.

\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

Вместо того, чтобы тратить время на выяснение расстояния над и под различными\hline s, вы можете просто избавиться от внутренних горизонтальных линий (и всех вертикальных линий) и использовать макросы рисования линийзакладкипакет для рисования верхней и нижней линий. Конечно, вы все равно можете использовать инструкцию, \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}

Связанный контент