使用 paralist 包在表格列中包含分项列表

使用 paralist 包在表格列中包含分项列表

paralist 包提供了排版长度为零的逐项列表的选项\topsep,这在表格设置中特别有用。但是,以下最小示例似乎没有像使用 pdflatex 编译时预期的那样删除第二列顶部的空格。

\documentclass{article}
\usepackage{paralist}
\setlength{\pltopsep}{0pt}
\setlength{\plpartopsep}{0pt}

\begin{document}
\begin{tabular}{p{20mm} p{50mm}}
  Itemize: & {%
  \begin{compactitem}
    \item First item
  \end{compactitem}}\\
  Enumerate: & {% 
  \begin{enumerate}
    \item First item
  \end{enumerate}}\\
  Description: & {%
  \begin{description}
    \item[Descriptor] First item
  \end{description}}\\
\end{tabular}
\end{document

有人能解释一下如何让第二列的第一行与第一列的第一行对齐吗?

我可以使用相应列表环境前的否定词来解决问题\vspace,但我想要一个更优雅的解决方案,我认为 paralist 应该提供这个解决方案。

答案1

在 minipage 中,不会插入这个不需要的顶部空间。因此,类似于防止 itemize 环境插入初始垂直空间,您可以插入\@minipagetrue到相应的单元格中:

\usepackage{array}
\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother
\begin{tabular}{p{20mm}>{\compress}p{50mm}}
...

您的示例代码已由此修复,各行排列如下:

列表示例

或者,您可以为此定义一个列类型:

\usepackage{array}
\makeatletter
\newcolumntype{P}[1]{>{\@minipagetrue}p{#1}}
\makeatother

相关内容