Removing space in table with itemize environment

Use a dedicated column type for this (originally posted by Donald Arseneau on c.t.t.)

\documentclass{article}
\usepackage{array,booktabs}
%---- Itemized columns
\makeatletter
\newcolumntype{i}[1]{%
    >{\minipage[t]{\linewidth}\let\\\tabularnewline
      \itemize
      \addtolength{\rightskip}{0pt plus 50pt}% for raggedright
      \setlength{\itemsep}{-\parsep}}%
    p{#1}%
    <{\@finalstrut\@arstrutbox\enditemize\endminipage}}
\makeatother

\begin{document}
\begin{tabular}{l|i{0.6\textwidth}}
    \toprule
    \textbf{SB Solution Component} &  \multicolumn{1}{p{0.6\textwidth}}{\textbf{BB Data Satisfied}} \\
    \midrule
    \textbf{Registration Module}   &  \item Capability List
                                      \item Representation List \\
    \midrule
    \textbf{Sensing Data Module}   &  \item Ready Signal        \\
    \midrule
    \textbf{Contexts Module}       &  \item Control List
                                      \item Contexts            \\
    \bottomrule
\end{tabular}
\end{document}

enter image description here


This seems to be related to the way that paragraph boxes work in columns of the tabular environment. I don't understand if it's a bug or a feature; someone with a better understanding of tabular should see it.

For a less hacky solution than @Adam's, I suggest that you use a minipage instead of a p column in tabular. Define:

\newcommand{\fu}[1]{%
  \begin{minipage}[t]{0.6\textwidth}%
  \begin{itemize}[nosep]%
    #1%
  \end{itemize}%
  \end{minipage}}

Then, change your tabular to:

\begin{tabular}{l|l}

(I don't believe your [htbp] there was necessary.)

result