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

6

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.