我对表格中的项目有疑问enumerate
。请查看以下内容。
尽管我已经习惯使用enumitem
包来消除enumerate
项目周围的所有空格,但它们在表格中时会产生空格。
我怎样才能解决这个问题?
\documentclass{article}
\RequirePackage{enumitem}
\setlist[enumerate]{
itemsep=0pt,
topsep=0pt,
parsep=0pt,
}
\begin{document}
\begin{tabular}{ | p{1\linewidth} |}
\hline
General paragraph\\
\hline
\end{tabular}
\vspace{40pt}
\begin{tabular}{ | p{1\linewidth} |}
\hline
\begin{enumerate}
\item {}
Enumerate item
\end{enumerate}\\
\hline
\end{tabular}
\end{document}
答案1
我建议定义一个新的enumerate
-like 列表,用于tabular
和相关环境。借助before
和,after
您可以删除项目周围的额外空间:
\documentclass{article}
\RequirePackage{enumitem}
\setlist[enumerate]{
itemsep=0pt,
topsep=0pt,
parsep=0pt,
}
\newlist{tabenum}{enumerate}{1}
\setlist[tabenum]{wide=0pt,
nosep,
leftmargin= * ,
label*=\arabic*.,
after=\vspace{-\baselineskip},
before=\vspace{-0.6\baselineskip}}
\begin{document}
\begin{tabular}{ | p{1\linewidth} |}
\hline
General paragraph\\
\hline
\end{tabular}
\vspace{40pt}
\begin{tabular}{ | p{1\linewidth} |}
\hline
\begin{tabenum}
\item Enumerate item
\end{tabenum}\\
\hline
\end{tabular}
\end{document}
答案2
一个变体etoolbox
和一个\compress
借用自该站点答案的命令。
此外,您为列选择的宽度p{..}
没有考虑列间距和垂直规则的宽度,因此会溢出到右边距,正如您从第一个表中看到的那样:
\documentclass{article}
\usepackage{showframe}
\renewcommand{\ShowFrameLinethickness}{0.3pt}
\usepackage{etoolbox}
\usepackage{enumitem}
\usepackage{array}
\setlength{\extrarowheight}{2pt}
\AtBeginEnvironment{tabular}{\setlist[enumerate]{label=(\arabic*), nosep, leftmargin =*, after=\vspace{-\baselineskip}}}
\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother
\begin{document}
\noindent
\begin{tabular}{ | p{1\linewidth} |}
\hline
General paragraph\\
\hline
\end{tabular}
\vspace{40pt}
\noindent
\begin{tabular}{ |>{\compress\arraybackslash}p{\dimexpr1\linewidth-2\tabcolsep-2\arrayrulewidth} |}
\hline
\begin{enumerate}
\item Enumerate item
\item Another enumerate item
\end{enumerate}\\
\hline
\end{tabular}
\end{document}