我一直在摆弄表格布局,其中一些单元格包含很少的文本,而其他单元格可能需要多行,而且我似乎无法使其可读且美观。
梅威瑟:
\documentclass{article}
\usepackage{booktabs}
\usepackage{array}
\usepackage{rotating}
\begin{document}
\rotatebox{90}{
\begin{tabular}{l@{\hspace{1em}}>{\raggedright}p{.2\textheight}>{\raggedright}p{.2\textheight}>{\raggedright}p{.2\textheight}>{\raggedright\arraybackslash}p{.2\textheight}}
\toprule
\multicolumn{2}{l}{heading 1} & heading 2 & heading 4 & heading 4 \\
\midrule
\multicolumn{2}{l}{sub-heading} & & & \\
\cmidrule(lr){1-5} & long long long long long long long long long long long long text & a & b & c \\
& x & long long long long long long long long long text & long long long long long long long long long text & y \\
& short & short & short & short \\
& x & y & z & long long long long long long long long long text \\
\bottomrule
\end{tabular}
}
\end{document}
输出几乎不可读,尤其是第三行(短/短/短/短),几乎无法区分其元素是表中的一行还是(取决于列)上一行/下一行的一部分。我尝试过\arraystretch
,但标题行间距太大,可读性并没有真正提高。
答案1
这不是问题,因为您的条目小于文本高度,但由于缺少%
这里
\rotatebox{90}{%
和这里
\end{tabular}%
这似乎是故意的,但我认为第一个标题看起来很奇怪,向左偏移了 1em,因为所有其他标题都与各自的单元格左对齐。
可能需要对行进行一些视觉区分,要么增加间隔,要么添加中线或添加颜色。
\documentclass{article}
\usepackage{booktabs}
\usepackage{graphicx}
\usepackage{colortbl}
\begin{document}
\rotatebox{90}{%
\setlength\extrarowheight{5pt}
\begin{tabular}{@{}>{\raggedright}p{.2\textheight}>{\raggedright}p{.2\textheight}>{\raggedright}p{.2\textheight}>{\raggedright\arraybackslash}p{.2\textheight}@{}}
\toprule
heading 1 & heading 2 & heading 4 & heading 4 \\
\midrule
sub-heading & & & \\
\cmidrule(lr){1-4} long long long long long long long long long long long long text & a & b & c \\[3pt]
x & long long long long long long long long long text & long long long long long long long long long text & y \\
short & short & short & short \\
x & y & z & long long long long long long long long long text \\
\bottomrule
\end{tabular}%
}
\rotatebox{90}{%
\setlength\extrarowheight{2pt}
\begin{tabular}{@{}>{\raggedright}p{.2\textheight}>{\raggedright}p{.2\textheight}>{\raggedright}p{.2\textheight}>{\raggedright\arraybackslash}p{.2\textheight}@{}}
\toprule
heading 1 & heading 2 & heading 4 & heading 4 \\
\midrule
sub-heading & & & \\
\cmidrule(lr){1-4} long long long long long long long long long long long long text & a & b & c \\[3pt]
\rowcolor[rgb]{.9,.9,.9}
x & long long long long long long long long long text & long long long long long long long long long text & y \\
short & short & short & short \\
\rowcolor[rgb]{.9,.9,.9}
x & y & z & long long long long long long long long long text \\
\bottomrule
\end{tabular}%
}
\end{document}
答案2
用一个tabularx
:
\documentclass{article}
\usepackage{tabularx,booktabs}
\usepackage{graphicx,ragged2e}
\usepackage[table]{xcolor}
\renewcommand\tabularxcolumn[1]{>{\RaggedRight}p{#1}}
\begin{document}
\noindent
{\setlength\extrarowheight{5pt}
\begin{tabularx}{\textwidth}{@{} *5X @{}}\toprule
heading 1 & heading 2 & heading 4 & heading 4 \\\midrule
sub-heading & & & \\\cmidrule(lr){1-4}
long long long long long long long long long long long long text & a & b & c \\[3pt]
x & long long long long long long long long long text & long long long long long long long long long text & y \\
short & short & short & short \\
x & y & z & long long long long long long long long long text \\\bottomrule
\end{tabularx}}
\rotatebox{90}{%
\setlength\extrarowheight{2pt}
\begin{tabularx}{0.95\textheight}{ *5X }\toprule
heading 1 & heading 2 & heading 4 & heading 4 \\\midrule
sub-heading & & & \\\cmidrule(lr){1-4}
long long long long long long long long long long long long text & a & b & c \\[3pt]
\rowcolor{black!10}
x & long long long long long long long long long text & long long long long long long long long long text & y \\
short & short & short & short \\
\rowcolor{black!10}
x & y & z & long long long long long long long long long text \\\bottomrule
\end{tabularx}%
}
\end{document}