# Eliminate space at end of list in a table

I have a tabular environment, created with array loaded and using m columns, the cells of which mostly contain lists. In cells with a list, there is about 1em of dead space at the end of the list before the bottom of the cell (in the cell with the largest contents which sets the row size). I am trying to get rid of this space, to no avail. I am using a custom itemize* environment that sets \topsep, \parskip, and \partopsep all to 0pt at the beginning (immediately after \begin{itemize}). This eliminates internal spacing but not the end spacing. I also have it setting \@noparlisttrue, but to no avail. Here's my itemize* definition:

\newenvironment{itemize*}{\begin{itemize}%
\setlength\topsep{0pt}%
\setlength\itemsep{-2pt}%
\setlength\parskip{0pt}%
\setlength\partopsep{0pt}%
\@noparlisttrue}{\end{itemize}}


I've tried setting \topsep, \parskip, and \partopsep before the \begin{itemize*} in my table cell as well, but I still have the blank space.

Tracing and Phillipe's comment indicate that it is invoking \par at the end of the list and this is causing the whitespace. Including \setlength\parskip{0pt} or \setlength\parskip{-\baselineskip} before \begin{itemize*} or before \end{itemize*} do not eliminate the space.

How can I get rid of it?

-
You may want to try loading the enumerate package and using the compactenum environment, rather than itemize. With compactenum, you have to define your item label by passing an optional argument at the beginning of the environment declaration. compactenum nicely takes care of unnecessary dead space. Does this work for you? –  Jimi Oke Dec 13 '10 at 22:58
your \setlength\topsep has no effect where it is placed, but that's not the problem here. In fact, \end{itemize} calls a \par and that's what is causing the blank line. Even a simple code as \begin{tabular}{|p{5cm}|}text\par\end{tabular} has the problem, so it doesn't seem to be a list problem at all. –  Philippe Goutet Dec 13 '10 at 23:26
@Philippe I had suspected that the \par was the issue. I'd tried to suppress \par with the \@noparlisttrue, but there was still one \par emitted. How can I suppress \par's whitespace? Putting \setlength\parskip{0pt} before \begin or right before \end don't do it. –  Michael Ekstrand Dec 14 '10 at 1:39
@Jimi: you probably mean paralist and compactitem. –  Stefan Kottwitz Dec 14 '10 at 1:40
@Stefan: Ah, indeed, I meant paralist! Funny enough, I've always used compactenum, though. That's why I've always had to specify my item label. But, yes, compactitem does the job even better, since it automatically includes the bullets. –  Jimi Oke Dec 14 '10 at 2:33

You could avoid that additional space by putting the itemize* environment into a \parbox, even if it's already in a p cell. A minipage would also work.
Such a minipage environment could also be inserted into your definition of \itemize*. However, a width is mandatory. If the width is variable, it might mean additional work.
If you need a quick fix: \vspace{-2em} or any other suitable negative value, directly after \end{itemize} in your definition, would remove empty space at the bottom.
Thanks, that did it. This does yield some more confusion, as the m and p styles are documented as being (roughly) equivalent to a \parbox, but this must be a piece excluded by 'roughly equivalent'? –  Michael Ekstrand Dec 14 '10 at 2:37
@Michael: yes, it is. It's funny that a \parbox within a p-cell does it. One could use it work out another fix for space problem, for me the night is just half over... –  Stefan Kottwitz Dec 14 '10 at 2:46