- 我想将此表格放在纵向格式的页面上
并使显示数字的列宽度相等
然而,类型 3 的名称比其他类型长,因此
将列标题设置为对角线可能有助于我放入较长的名称,
以便满足条件 1。
这个例子不起作用
我似乎需要一些关于如何结合\rotatebox
的建议\multicolumn
或者也许您对如何使用条件 1 和 2 来解决这个问题有完全不同的想法。
\documentclass[a4paper,10pt]{scrartcl} \usepackage[latin1]{inputenc} \usepackage{babel} \usepackage[T1]{fontenc} \usepackage{booktabs} \usepackage{array} \usepackage{dcolumn} \usepackage{graphicx}
\begin{document}
\begin{table}
\centering
\caption{Caption text}
\begin{tabular}{ | l | p{0.45cm} | p{0.45cm} | p{0.45cm} | p{0.45cm} | p{0.45cm} | p{0.45cm} | p{0.45cm} | p{0.45cm} | p{0.45cm} | p{0.45cm} | p{0.45cm} | p{0.45cm} |}
\hline
& \multicolumn{2}{*}{\rotatebox{60}{Type 1}} & \multicolumn{2}{*}{\rotatebox{60}{Type 2}} & \multicolumn{2}{*}{\rotatebox{60}{Type 3 longer text}} & \multicolumn{2}{*}{\rotatebox{60}{Type 4}} & \multicolumn{2}{*}{\rotatebox{60}{Type 5}} & \multicolumn{2}{*}{\rotatebox{60}{Type 6}}\\\hline
\multicolumn{13}{|l|}{\textsc{\textbf{row title bold}}} \\ \hline
Criterium 1 & 5 & 10 & 3 & 6 & 1 & 2 & 5 & 10 & 5 & 10 & 5 & 10 \\ \hline
Criterium 2 & 4 & 8 & 3 & 6 & 2 & 4 & 3 & 6 & 4 & 8 & 4 & 8 \\ \hline
\multicolumn{13}{|l|}{\textsc{\textbf{row title bold}}} \\ \hline
Criterium 3 & 5 & 5 & 5 & 5 & 4 & 4 & 5 & 5 & 5 & 5 & 5 & 5 \\ \hline
Criterium 4 & 5 & 5 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ \hline
\textbf{\textsc {Sum}} & & \textbf{84} & & \textbf{56} & & \textbf{50}& & \textbf{53}& & \textbf{51}& & \textbf{51} \\ \hline
\end{tabular}
\label{tab:Label text}
\end{table}
\end{document}
答案1
不管怎样,你可以将标题元素放在 中,\makebox[<len>][<align>]{<stuff>}
它将排版<stuff>
在宽度为 的框中<len>
,即使<stuff>
比 更宽/更窄<len>
。对齐规范<align>
类似于array
或tabular
列规范。
以下 MWE 提供\rothead[<angle>]{<stuff>}
(作为对makecell
包裹) 旋转<stuff>
角度<angle>
(默认为60
度,此参数为可选)。它还会放置<stuff>
在一个固定宽度的框中9mm
,居中c
。此外,您还可以使用\\
在 内创建换行符<stuff>
。
\documentclass[a4paper,10pt]{scrartcl}
\usepackage[T1]{fontenc}% http://ctan.org/pkg/fontenc
\usepackage{graphicx}% http://ctan.org/pkg/graphicx
\usepackage{makecell}% http://ctan.org/pkg/makecell
\renewcommand{\rothead}[2][60]{\makebox[9mm][c]{\rotatebox{#1}{\makecell[c]{#2}}}}%
\begin{document}
\begin{table}
\centering
\caption{Caption text}
\begin{tabular}{|l|*{12}{p{0.45cm}|}}
\multicolumn{1}{c}{} & \multicolumn{2}{c}{\rothead{Type 1}} & \multicolumn{2}{c}{\rothead{Type 2}}
& \multicolumn{2}{c}{\rothead{Type 3 longer text\\than other headings}} & \multicolumn{2}{c}{\rothead{Type 4}}
& \multicolumn{2}{c}{\rothead{Type 5}} & \multicolumn{2}{c}{\rothead{Type 6}} \\
\hline
\multicolumn{13}{|l|}{\textsc{\textbf{row title bold}}} \\ \hline
Criterion 1 & 5 & 10 & 3 & 6 & 1 & 2 & 5 & 10 & 5 & 10 & 5 & 10 \\ \hline
Criterion 2 & 4 & 8 & 3 & 6 & 2 & 4 & 3 & 6 & 4 & 8 & 4 & 8 \\ \hline
\multicolumn{13}{|l|}{\textsc{\textbf{row title bold}}} \\ \hline
Criterion 3 & 5 & 5 & 5 & 5 & 4 & 4 & 5 & 5 & 5 & 5 & 5 & 5 \\ \hline
Criterion 4 & 5 & 5 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ \hline
\textbf{\textsc{Sum}} & & \textbf{84} & & \textbf{56} & & \textbf{50} & & \textbf{53}
& & \textbf{51} & & \textbf{51} \\ \hline
\end{tabular}
\label{tab:Label text}
\end{table}
\end{document}
如果您有兴趣查看旋转标题所包含的框的大小,请改用以下重新定义\rothead
:
\renewcommand{\rothead}[2][60]{\framebox[9mm][c]{\rotatebox{#1}{\makecell[c]{#2}}}}%
答案2
只需使用tabularx
。我没有更改表格内容的太多内容。
\documentclass{article}
\usepackage{tabularx}
\newcolumntype{R}{>{\raggedleft\arraybackslash}X}
\begin{document}
\begin{table}
\newcommand\MC[1]{\multicolumn{2}{X|}{#1}}
\centering
\caption{Caption text}
\begin{tabularx}{\textwidth}{|l|*{12}{R|}}
\hline
& \MC{Type~1} & \MC{Type~2} & \MC{Type~3 longer text}
& \MC{Type~4} & \MC{Type~5} & \MC{Type~6}\\\hline
\multicolumn{13}{|l|}{\textsc{\textbf{row title bold}}} \\ \hline
Criterium 1 & 5 & 10 & 3 & 6 & 1 & 2 & 5 & 10 & 5 & 10 & 5 & 10 \\ \hline
Criterium 2 & 4 & 8 & 3 & 6 & 2 & 4 & 3 & 6 & 4 & 8 & 4 & 8 \\ \hline
\multicolumn{13}{|l|}{\textsc{\textbf{row title bold}}} \\ \hline
Criterium 3 & 5 & 5 & 5 & 5 & 4 & 4 & 5 & 5 & 5 & 5 & 5 & 5 \\ \hline
Criterium 4 & 5 & 5 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ \hline
\textbf{\textsc{Sum}}
&& \textbf{84} && \textbf{56} && \textbf{50}
&& \textbf{53} && \textbf{51} && \textbf{51} \\ \hline
\end{tabularx}
\label{tab:Label text}
\end{table}
\end{document}