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