到目前为止,我有一个带有旋转文本的表格,但它出现在最顶部,如您所见。我希望第 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}