[Tex/LaTex] Unable to Remove Vertical Space Before and After Lists within longtable

enumitemlistslongtablespacing

All the tricks to remove vertical space before and after itemize lists (using enumitem) seem to work well in table/tabular environments, but not in longtable. The following MWE illustrates the difficulty I'm having to get the First bullet at the same level as the Left item.

\documentclass[letterpaper,12pt]{book}

\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother

\usepackage{enumitem}
\usepackage{longtable}

\begin{document}

\begin{table}
\begin{center}
\begin{tabular}{lp{4cm}}
Header1  &  Header2  \\
Left item  &  
\compress\begin{itemize}[leftmargin=1em,noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt]
 \item First bullet
 \item Second bullet
 \item Third bullet
\end{itemize}  \\
\end{tabular}
\end{center}
\end{table}

\begin{longtable}[htbp]{lp{12.25cm}}
Header1  &  Header2  \\
Left item  &   
\compress\begin{itemize}[leftmargin=1em,noitemsep,topsep=0pt,parsep=0pt,partopsep=0pt]
 \item First bullet
 \item Second bullet
 \item Third bullet
\end{itemize}  \\
\end{longtable}

\end{document}

Here, even the \compress command fails to remove the space in longtable. Note that I need longtable, as some of my lists will be quite long and will need to be split. (Also, I'm not sure why I need to specify a fixed width for the second column ({lp{4cm}}) instead of {ll}.)

Many thanks in advance.

Best Answer

Left item  &
\noindent\par
\vspace{-\baselineskip}
\compress\begin{itemize}

It could be better, but that's how it is, sorry.

To answer your second question an l entry is like \mbox so horizontal mode (LR mode in the LaTeX Book) so does not allow line breaking or display environments like lists.

Related Question