我一直在尝试在表格中使用项目列表。这很容易做到,但我找不到一种方法来像表格中的纯文本一样对齐它们。让我举个例子:
\documentclass{article}
\usepackage{paralist}
\begin{document}
\begin{tabular}{|p{2cm}|p{10cm}|}
\hline
Blah blah &
\begin{compactitem}
\item First
\item Second
\end{compactitem} \\
\hline
\end{tabular}
\end{document}
我使用了 itemize 而不是 itemize,paralist
这样列表会更紧凑,但是列表前后仍然会添加大量空间。结果看起来很糟糕,我希望“Blah Blah”周围的间距与右侧单元格中项目周围的间距相同。
我还发现了一些减少单元格上部或下部空间的技巧\hline
,但这些技巧都无法与纯文本的对齐相匹配。
答案1
赫伯特 (Herbert) 正确地\@minipagetrue
消除了顶部的空间,但我发现消除底部和顶部空间的最干净的方法是使用实际minipage
环境。
我将使用enumitem
用nosep
而不是 而不是paralist
并且这是compactitem
因为我想使用enumitem
的after
选项。
\documentclass{article}
\usepackage{enumitem}
\begin{document}
\begin{tabular}{|p{2cm}|p{10cm}|}
\hline
Blah blah &
\begin{minipage}[t]{\linewidth}
\begin{itemize}[nosep,after=\strut]
\item First
\item Second
\end{itemize}
\end{minipage} \\
\hline
\end{tabular}
\end{document}
结果:
请注意,我遇到过在列表下方添加不必要空间的情况after=\strut
。如果您遇到这种情况,请尝试完全移除支柱,看看布局是否正常。
进一步说明:
不能/不想指定最大宽度
minipage
?请尝试varwidth
相反,如果可能的话,它将水平缩小框:% Preamble: \usepackage{varwidth} % ...then, instead of minipage, use varwidth... \begin{varwidth}[t]{\linewidth} \begin{itemize}[nosep,after=\strut] \item First \item Second \end{itemize} \end{varwidth} \
如果你不想反复输入,可以使用
enumitem
's 。例如:\newlist
\begin{itemize}[nosep,after=\strut]
% Preamble: \newlist{tabitemize}{itemize}{1} \setlist[tabitemize]{label=\textbullet,nosep,after=\strut} % ...then, in your table cell... \begin{minipage}[t]{\linewidth} \begin{tabitemize} \item First \item Second \end{tabitemize} \end{minipage} \
如果你打算在表格的某一列中多次执行此操作,这个答案展示了如何创建紧凑列表列类型。(Donald Arseneau 的解决方案是我弄清楚该怎么做的关键
\strut
。)如果你有兴趣,这个答案中的评论解释为什么
minipage
要去掉顶部的空间。
答案2
\documentclass{article}
\usepackage{paralist,array}
\makeatletter\let\MPtrue\@minipagetrue\makeatother
\begin{document}
\begin{tabular}{|p{2cm}|p{10cm}|}
\hline
Blah blah & \MPtrue
\begin{compactitem}
\item First
\item Second
\end{compactitem} \\\hline
\end{tabular}
\end{document}
答案3
您也可以使用enumitem
包。使用它,您可以以键值对的形式访问各种有用的设置:
\usepackage{enumitem}
\begin{document}
\begin{tabular}{|p{2cm}|p{10cm}|}
\hline
Blah blah & \begin{itemize}[topsep=-0.5cm]\item First \item Second \end{itemize} \\
\hline
\end{tabular}
\end{document}
如果这还不够,您可以用 手动删除空格\vspace*{-1.5mm}
。Asterix 确保添加空格(在本例中,由于数字为负数,因此删除)。
\documentclass[a4paper]{article}
\usepackage{enumitem}
\begin{document}
\begin{tabular}{|p{2cm}|p{10cm}|}
\hline
Blah blah & \vspace*{-0.2cm}\begin{itemize}[topsep=-0.5cm,leftmargin=0.3cm]\item a \item b \end{itemize}\\
\hline
\end{tabular}
\end{document}
答案和结果在我看来都很糟糕。