表格中的枚举会产生不必要的垂直空间

表格中的枚举会产生不必要的垂直空间

考虑

\documentclass{article}
\usepackage{enumitem}

\begin{document}

\begin{tabular}{l p{4cm}}
    Head & Content\\
    \hline
    Foo &
    \begin{enumerate}[label={\textbf{\arabic*.}}, itemindent=0pt, leftmargin=*, nosep]
        \item A
        \item B
    \end{enumerate}
    \\
    \hline
\end{tabular}

\end{document}

这会在列表前后产生不必要的垂直空间:

在此处输入图片描述

但是添加周围的文本会按预期呈现:

\begin{tabular}{l p{4cm}}
    Head & Content\\
    \hline
    Foo &
    How does
    \begin{enumerate}[label={\textbf{\arabic*.}}, itemindent=0pt, leftmargin=*, nosep]
        \item A
        \item B
    \end{enumerate}
    this work?
    \\
    \hline
\end{tabular}

在此处输入图片描述

答案1

也许定义一个enumerate用于表格的变体并带有特定参数会更简单。我\compress从这个网站的答案中借用了这个命令:它让 latex 相信列表位于小页面的最开始,因此 latex 不会在列表前添加垂直间距。

我还使用了中的规则booktabs,其中有一些垂直填充和可变的厚度。

\documentclass{article}
\usepackage{enumitem}
\newlist{tabenum}{enumerate}{1}
\setlist[tabenum]{label=\arabic*. ,wide=0pt, leftmargin=*, nosep, itemsep=2pt, font = \bfseries, after=\vspace{-\baselineskip}, before=\compress}
\usepackage{array, booktabs}
\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother

\begin{document}

\begin{tabular}{l p{4cm}}
    Head & Content\\
    \midrule
    Foo &
    \begin{tabenum}
        \item A. Some text some text some text
        \item B
    \end{tabenum}
    \\
    \bottomrule
\end{tabular}

\end{document} 

在此处输入图片描述

答案2

您可以使用beforeafter选项来根据需要调整列表前后的空间:

在此处输入图片描述

\documentclass{article}
\usepackage{enumitem}

\begin{document}

\begin{tabular}{l p{4cm}}
    Head & Content\\
    \hline
    Foo &
    \begin{enumerate}[label={\textbf{\arabic*.}}, itemindent=0pt, leftmargin=*, nosep,after=\vspace{-\baselineskip},before=\vspace{-0.5\baselineskip}]
        \item A
        \item B
    \end{enumerate}
    \\
    \hline
\end{tabular}

\end{document}

相关内容