[Tex/LaTex] Remove whitespace above and below itemize in a table

enumitemitemizelistsspacingtables

I have a table where some cells contain a bulleted list produced by itemize. I want to present these lists in a compact way. I use the enumitem package and \setlist[itemize]{nosep} (plus other parameters to reduce horizontal space but they're irrelevant here so I didn't include them in my MWE).

I'm still getting unwanted whitespace above and below the list, when it's the sole item in a cell (but not when there's text above/below). How can I get rid of this unwanted vertical space?

I'd like the first line of the list item to be aligned with the first line of a plain text cell in the same row of the table, or close enough.

Not acceptable: merely faking the bullets, because some items are multiline and I do want the indentation. I won't have nested lists, so redoing the bullets and the indentation of subsequent lines without invoking the itemize environment would be ok.

image of MWE

\documentclass{article}
\usepackage{enumitem}
\begin{document}
\setlist[itemize]{nosep,topsep={0pt},partopsep={0pt}}

Too much space before and after \verb`itemize`:

\begin{tabular}{p{5em}p{15em}p{5em}}
  \hline
  wibble \par wobble \par wubble &
  \begin{itemize}
  \item something
  \item something else, which can span multiple lines
  \end{itemize} &
  \begin{itemize}
  \item hello
  \item world
  \item more
  \end{itemize}
  \\ \hline
  wibble \par wobble \par wubble &
  \begin{itemize}
  \item something
  \item something else, which can span multiple lines
  \end{itemize} &
  \begin{itemize}
  \item hello
  \item world
  \item more
  \end{itemize}
  even more
  \\ \hline
\end{tabular}

\bigskip

Approximate desired visual effect:

\begin{tabular}{p{5em}p{15em}p{5em}}
  \hline
  wibble \par wobble \par wubble &
  \vspace{-0.5\baselineskip}
  \begin{itemize}
  \item something
  \item something else, which can span multiple lines
  \end{itemize}
  \vspace{-0.7\baselineskip}
  &
  \vspace{-0.5\baselineskip}
  \begin{itemize}
  \item hello
  \item world
  \item more
  \end{itemize}
  \vspace{-0.7\baselineskip}
  \\ \hline
\end{tabular}
\end{document}

Best Answer

For example, replace itemize environment by something more understandable:

\def\doitems{\def\item{\par
   \noindent\hbox to1.5em{\hss$\bullet$\hss}\hangindent=1.5em }}

\begin{tabular}{p{5em}p{15em}p{5em}}
  \hline
  wibble \par wobble \par wubble &
  \doitems   
  \item something
  \item something else, which can span multiple lines &
  \doitems 
  \item hello
  \item world
  \item more
  \\ \hline
  wibble \par wobble \par wubble &
  \doitems
  \item something
  \item something else, which can span multiple lines & 
  \doitems
  \item hello
  \item world
  \item more
  \par
  even more
  \\ \hline
\end{tabular}
Related Question