[Tex/LaTex] “! Misplaced \noalign. \hline ->\noalign” error while adding 3rd row in tabulary

errorsminipagetabulary

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,

Generated table

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

 \begin{minipage}

Note the error message

! Missing number, treated as zero.
<to be read again> 
    \begin{minipage}
       A 

which shows the location of the error being the A

    \begin{minipage}
       A 

is the same as

    \begin{minipage}{A}

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.

Related Question