抑制表格单元格的所有底部填充

抑制表格单元格的所有底部填充

是否有可能在表格环境中完全抑制单元格的所有底部填充?

编辑 2:正如@Joseph Wright 在评论中指出的那样,我有一些杂散的换行符,它们引入了额外的空间。所以@gernot 的答案是正确的。

编辑:我尝试过这些答案,但它们并不总是有效。例如:

\documentclass[10pt]{article}

\usepackage{array}
\usepackage{hyphenat}
\usepackage{geometry}
\geometry{a4paper, portrait, margin=2.5cm}
\usepackage{enumitem}
\setlist{nosep}

\pagenumbering{gobble}

\newenvironment{resume}[1]
    {
        \noindent{\LARGE {\bf {#1}}} \\
        \noindent\makebox[\linewidth]{\rule{\textwidth}{0.2pt}}
        \vspace{-0.2cm} \\
    }
    {   
    }

\newcommand{\rsectionbegin}[1]{
        \renewcommand\arraystretch{0}
        \setbox\strutbox=\hbox{}
        \noindent\begin{tabular}{@{}p{3cm}p{12.5cm}}
        \noindent{\uppercase \nohyphens{#1}}
        &
    }
\newcommand{\rsectionend}{
        \end{tabular}
%       \\
    }

\newcommand{\rwherebegin}[2]{
        {\bf #1}, {#2} \par     
    }
\newcommand{\rwhereend}{
        \vspace{0.25cm}
    }

\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}

\newcommand{\rrole}[2]{
        \vspace{0.15cm}
        \begin{tabular}[t]{@{}p{9cm}R{3.05cm}}
        {\em {#1}} & {\bf {#2}}
        \end{tabular}
    }

\newcommand{\rwhat}[1]{
    {#1} \par
    }

\newcommand{\rskills}[1]{
    ({#1}) \par
    }

\newenvironment{ritemize}
    {
        \begin{itemize}[leftmargin=0.2cm]
    }
    {
        \end{itemize}
    }

\begin{document}
\begin{resume}{L}
\rsectionbegin{A}
\rwherebegin{A}{A}
\rrole{A}{A}
\begin{ritemize}
\item[] A
\item[] A
\end{ritemize}
\rrole{A}{A}
\rwhereend
\rsectionend
\rsectionbegin{X}
Y
\rsectionend

\end{resume}

\end{document}

这仍然在 Y 和前面的文本之间留有空格。我是否应该使用不同的环境或包?

答案1

给定一个普通tabular环境,您可以设置\arraystretch0消除单元格之间的距离。使用命令添加空间\\最终会位于上方\hline(如果存在),即看起来像单元格底部的空间。但是,您可以添加支柱。

在此处输入图片描述

\documentclass{article}
\parindent0em
\parskip1ex
\begin{document}

Setting \verb"\arraystretch" to 0.

\renewcommand\arraystretch{0}
\begin{tabular}{c}
  A\\B\\C\\D\\E
\end{tabular}

Adding distance between rows using \verb"\\[...]" appears to end up
again below the cell.

\begin{tabular}[t]{c}
  A\\
  B\\[1ex]
  C\\[3ex]
  D\\
  E
\end{tabular}
\qquad
\begin{tabular}[t]{c}
  A\\\hline
  B\\[1ex]\hline
  C\\[3ex]\hline
  D\\\hline
  E
\end{tabular}

But we can insert an invisible rule that extends from the base line
upwards.

\newcommand\spaceabove[1]{\rule{0em}{#1}}
\begin{tabular}[t]{c}
  A\\\hline
  B\\\hline
  \spaceabove{3ex}%
  C\\\hline
  \spaceabove{5ex}%
  D\\\hline
  E
\end{tabular}
\qquad
\begin{tabular}[t]{c}
  A\\\hline
  B\\\hline
  \spaceabove{3ex}%
  C\\\hline
  \spaceabove{5ex}%
  D\\\hline
  E
\end{tabular}
\end{document}

答案2

LaTeXtabular构造在单元格开头插入材料,以确保它们具有最小高度:这是由 设置的\strutbox。您可以将其设置为一个空框以抑制此

\documentclass{article}
\begin{document}
\setlength\fboxsep{0pt}%
\setbox\strutbox=\hbox{}
\fbox{%
  \begin{tabular}{@{}c@{}}
  \fbox{a}
  \end{tabular}%
}
\end{document}

尽管这样做是为了避免不同行有不同的高度!

相关内容