不幸的是,我无法让表格垂直列的标题居中。我想让标题“B1”和“B2”垂直居中。
我找不到针对此特定设置的解决方案。
\begin{table}[h]
\centering
\begin{tabular}{c|p{0.4\textwidth}|p{0.4\textwidth}|}
\multicolumn{1}{c}{} & \multicolumn{1}{c}{\textbf{A1}} & \multicolumn{1}{c} {\textbf{A2}}\\
\cline{2-3}
\multicolumn{1}{c|}{\multirow{1}{*}{\rotatebox{90}{\textbf{B1}}}}
& \lipsum[1][1-3]
& \lipsum[1][1-3] \\
\cline{2-3}
\multicolumn{1}{c|}{\multirow{1}{*}{\rotatebox{90}{\textbf{B2}}}}
& \lipsum[1][1-3]
& \lipsum[1][1-3] \\
\cline{2-3}
\end{tabular}
\caption{none}
\label{tab: none}
\end{table}
答案1
在你的情况下,将列类型从更改p{}
为m{}
已经建议作者:Mico。不过,我还建议删除代码中不必要的部分,添加[origin=c]
并\rotatebox
稍微改善行间距
\documentclass{article}
\usepackage{array} % m{} column-type + \extrarowheight
\usepackage{graphicx}
\usepackage{microtype}
\usepackage{lipsum}
\begin{document}
\begin{table}[tbh]
\centering
\renewcommand{\arraystretch}{1.75} % <--- added
\setlength\extrarowheight{-1pt} % corrects \arraystretch
\begin{tabular}{c|m{0.4\textwidth}|m{0.4\textwidth}|}
\multicolumn{1}{c}{}
& \multicolumn{1}{c}{\textbf{A1}}
& \multicolumn{1}{c}{\textbf{A2}} \\
\cline{2-3}
\rotatebox[origin=c]{90}{\textbf{B1}}
& \lipsum[1][1-3]
& \lipsum[1][1-3] \\
\cline{2-3}
\rotatebox[origin=c]{90}{\textbf{B2}}
& \lipsum[1][1-3]
& \lipsum[1][1-3] \\
\cline{2-3}
\end{tabular}
\caption{none}\label{tab: none}
\end{table}
\end{document}
答案2
我建议您加载包并对两个数据列array
采用m
列类型而不是列类型。p
\documentclass{article} % or some other suitable document class
\usepackage{array} % for 'm' column type
\usepackage{multirow,graphicx,lipsum}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabular}{c|m{0.41\textwidth}|m{0.41\textwidth}|}
\multicolumn{1}{c}{} &
\multicolumn{1}{c}{\textbf{A1}} &
\multicolumn{1}{c}{\textbf{A2}}\\
\cline{2-3}
\multicolumn{1}{c|}{\multirow{1}{*}{\rotatebox{90}{\textbf{B1}}}}
& \lipsum[1][1-3] & \lipsum[1][1-3] \\
\cline{2-3}
\multicolumn{1}{c|}{\multirow{1}{*}{\rotatebox{90}{\textbf{B2}}}}
& \lipsum[1][1-3] & \lipsum[1][1-3] \\
\cline{2-3}
\end{tabular}
\caption{none} \label{tab:none}
\end{table}
\end{document}
答案3
供参考,这里是一种用 构建该表的{NiceTabular}
方法nicematrix
。
\documentclass{article}
\usepackage{nicematrix,lipsum}
\begin{document}
\begin{table}[ht]
\centering
\NiceMatrixOptions
{
code-for-first-row = \bfseries,
code-for-first-col = \rotate\bfseries
}
\begin{NiceTabular}{m{0.41\textwidth}m{0.41\textwidth}}[hvlines,first-row,first-col]
& \centering A1 & \centering\arraybackslash A2 \\
B1 & \lipsum[1][1-3] & \lipsum[1][1-3] \\
B2 & \lipsum[1][1-3] & \lipsum[1][1-3] \\
\end{NiceTabular}
\caption{none} \label{tab:none}
\end{table}
\end{document}
您需要多次编译(因为nicematrix
在后台使用 PGF/Tikz 节点)。