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.]

2 Answers 2

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

2
  • 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). Jun 7, 2017 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 Jun 7, 2017 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

0

You must log in to answer this question.

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