I'm preparing a business strategy report which has been divided into multiple tex files. One section is about competitor analysis, and I would like to make it with a table.
The declarations in main.tex are,
\documentclass[9pt, a4paper, oneside]{book}
\usepackage{multirow} % Table
\usepackage{array} % Table
\usepackage{tabulary} % Table
\usepackage{graphicx} % Figure path
\usepackage{fancyhdr} % Page style
\usepackage{setspace} % Line space
\usepackage[parfill]{parskip} % Gap between paragraph instead indentation
\usepackage{pdflscape} % In order to adjust a large table
\usepackage{enumitem}
\usepackage{natbib} % Allows the user to switch between Harvard or numeric
The analysis table is respectively included in the substantial chapter,
\input{competitors_list.tex}
And the table is declared as,
\begin{landscape}
\normalsize
\noindent
\begin{tabulary}{.95\textwidth}{| >{\bfseries}l | l | l | l | l | l |}
\hline
Competitor & Profile & Product \& Service (incl. price) & Marketing Strategies & Advantages & Disadvantages \\\hline
% 2nd row
Company 1 &
\begin{minipage}[t]{.2\textwidth}
Company 1 provides the services
\end{minipage}
&
\begin{minipage}[t]{.2\textwidth}
\begin{itemize}
\item General service
\item Sepcific service
\end{itemize}
\end{minipage}
&
\begin{minipage}[t]{.2\textwidth}
\begin{itemize}
\item Official website
\item Advertisement
\end{itemize}
\end{minipage}
&
\begin{minipage}[t]{0.3\textwidth}
\begin{itemize}
\item Commercial union member
\end{itemize}
\end{minipage}
&
\begin{minipage}[t]{0.3\textwidth}
\begin{itemize}
\item Company size
\item Service categories
\end{itemize}
\end{minipage} \\ \hline
\end{tabulary}
\end{landscape}
The above codes do generate a table as follows,
However, when I want to add the third row,
\begin{landscape}
\normalsize
\noindent
\begin{tabulary}{.95\textwidth}{| >{\bfseries}l | l | l | l | l | l |}
\hline
Competitor & Profile & Product \& Service (incl. price) & Marketing Strategies & Advantages & Disadvantages \\\hline
% 2nd row
Company 1 &
\begin{minipage}[t]{.2\textwidth}
Company 1 provides the services
\end{minipage}
&
\begin{minipage}[t]{.2\textwidth}
\begin{itemize}
\item General service
\item Sepcific service
\end{itemize}
\end{minipage}
&
\begin{minipage}[t]{.2\textwidth}
\begin{itemize}
\item Official website
\item Advertisement
\end{itemize}
\end{minipage}
&
\begin{minipage}[t]{0.3\textwidth}
\begin{itemize}
\item Commercial union member
\end{itemize}
\end{minipage}
&
\begin{minipage}[t]{0.3\textwidth}
\begin{itemize}
\item Company size
\item Service categories
\end{itemize}
\end{minipage} \\ \hline
% 3rd row
Company 2 &
\begin{minipage}
A big company provides
\end{minipage}
&
\begin{minipage}
\begin{itemize}
\item Project management
\end{itemize}
\end{minipage}
&
\begin{minipage}
\begin{itemize}
\item Official website
\end{itemize}
\end{minipage}
&
\begin{minipage}
\begin{itemize}
\item Large size
\end{itemize}
\end{minipage}
&
\begin{minipage}
\begin{itemize}
\item High price
\end{itemize}
\end{minipage} \\\hline
\end{tabulary}
\end{landscape}
Error appeared while compiling,
! Missing number, treated as zero.
<to be read again>
A
l.68 \end{tabulary}
I thought it may caused by \\ and add \relax after each \\ . Then new error was produced,
! Misplaced \noalign.
\hline ->\noalign
{\ifnum 0=`}\fi \hrule \@height \arrayrulewidth \futurelet...
l.68 \end{tabulary}
Additionally, there are several competitors need to be added, do I need to switch tabulary to longtable in case of insufficient space?
Sorry for my poor knowledge of Latex and many appreciates for your help.
Best Answer
Unrelated to tabulary: you are missing the minipage width in all the new entries
Note the error message
which shows the location of the error being the
A
is the same as
so it tries to read
A
as a length, and lengths start with a number so you get the error! Missing number, treated as zero.
The line number is shown as the line with\end[tabulary}
as the whole environment is read to that point in a first pass, so that the package can do its measuring, so tex reads to the end of the environment before this error shows up.