数组周围的表格空格不正确

数组周围的表格空格不正确

我在论坛上搜索了一下,但没有找到令人满意的解决方案。

我想创建一个表格,在其中比较两种不同的情况,比较的一行是一个数组/矩阵。我希望表格的间距稍微大一点,因为一切都太紧了。所以我使用了\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、minipages 等之外还有其他选择吗?

答案1

您实际上不需要更改 的值\arraystretch。该makecell包可以为行提供一些垂直填充此外,您还可以使用同名命令来设置具有可变厚度的规则以及单元格内的换行符。对于公式,使用环境更简单cases

我同意 @Mico 关于使用 booktabs 规则命令和不使用垂直规则的评论。如果您使用垂直规则,我会向您展示如何改进(符合我的口味!)此类表格。

\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

而不是花时间弄清楚各种上方和下方的间距\hlines 上方和下方的间距,只需删除内部水平线(以及所有垂直线)并使用书签包来绘制顶部和底部的线条。当然,\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}

相关内容