4

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

enter image description here

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}

enter image description here

2
  • 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

2 Answers 2

7

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}

enter image description here

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}

enter image description here

\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}

enter image description here

4
  • 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
  • 1
    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.
    – leandriis
    Dec 30, 2017 at 18:26
1

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}
  \renewcommand{\theadfont}{\cellcolor{Gainsboro!60! Lavender}\normalsize}
  \renewcommand{\theadalign}{lc}
  \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|}
      \thead{Customers} & \thead{Products \& services} \\%
      \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|}}
      \thead{Participants} & \thead{Information} & \thead{Technologies} \\ \hline
      \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} 

enter image description here

2
  • 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
  • 1
    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)
    – Bernard
    Dec 30, 2017 at 10:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .