2

I am trying to make the following table on a Beamer slide:

enter image description here

I cannot seem to get multicolumn to work properly. First, to add the text on top I use the following code

 \frame[plain]{
 \begin{center}
 \begin{tabular}{c|c|c}
 \multicolumn{1}{c}{}    & \multicolumn{2}{c}{Column Title} & 
 & a           & b \\ \hline
 c   & entry 1   & entry 2\\ \hline
 d   & entry 3 & entry 4 \\ \hline
 \end{tabular}
 \end{center}}

This code produces an error

Extra alignment tab has been changed to \cr \end{center}}

but it produces the following table:

enter image description here

Without the multicolumn of course, I just have the simple table:

enter image description here

How do I use multicolumn/multirow to get the "Row Title" and "Column Title" text as shown? [I don't need the "Row" and "Title" to be on different lines.]

1

I think this would help you, also, my suggestion for you would be to use the \begin{table} environment and \centering within them, instead of using a \begin{center} environment as it will produce extra vertical white spaces.

\documentclass{beamer}
\usepackage{multirow}
\begin{document}
\begin{frame}
    \begin{table}
        \centering
        \caption{XYZ}
        \label{XYZ}
        \begin{tabular}{llll}
            & \multicolumn{3}{l}{Column title}                                \\
            \multirow{3}{*}{Row title} & \multicolumn{1}{l|}{}  & \multicolumn{1}{l|}{a}       & b       \\ \cline{2-4} 
            & \multicolumn{1}{l|}{c} & \multicolumn{1}{l|}{entry 1} & entry 2 \\ \cline{2-4} 
            & \multicolumn{1}{l|}{d} & \multicolumn{1}{l|}{entry 3} & entry 4 \\ \cline{2-4} 
        \end{tabular}
    \end{table}
\end{frame}
\end{document}

Which gives

enter image description here

The double line version below:

\documentclass{beamer}
\usepackage{multirow}
\begin{document}
\begin{frame}
    \begin{table}
        \centering
        \caption{XYZ}
        \label{XYZ}
    \begin{tabular}{llll}
        & \multicolumn{3}{l}{Column title}                                \\
        \multirow{3}{*}{\begin{tabular}[c]{@{}l@{}}Row\\  title\end{tabular}} & \multicolumn{1}{l|}{}  & \multicolumn{1}{l|}{a}       & b       \\ \cline{2-4} 
        & \multicolumn{1}{l|}{c} & \multicolumn{1}{l|}{entry 1} & entry 2 \\ \cline{2-4} 
        & \multicolumn{1}{l|}{d} & \multicolumn{1}{l|}{entry 3} & entry 4 \\ \cline{2-4} 
    \end{tabular}
    \end{table}
\end{frame}
\end{document}

which without futher ado will give you

enter image description here

  • Thank you @Raaja G! Do you know of a way to align the "Column title" text more to the right? I want it to straddle the 2nd and 3rd column (it is a common title for those two columns). – leastaction Jun 7 '17 at 13:21
  • 1
    @leastaction Try using \multicolumn{2}{l}{} & \multicolumn{2}{l}{Column title}\\ instead of & \multicolumn{3}{l}{Column title} \\ , I think that might give you what you want. :-D – Raaja Jun 7 '17 at 13:25
2

Something like this? (makecell allows for line breaks in cells)`:

\documentclass{beamer}
\usepackage{multirow, makecell}

\begin{document}

\begin{frame}
        \centering\setlength\extrarowheight{2pt}
        \begin{tabular}{rl|l|l}
           \multicolumn{2}{c}{} & \multicolumn{2}{c}{Column title} \\[0.5ex]
            & & a & b \\ \cline{2-4}
       \multirowcell{2}{Row\\title} & c & entry 1 & entry 2 \\ \cline{2-4}
            & d & entry 3 & entry 4 \\ \cline{2-4}
        \end{tabular}

\end{frame}

\end{document} 

enter image description here

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.