我正在尝试在环境中创建一个列表tabularx
。如果我itemize
直接使用,顶部会有一个难看的空间,我想删除它。我找到的解决方案是minipage
在周围使用itemize
,这样我就可以控制顶部边距,但由于minipage
不遵循分页符,所以这并不好。
如何控制itemize
数组单元格内的顶部缩进?
答案1
您无法跨页面拆分单元格;您可以做的是跨行拆分项目环境。
也就是说,您不需要使用 minipage。使用该enumitem
包,我定义了一个tabitemize
环境,该环境会删除单元格开头的垂直空间:
\documentclass[a4paper, 10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[hmargin=2cm]{geometry}
\usepackage{longtable}
\usepackage{ltablex}
\usepackage{booktabs}
\usepackage{helvet}
\usepackage[french]{babel}
\usepackage{enumitem}
\newlist{tabitemize}{itemize}{2}
\setlist[tabitemize]{wide=0pt, label = \textemdash, topsep=0pt, before=\leavevmode\vspace{-\baselineskip}}
\begin{document}
\setlength{\aboverulesep}{0pt}
\setlength{\belowrulesep}{0pt}
\setlength{\extrarowheight}{1ex}
\begin{tabularx}{\linewidth}{p{2.5cm}p{1cm}p{5cm}p{5cm}}
\toprule
\textsf{\textbf{a}} & \multicolumn{3}{X}{Bar}\\\addlinespace
\textsf{\textbf{b}} & Bar\\
\textsf{\textbf{c}} & \textsf{\textbf{d}} & \textsf{\textbf{e}} & \textsf{\textbf{f}}\\
\cmidrule{2-4}
& 1 &
\begin{tabitemize}
\item a
\item b
\end{tabitemize}
& I don’t need to use \texttt{minipage}with the \texttt{tabitemize} environment\\\addlinespace[5mm]
& 2 &
\begin{minipage}[t]{\linewidth}
\begin{itemize}
\item a
\item b
\end{itemize}
\end{minipage}
& And here is the result with \texttt{minipage}\\\addlinespace[5mm]
%
& 3 &
\begin{tabitemize}
\item foo
\item bar
\end{tabitemize}\\
\bottomrule[1.5pt]
\end{tabularx}
\end{document}