在我的表格中添加“再多一点”填充?

在我的表格中添加“再多一点”填充?

我有一张类似于矩阵的表格,但多了一些强调的线条。该表格还可能包含frac{}确实适合单元格但有点“碰到”边界的项目。

问题是,我有不少这样的表格。有没有一种简单的方法可以增加所有这些表格的填充?可能不用触及每一张表格?

一张说明该问题的图片: 注意例如 (x5|x3) 看起来很奇怪

其来源如下:

\begin{tabular}{c||c|c|c||c|c|c|c||c|c}
        & $x_1$ & $x_2$ & $x_3$            & $x_4$           & $x_5$ & $x_6$ & $x_7$ & RS     & Q     \\ \hline \hline
  $x_2$ & 0     & 1     & $\frac{1}{3}$    & $\frac{1}{3}$   & 0     & 0     & 0     & 50     & 150   \\ \hline
  $x_5$ & 0     & 0     & $\frac{5}{6}$    & $-\frac{2}{3}$  & 1     & 0     & -0.5  & 20     & 24    \\ \hline
  $x_6$ & 0     & 0     & $\frac{1}{12}$   & $-\frac{2}{3}$  & 0     & 1     & -0.25 & 25     & 300   \\ \hline
  $x_1$ & 1     & 0     & 0.25             & 0               & 0     & 0     & 0.25  & 25     & 100   \\ \hline \hline
  $-z$  & 0     & 0     & $\frac{79}{120}$ & $\frac{23}{30}$ & 0     & 0     & -0.575& -172.5 &
\end{tabular}

答案1

另一个答案中已经提到了更改乘法参数的可能性\arraystretch。为了完整起见,我认为也有必要提及加法参数\extrarowheight,其使用方法如下:

\usepackage{array}
\setlength\extrarowheight{2pt} % or whatever amount is appropriate

如果将这些命令包含在文档的前言中,所有和类似arraytabular环境(例如tabular,,,,等)都会受到它们的影响。tabular*tabularxlongtable

我忍不住要对表格的其他方面发表一些评论。首先,所有这些水平线和垂直线使表格看起来非常繁琐;然而,大量的线条可能并没有给表格的可读性带来多大提升。因此,我建议删除所有单垂直线和单水平线,并将所有双线改为单线。其次,当表格中包含数字信息时,以易于阅读的方式对齐数字非常重要。例如,带小数点的数字应在小数点处对齐;如果有些数字是负数,有些是正数,则以强调这一事实的方式对齐它们会很有帮助。

那么,我建议您这样呈现表格:

在此处输入图片描述

\documentclass{article}
\usepackage{dcolumn} % automatically loads the 'array' package
\newcolumntype{d}[1]{D{.}{.}{#1}}
\setlength{\extrarowheight}{2pt}

\begin{document}
$ \begin{array}{c | c c c | r c c d{2.3} | d{4.1} r @{}}
    & x_1 & x_2 & x_3 & x_4 & x_5 & x_6
    & \multicolumn{1}{c|}{x_7} & \multicolumn{1}{c}{RS} & Q \\ 
\hline
x_2 & 0 & 1 & \frac{1}{3}  &  \frac{1}{3} & 0 & 0 &  0    & 50 & 150\\
x_5 & 0 & 0 & \frac{5}{6}  & -\frac{2}{3} & 1 & 0 & -0.5  & 20 & 24 \\
x_6 & 0 & 0 & \frac{1}{12} & -\frac{2}{3} & 0 & 1 & -0.25 & 25 & 300\\
x_1 & 1 & 0 & 0.25         & 0          & 0 & 0 &  0.25 & 25 & 100\\ 
\hline
-z  & 0 & 0 & \frac{79}{120} & \frac{23}{30} & 0 & 0 & -0.575 & -172.5 &
\end{array} $
\end{document}

答案2

如果您\arraystretch在序言中使用该参数,则所有表都将遵循该设置,如下所示

\documentclass{article}
\renewcommand{\arraystretch}{1.5}
\begin{document}
\begin{table}%
\centering
\begin{tabular}{c||c|c|c||c|c|c|c||c|c}
        & $x_1$ & $x_2$ & $x_3$            & $x_4$           & $x_5$ & $x_6$ & $x_7$ & RS     & Q     \\ \hline \hline
  $x_2$ & 0     & 1     & $\frac{1}{3}$    & $\frac{1}{3}$   & 0     & 0     & 0     & 50     & 150   \\ \hline
  $x_5$ & 0     & 0     & $\frac{5}{6}$    & $-\frac{2}{3}$  & 1     & 0     & -0.5  & 20     & 24    \\ \hline
  $x_6$ & 0     & 0     & $\frac{1}{12}$   & $-\frac{2}{3}$  & 0     & 1     & -0.25 & 25     & 300   \\ \hline
  $x_1$ & 1     & 0     & 0.25             & 0               & 0     & 0     & 0.25  & 25     & 100   \\ \hline \hline
  $-z$  & 0     & 0     & $\frac{79}{120}$ & $\frac{23}{30}$ & 0     & 0     & -0.575& -172.5 &
\end{tabular}
\caption{Some table}
\label{tab:1}
\end{table}
\end{document}

在此处输入图片描述

要使此更改保持局部性,您可以简单地将其放置在环境中table,而不是前导码中,例如,就在\centering命令之后。这将导致全局设置中的临时更改。

答案3

正如所提到的相关答案arraystretch引入了单元格内容垂直对齐的问题。

解决方案cellspace是:

  1. 将以下内容放入序言中:

    % Add vertical padding within each tabular cell.
    \usepackage[math]{cellspace}
        \cellspacetoplimit 4pt
        \cellspacebottomlimit 4pt
    
  2. 使用列说明符Sl, Sc, Sr, Sp{...}代替l, c, r, p

    (除非您正在使用siunitx包,在这种情况下使用Cl, Cc, Cr, Cp{...}。这是因为siunitx包有自己的S列类型,并注意cellspace将的列类型重命名为C。虽然似乎有些问题Cp{...},但似乎。)

比较:

在此处输入图片描述

上述代码:

\documentclass{article}

% Add vertical padding within each tabular cell.
\usepackage[math]{cellspace}
    \cellspacetoplimit 4pt
    \cellspacebottomlimit 4pt

\begin{document}
Default:

    \begin{tabular}{|l|l|} \hline
    $\Upsilon_3$    & Description [Units] \\\hline
    $\Pi_i$         & Description [Units] \\\hline
    \end{tabular}

    \vspace{2em}

Arraystretch:

    {\renewcommand{\arraystretch}{2}
    \begin{tabular}{|l|l|} \hline
    $\Upsilon_3$    & Description [Units] \\\hline
    $\Pi_i$         & Description [Units] \rule{1em}{1em} \\\hline
    $\Pi_i$         & Description [Units] \rule{1em}{2em} \\\hline
    $\Pi_i$         & Description [Units] \rule{1em}{3em} \\\hline
    $\Pi_i$         & Description [Units] \rule{1em}{4em} \\\hline
    $\Pi_i$         & Description [Units] \rule{1em}{5em} \\\hline
    \end{tabular}}


With \verb|cellspace| (don't forget the \verb|Sl| cell specifiers):

    \begin{tabular}{|Sl|Sl|} \hline
    $\Upsilon_3$    & Description [Units] \\\hline
    $\Pi_i$         & Description [Units] \\\hline
    \end{tabular}

    \vspace{2em}

    \begin{tabular}{|Sl|Sl|} \hline
    $\Upsilon_3$    & Description [Units] \\\hline
    $\Pi_i$         & Description [Units] \rule{1em}{1em} \\\hline
    $\Pi_i$         & Description [Units] \rule{1em}{2em} \\\hline
    $\Pi_i$         & Description [Units] \rule{1em}{3em} \\\hline
    $\Pi_i$         & Description [Units] \rule{1em}{4em} \\\hline
    $\Pi_i$         & Description [Units] \rule{1em}{5em} \\\hline
    \end{tabular}
\end{document}

答案4

https://texfaq.org/FAQ-struttab讨论该问题。

它提到了 booktabs.sty、cellspace.sty、makecell.sty 和 tabls.sty

当然,通过使用所有这些水平规则,你确实会让问题看起来“超级糟糕”。booktabs 的文档解释了为什么它们并不像 Lamport 在乳胶书中想象的那么好。

相关内容