考虑
\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
您可以使用before
和after
选项来根据需要调整列表前后的空间:
\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}