2

So far I've a table with rotated text but it's appearing at the very top as you can see. I want the text in column 1 to be vertically centred in it's cell. The code I have is below. Result

\documentclass[11pt]{article}

\usepackage{booktabs}
\usepackage{graphicx}
\usepackage{lipsum}

\newcommand{\tableheader}[1]{\textbf{#1}}

\begin{document}
\begin{table*}
    \centering
    \begin{tabular}{cll}
        \toprule
        \tableheader{Type} & \tableheader{Advantages} & \tableheader{Disadvantages} \\
        \midrule
        \rotatebox[origin=c]{90}{\shortstack[l]{Foo\\ Bar}} 
        &
        \begin{minipage}[t]{0.4\linewidth}
            \lipsum[34]
        \end{minipage}
        &
        \begin{minipage}[t]{0.4\linewidth}
            \lipsum[34]
        \end{minipage}
        \\
    \end{tabular}
\end{table*}

\end{document}

EDIT: The vertical text also added extra space in all columns too, how do I remove that?

1 Answer 1

2

Try with column type m{...} from array package:

\documentclass[11pt]{article}

\usepackage{array,booktabs}
\usepackage{graphicx}
\usepackage{lipsum}

\newcommand{\tableheader}[1]{\textbf{#1}}

\begin{document}
\begin{table*}
    \centering
    \begin{tabular}{c*{2}{m{0.4\linewidth}}}
        \toprule
        \tableheader{Type} & \tableheader{Advantages} & \tableheader{Disadvantages} \\
        \midrule
\rotatebox{90}{\shortstack[l]{Foo\\ Bar}}
        &
            \lipsum[34]
        &
            \lipsum[34] \\
    \bottomrule
    \end{tabular}
\end{table*}
    \end{document}

With use of m{...} column types for second and third column, you not need minipages for multi line cells in table. enter image description here

You must log in to answer this question.

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