# Itemize in latex table with multicolumn and uneven number of columns

I am trying to create a latex table as the one shown below and looking for any help possible as I am stuck.

However, the result that I have come to is really bad and I'm pretty much stuck. the MWE gives me somthing that is somewhat an ugly compromise and have the following problems:

• I'm not able to put in an itemize in a multicolum cell, so I can utilize the full space of the row.
• The coloured cell does not have a \hline
• I have not control of where to put the vertical lines that mark up the cells.
• I have tried normal itemize but did not work, so I used a tabitem environment as given in bullet in table not aligned

Ideally, I would have wanted a 3 column table with multicolumns spanding 1.5 columns with itemize inside, but as I could not find any solution to this I made like that. Anyway, any help in making it look as the 'golden sample' above is very much appreciated!

\documentclass{article}

\usepackage{xcolor,colortbl}
\usepackage{paralist}
\usepackage{booktabs}
\newenvironment{tabitem}{%
\vspace*{-0.5\baselineskip}%
\setdefaultitem{\normalfont\bfseries\textbullet}%
{\normalfont\bfseries\textendash}{}{}%
\setdefaultleftmargin{1.1em}{1.1em}{}{}{}{}%
\begin{compactitem}%
}{%
\end{compactitem}%
\vspace*{-\baselineskip}%
}

\begin{document}

\begin{table}

\begin{tabular}{|p{0.16\textwidth}p{0.16\textwidth}p{0.16\textwidth}p{0.16\textwidth}p{0.16\textwidth}p{0.16\textwidth}|}
\bottomrule
\multicolumn{6}{|c|}{\textbf{Work system snapshot}}\\ \hline

\multicolumn{3}{|c|}{\cellcolor{black!25}Customers} & \multicolumn{3}{c|}{\cellcolor{black!25}Products \& services}\\ \hline

\multicolumn{3}{|l|}{People who have a need for the Smartdevice} & &
\begin{tabitem}
\item smartdevice in white
\item smartdevice in black \end{tabitem} & \\ \hline

\multicolumn{6}{|c|}{\cellcolor{black!25}Major activities or processes}\\ \hline

\begin{tabitem}
\item Procurement
\item  Inventory Management
\item sales
\item Manufacturing
\item Billing system \end{tabitem} &&&&& \\ \hline

\multicolumn{2}{|l|}{\cellcolor{black!25}Participants} & \multicolumn{2}{l|}{\cellcolor{black!25} Information} & \multicolumn{2}{l|}{\cellcolor{black!25}Technologies} \\ \hline

\begin{tabitem}
\item Owner
\item  Employees
\item  Customers
\item Users
\end{tabitem}
&&
\begin{tabitem}
\item BOM
\item Order database which consist of: sales-, purchase and production orders)
\item Inventory information
\end{tabitem}
&&
\begin{tabitem}
\item ERP system
\item ME \& MII system
\item Web interface
\end{tabitem} & \\ \toprule[0.2em]

\end{tabular}

\end{table}
\end{document}


• surprised that no one has noticed the original model is setting the cells ragged right. that improves the appearance by a lot. Dec 29, 2017 at 21:11
• I just changed that when I implemented the solution. But you're absolutely right.
– LRO
Dec 30, 2017 at 9:19

You could use something like the following:

\documentclass{article}
\usepackage{xcolor,colortbl}
\usepackage{enumitem}
\newlist{tabitemize}{itemize}{1}
\setlist[tabitemize]{label=\textbullet,nosep,after=\strut,align=parleft,leftmargin=*,}

\usepackage{calc}
\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1\textwidth-2\tabcolsep-0.6pt}}
\begin{document}
\noindent
\begin{tabular}{|*6{P{0.16}}|}
\hline
\multicolumn{6}{|c|}{\textbf{Work system snapshot}}\\ \hline
\rowcolor{black!25}\multicolumn{3}{|c}{Customers} & \multicolumn{3}{|c|}{Products \& services}\\ \hline
\multicolumn{3}{|P{0.5}}{
\begin{tabitemize}
\item People who have a need for the Smartdevice
\end{tabitemize}} &
\multicolumn{3}{|P{0.5}|}{
\begin{tabitemize}
\item smartdevice in white
\item smartdevice in black
\end{tabitemize}}\\ \hline
\rowcolor{black!25}\multicolumn{6}{|c|}{Major activities or processes}\\ \hline
\multicolumn{3}{|P{0.5}}{
\begin{tabitemize}
\item Procurement
\item inventory management
\item Sales
\end{tabitemize}} &
\multicolumn{3}{P{0.5}|}{
\begin{tabitemize}
\item Manufactoring
\item Billing System
\end{tabitemize}}\\ \hline
\rowcolor{black!25}\multicolumn{2}{|c|}{Participants} & \multicolumn{2}{c|}{Information} & \multicolumn{2}{c|}{Technologies}\\ \hline
\multicolumn{2}{|P{0.33}|}{
\begin{tabitemize}
\item Owner
\item  Employees
\item  Customers
\item Users
\end{tabitemize}} &
\multicolumn{2}{P{0.33}|}{
\begin{tabitemize}
\item BOM
\item Order database which consist of: sales-, purchase and production orders)
\item Inventory information
\end{tabitemize}} &
\multicolumn{2}{P{0.33}|}{
\begin{tabitemize}
\item ERP system
\item ME \& MII system
\item Web interface
\end{tabitemize}}\\ \hline

\end{tabular}
\end{document}


To decresae vertical spaces above and below the items, you can add something like ,after=\vspace{-\baselineskip},before=\vspace{-0.5\baselineskip} to the \setlist command.

Here are some additional alternative approaches, as you don't really need all the vertical lines to make your table understandable:

\documentclass{article}
\usepackage{booktabs}
\usepackage{enumitem}
\newlist{tabitemize}{itemize}{1}
\setlist[tabitemize]{label=\textbullet,nosep,after=\strut,align=parleft,leftmargin=*,after=\vspace{-\baselineskip},before=\vspace{-0.75\baselineskip}}

\usepackage{calc}
\usepackage{array}
\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1\textwidth-2\tabcolsep}}

\begin{document}
\noindent
\begin{tabular}{*6{P{0.16}}}
\toprule
\multicolumn{6}{c}{\textbf{Work system snapshot}}\\
\midrule
\multicolumn{3}{l}{Customers} & \multicolumn{3}{l}{Products \& services}\\
\midrule
\multicolumn{3}{P{0.5}}{
\begin{tabitemize}
\item People who have a need for the Smartdevice
\end{tabitemize}} &
\multicolumn{3}{P{0.5}}{
\begin{tabitemize}
\item smartdevice in white
\item smartdevice in black
\end{tabitemize}}\\
\midrule
\multicolumn{6}{c}{Major activities or processes}\\
\midrule
\multicolumn{3}{P{0.5}}{
\begin{tabitemize}
\item Procurement
\item inventory management
\item Sales
\end{tabitemize}} &
\multicolumn{3}{P{0.5}}{
\begin{tabitemize}
\item Manufactoring
\item Billing System
\end{tabitemize}}\\
\midrule
\multicolumn{2}{l}{Participants} & \multicolumn{2}{l}{Information} & \multicolumn{2}{l}{Technologies}\\
\midrule
\multicolumn{2}{P{0.33}}{
\begin{tabitemize}
\item Owner
\item  Employees
\item  Customers
\item Users
\end{tabitemize}} &
\multicolumn{2}{P{0.33}}{
\begin{tabitemize}
\item BOM
\item Order database which consist of: sales-, purchase and production orders)
\item Inventory information
\end{tabitemize}} &
\multicolumn{2}{P{0.33}}{
\begin{tabitemize}
\item ERP system
\item ME \& MII system
\item Web interface
\end{tabitemize}}\\
\bottomrule
\end{tabular}
\end{document}


\documentclass{article}
\usepackage{booktabs}
\usepackage{xcolor,colortbl}
\usepackage{enumitem}
\newlist{tabitemize}{itemize}{1}
\setlist[tabitemize]{label=\textbullet,nosep,after=\strut,align=parleft,leftmargin=*,after=\vspace{-\baselineskip},before=\vspace{-0.5\baselineskip}}

\usepackage{calc}
\newcolumntype{P}[1]{>{\raggedright\arraybackslash}p{#1\textwidth-2\tabcolsep}}

\begin{document}
\noindent
\begin{tabular}{*6{P{0.16}}}
\toprule
\multicolumn{6}{c}{\textbf{Work system snapshot}}\\

\rowcolor{black!25}\multicolumn{3}{l}{Customers} & \multicolumn{3}{l}{Products \& services}\\

\multicolumn{3}{P{0.5}}{
\begin{tabitemize}
\item People who have a need for the Smartdevice
\end{tabitemize}} &
\multicolumn{3}{P{0.5}}{
\begin{tabitemize}
\item smartdevice in white
\item smartdevice in black
\end{tabitemize}}\\

\rowcolor{black!25}\multicolumn{6}{c}{Major activities or processes}\\

\multicolumn{3}{P{0.5}}{
\begin{tabitemize}
\item Procurement
\item Inventory management
\item Sales
\end{tabitemize}} &
\multicolumn{3}{P{0.5}}{
\begin{tabitemize}
\item Manufactoring
\item Billing System
\end{tabitemize}}\\

\rowcolor{black!25}\multicolumn{2}{l}{Participants} & \multicolumn{2}{l}{Information} & \multicolumn{2}{l}{Technologies}\\

\multicolumn{2}{P{0.33}}{
\begin{tabitemize}
\item Owner
\item  Employees
\item  Customers
\item Users
\end{tabitemize}} &
\multicolumn{2}{P{0.33}}{
\begin{tabitemize}
\item BOM
\item Order database which consist of: sales-, purchase and production orders)
\item Inventory information
\end{tabitemize}} &
\multicolumn{2}{P{0.33}}{
\begin{tabitemize}
\item ERP system
\item ME \& MII system
\item Web interface
\end{tabitemize}}\\
\bottomrule
\end{tabular}
\end{document}


• That works brilliantly! Thank you! I had not looked into the enumitem package to solve the problem. Can you tell me then, why the table is wider than textwidth when I have six columns spanding 1/6 textwidth each?
– LRO
Dec 30, 2017 at 9:30
• Found the solution myself. It is of course the tabcolsep. As seen in this question: tex.stackexchange.com/questions/269742/….
– LRO
Dec 30, 2017 at 9:39
• ragged right, please. (also spelling of "Peolpe".) Dec 30, 2017 at 17:54
• @barbarabeeton Thanks for pointing this out. I will later edit my answer accordingly. Dec 30, 2017 at 18:26

Here is a solution based on a series of 3 tabularxs environments nested in a tabular with a single centred column. I used makecell for the formatting of the column heads, and enumitem for the formatting of the lists:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[showframe]{geometry}
\usepackage[table, svgnames]{xcolor}
\usepackage{enumitem}
\usepackage{tabularx, makecell}
\usepackage{booktabs}
\usepackage{multicol}

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

\begin{document}

\begin{table}
\setlength{\extrarowheight}{4pt}\setlist{wide = 0pt, leftmargin = *, itemsep = 0pt, after = \vspace*{\dimexpr-\baselineskip-\partopsep+ \topsep}}
\sffamily
\begin{tabular}{|@{}c@{}|}
\bottomrule
\textbf{Work system snapshot} \\ [0.5ex]
\hline
\begin{tabularx}{\linewidth}{ >{\compress}X|>{\compress}X|}
\hline
\begin{itemize}
\item People who have a need for the Smartdevice \end{itemize} &
\begin{itemize}
\item smartdevice in white
\item smartdevice in black \end{itemize}
\end{tabularx} \\ \hline
%
\begin{tabularx}{\linewidth}{>{\compress}X|}
\thead[cc]{Major activities or processes} \\ \hline
\begin{multicols*}{2}
\begin{itemize}
\item Procurement
\item Inventory Management
\item sales \columnbreak
\item Manufacturing
\item Billing system \end{itemize}
\end{multicols*}
\end{tabularx} \\ [-1.5ex]
\hline
%
\begin{tabularx}{\linewidth}{*{3}{>{\compress}X|}}
\begin{itemize}
\item Owner
\item Employees
\item Customers
\item Users
\end{itemize}
&
\begin{itemize}
\item BOM
\item Order database which consist of: sales-, purchase and production orders)
\item Inventory information
\end{itemize}
&
\begin{itemize}
\item ERP system
\item ME \& MII system
\item Web interface
\end{itemize} \\
\toprule[0.2em]
\end{tabularx}
\end{tabular}
\end{table}

\end{document}


• Thank you. It is a fine solution, however it requires me to add more packages which I don't find necessary.
– LRO
Dec 30, 2017 at 9:31
• Note it only uses only very classic packages, and has the advantage, from my point of view, of keeping the code clean and well-structured. One cannot always reinvent the wheel ;o) Dec 30, 2017 at 10:11