为什么表格中列举的项目周围要留有空格?

为什么表格中列举的项目周围要留有空格?

我对表格中的项目有疑问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} 

在此处输入图片描述

相关内容