I can't use itemize in the \multirow function. I am not too sure how could I implement this.
-
Welcome! See e.g. here for an earlier related question. – May 24 '20 at 06:16
-
1Please clarify which features of the table shown in your screenshot are crucial and which ones are secondary. – Mico May 24 '20 at 06:22
3 Answers
No need for \multirow.
\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}
- 506,678
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.
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}
- 1,568
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}
- 9,058



