行填充,逐行

行填充,逐行

这是我的 MWE,几乎正确……除了顶行多余的填充,我想将其减少到 0.2 厘米。其余部分,我想保持在 1.5 厘米。

\documentclass[12pt,letterpaper]{article}

\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage{tabularx}

\begin{document}

{
\setlength{\extrarowheight}{1.5cm} 

\begin{tabularx}{8cm}{|p{2.5cm}|p{2.5cm}|X|}  \hline

Top Left & Top Middle & Top Right \\ [0.2cm] \hline

Bottom Left & Bottom Middle & Bottom Right \\ [0.2cm] \hline

\end{tabularx}
}

\end{document}

此主题显示了如何为表格中的所有行指定单元格上方的垂直填充量。但是,如果各行需要不同的填充量怎么办?(我正在制作学生将用铅笔书写的工作表。)

PS 这是我在 StackExchange 上的第一篇帖子,或者说是我有史以来第一篇帖子之一。我也是 LaTeX 新手。如果有更好的提问方式,请告诉我,我会编辑此帖子。谢谢!

答案1

解决此问题的一个简单但手动的方法是将定义的值减少到\extrarowheight0.2cm,然后在每行上方手动添加一个 1.1cm(1.1cm + 2 * 0.2cm = 1.5cm)的空行,每个行需要 1.5cm 的顶部填充。

但是这种方法也有一些局限性。因为默认情况下表格行的高度有一个最小值(参见表格中的列和行填充),使用此方法可以添加的最小填充受 限制\baselineskip。但是,可以按照此处所述减少此值:如何使表格中的一行变短?

下面是一个 MWE,展示了如何做到这一点:

\documentclass[12pt,letterpaper]{article}

\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage{tabularx}

\begin{document}

\begin{table}
    \centering  
    \setlength{\extrarowheight}{0.2cm}  
    \begin{tabularx}{8cm}{|p{2.5cm}|p{2.5cm}|X|} \hline

        Top Left & Top Middle & Top Right \\[0.2cm] \hline
        && \\[1.1cm]
        Middle Left & Middle & Middle Right \\[0.2cm] \hline
        && \\[1.1cm]
        Bottom Left & Bottom Middle & Bottom Right \\[0.2cm] \hline

    \end{tabularx}

\end{table}

\end{document}

其结果是:

在此处输入图片描述

更新(2015-07-27):

以下是根据以下宏得出的更新解决方案:如何使表格中的一行变短?。它包含一个新命令,允许逐行添加给定高度的额外自定义行填充。

\documentclass[12pt,letterpaper]{article}
\usepackage{tabularx}

% Modified from :
% https://tex.stackexchange.com/questions/84524/
% how-to-make-a-row-in-a-table-shorter/84536#84536

\makeatletter
\newsavebox\saved@arstrutbox
\newcommand*{\setarstrut}[1]{%
  \noalign{%
    \begingroup
      \global\setbox\saved@arstrutbox\copy\@arstrutbox
      \global\setbox\@arstrutbox\hbox{%
        \vrule \@height #1
               \@depth  0cm
               \@width\z@
      }%
    \endgroup
  }%
}
\newcommand*{\restorearstrut}{%
  \noalign{%
    \global\setbox\@arstrutbox\copy\saved@arstrutbox
  }%
}
\makeatother

% New command to add an extra custom padding at the top of a row.
% Basically, it adds an empty row with the height value
% defined in the command.

% \paddingtop{height}{content}

\newcommand{\paddingtop}[2]{\setarstrut{#1} #2 \\ \restorearstrut}

\begin{document}

    \begin{tabularx}{8cm}{|p{2.5cm}|p{2.5cm}|X|} \hline
        \paddingtop{0.2cm}{&&}
        Top Left & Top Middle & Top Right \\[2mm] \hline
        \paddingtop{1.5cm}{&&}
        Middle Left & Middle & Middle Right \\[2mm] \hline
        \paddingtop{5.cm}{&&}
        Bottom Left & Bottom & Bottom Right \\[2mm] \hline
    \end{tabularx}

\end{document}

结果是:

在此处输入图片描述

相关内容