表格中垂直旋转的文本居中

表格中垂直旋转的文本居中

到目前为止,我有一个带有旋转文本的表格,但它出现在最顶部,如您所见。我希望第 1 列中的文本在其单元格中垂直居中。我的代码如下。 结果

\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}

编辑:垂直文本也在所有列中添加了额外的空间,我该如何删除它?

答案1

尝试使用包m{...}中的列类型:array

\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}

通过使用m{...}第二列和第三列的列类型,您不需要为表格中的多行单元格制作小页面。 在此处输入图片描述

相关内容