0

I got a table look like this enter image description here

I can't use itemize in the \multirow function. I am not too sure how could I implement this.

2
  • Welcome! See e.g. here for an earlier related question.
    – user194703
    Commented May 24, 2020 at 6:16
  • 1
    Please clarify which features of the table shown in your screenshot are crucial and which ones are secondary.
    – Mico
    Commented May 24, 2020 at 6:22

3 Answers 3

5

No need for \multirow.

enter image description here

\documentclass{article}

\usepackage[letterpaper,margin=2.5cm]{geometry} % set suitable page size parameters
\usepackage{tabularx,ragged2e,booktabs,xcolor}
\newcolumntype{L}{>{\RaggedRight\arraybackslash}X}

\usepackage{enumitem}
% create a bespoke itemize-like environment:
\newlist{myitemize}{itemize}{1}
\setlist[myitemize]{label =\textbullet, nosep, left=0pt,
                    before=\begin{minipage}[t]{\hsize},
                    after =\end{minipage}}

\begin{document}

\begin{table}[htbp]
\setlength{\tabcolsep}{3pt}
\small
\begin{tabularx}{\textwidth}{@{} *{5}{L} @{}}
\toprule
\textbf{Key partners} & 
\textbf{Key activities} & 
\textbf{Value proposition} & 
\textbf{Customer relationship} & 
\textbf{Customer segments} \\
\midrule
\begin{myitemize}
\item \textbf{Supplier}
\item \textbf{Logistics}
\item \textbf{IT partner}
\item \textbf{Property owner (rent)}
\item \textbf{Media partner}
\end{myitemize}  &
\begin{myitemize}
\item Advertising \& marketing
\item Online platform
\item Logistics
\item Supply chain
\end{myitemize}
\medskip
\hrule height\lightrulewidth
\medskip
\textbf{Key resources}
\smallskip
\begin{myitemize}
\item Physical resources
\item Distribution network
\item Information technology
\item Human capital
\end{myitemize} &

\begin{myitemize}
\item \textcolor{red}{Vegan belief} 
\item Convenience
\item Accessibility
\item Communities
\item Customer service
\item Comparable (function, price, effort)
\item Lifestyle
\item Digital payments
\item Improve the physical and online shopping experience
\end{myitemize} &
\begin{myitemize}
\item Vegan club
\item Communities
\item Vegan blogs
\item Loyalty program
\end{myitemize}
\vspace{1\baselineskip}
\medskip
\hrule height\lightrulewidth
\medskip
\textbf{Channels}
\smallskip
\begin{myitemize}
\item Website
\item Own stores
\item Partner apps
\item Ad channels
\item Social media channels
\item Word of mouth
\item Comms channels
\end{myitemize} &
\begin{myitemize}
\item Income level
\item Motivation
\item Age range
\item Purchase - behavioral
\item Middle to upper class
\end{myitemize} \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}
1
  • 3
    +1 for the kind effort to recreate with exact text! :)
    – Thev
    Commented May 24, 2020 at 7:10
0

I've created a simplified version of what you want to achieve. Let me know if you need any more help - you should be able to work from here.

enter image description here

The crucial lines in the preamble which allow you to do this are:

\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}

These allow you to have lists spanning multiple lines with ease.

Note: I've create my own itemize environment called enumtable using the enumitem package, just to impose my own whitespace preferences.


Code for the above:

% these define the type of document and the look of the page
\documentclass[]{article}
\usepackage[margin=1in]{geometry}
\setlength{\parindent}{0pt} % space at start of paragraph
\setlength{\parskip}{0.14in} % space between paragraphs

% table-related
\usepackage{array}
\usepackage{booktabs}
\usepackage{multicol}
\usepackage{multirow, hhline}
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}

% lists
\usepackage{enumitem} 
\newcommand{\bulletlabel}{\raisebox{0.2ex}{\small$\bullet$}}
\newlist{enumtable}{enumerate}{6}
\setlist[enumtable]{label=\bulletlabel, topsep=0.1in, leftmargin=0.2in, rightmargin=0.2in, itemsep= 0in, partopsep=0in}

% math
\usepackage{amsmath}
\usepackage{amssymb}

\begin{document}

\def\arraystretch{1.5}
\begin{tabular}{|L{5cm}|L{5cm}|L{5cm}|}
\hline
% first multi-row column
\multirow{2}{5cm}{
\textbf{Key partners}
\newline
\begin{enumtable}
\item Supplier
\item Logistics
\item IT partner 
\item Property owners (rent)
\item Media partner
\end{enumtable}
} 
& 
% single-row column
\textbf{Key partners}
\newline
\begin{enumtable}
\item Supplier
\item Logistics
\item IT partner 
\item Property owners
\item Media partner
\end{enumtable} 
&
% second multi-row column
\multirow{2}{5cm}{
\textbf{Key partners}
\newline
\begin{enumtable}
\item Supplier
\item Logistics
\item IT partner 
\item Property owners (rent)
\item Media partner
\end{enumtable}
} 
\\ \hhline{~-}
& 
\textbf{Key partners}
\newline
\begin{enumtable}
\item Supplier
\item Logistics
\item IT partner 
\item Property owners
\item Media partner
\end{enumtable} & \\ \hline
\end{tabular}

\end{document}
0
0

Here's one example based on nested tabulars. Note, lists need to be placed in paragraph-like environment. In my case, this is achieved by using p{} type column that creates a paragraph in cell. However, other constructs placed directly in cells can also work, e.g. minipage environment, \parbox, etc.

Currently, below example uses a standard spacing between a list and texts. If you want to reduce it, the simplest way is to insert a negative spacing before each list. As such, append before=\vspace{-0.5\baselineskip} in the list settings (the line of \setlist{...}).

\documentclass{article}
\usepackage{tabularx}
\usepackage{enumitem}

\newcolumntype{L}{>{\raggedright\arraybackslash}p{\dimexpr\linewidth-2\tabcolsep}}


\begin{document}
\begin{table}[tbh]
  \setlist[itemize]{noitemsep,leftmargin=*,after=\vspace{-\baselineskip}}
  \renewcommand{\arraystretch}{2}
  \setlength\extrarowheight{-2pt}   % correction for arraystretch
  \caption{Example table}\label{tab:example-table}
  \begin{tabularx}{\textwidth}{| *{3}{@{}X@{}|}}
    \hline
    \begin{tabular}[t]{L}
      \textbf{Header 1}\par
      \begin{itemize}\bfseries
      \item Sample
      \item Sample
      \item Sample
      \item sample
      \item Sample
      \item Sample
      \item Sample
      \item Sample
      \item sample
      \item Sample
      \item Sample
      \end{itemize}
    \end{tabular}
    & \begin{tabular}[t]{L}
        \textbf{Header 2}\par
        \begin{itemize}
        \item Sample
        \item Sample
        \item Sample
        \item Sample
        \end{itemize}
        \\ \hline
        \textbf{Header 3}\par
        \begin{itemize}
        \item Sample
        \item Sample
        \item Sample
        \end{itemize}
        \\ \hline
        \textbf{Header 4}\par
        \begin{itemize}
        \item Sample
        \item Sample
        \end{itemize}
      \end{tabular}
    & \begin{tabular}[t]{L}
        \textbf{Header 5}\par
        \begin{itemize}
        \item Sample
        \item Sample
        \item Sample
        \item Sample
        \item Sample
        \item Sample
        \end{itemize}
        \\ \hline
        \textbf{Header 6}\par
        \begin{itemize}
        \item Sample sample
        \item Sample sample
        \item Sample sample
        \item Sample sample
        \item Sample sample
        \item Sample sample
        \item Sample sample
        \item Sample sample
        \end{itemize}
      \end{tabular}
    \\ \hline
  \end{tabularx}
\end{table}
\end{document}

enter image description here

You must log in to answer this question.

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