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

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

| improve this answer | |

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.