自动创建特殊表头(多列、旋转)

自动创建特殊表头(多列、旋转)

我必须构建许多与我的 MWEm 类似的表格,只是更复杂,列数更多。手动调整中线和列宽等非常烦人。

我该怎么做才能自动构建像红框中那样的标题?它应该可配置第二行中的两到八列,并绘制自己的可配置 cmidline。

命令可能看起来像这样:

\greathead{Benutzerführung}{Erklärungen, Wizard}{r{3pt}}

在此处输入图片描述

我曾尝试过诸如在多列中设置多行、在第二行中设置多列之类的操作,但我尝试的所有方法都搞乱了整个表格,甚至无法编译。

梅威瑟:

\documentclass[12pt,a4paper,BCOR5mm]{scrbook}

\usepackage{booktabs}
\usepackage{multirow}
\usepackage{ltablex}
\usepackage{rotating}
\usepackage{colortbl}
\usepackage{ragged2e} 
\usepackage{lipsum}

\newcommand\rota[1]{\rotatebox{90}{#1\ }}
\newcommand*\dimension[2]{\multicolumn{#1}{D}{\rota{#2}}}
\newcommand*\charakteristik[1]{\multicolumn{1}{C}{\rota{#1}}}

\keepXColumns

\definecolor{Gray}{gray}{0.9}

\begin{document}
This text has normal textwidth.\\
\lipsum[1]

%\begin{spacing}{0.8}
\newlength{\sepa}
\setlength{\sepa}{3pt}
%\tiny 6 \scriptsize 8 \footnotesize 10 \small 11 \normalsize 12
\newcolumntype{D}{>{\normalsize}c}
\newcolumntype{C}{>{\normalsize}c}

\newcolumntype{W}{>{\columncolor{white}}C}
\newcolumntype{G}{>{\columncolor{Gray}}C}

\begin{tabularx}{\textwidth}{@{} X* {5}{WG}@{}}
\caption{Some Title}\\
\toprule
& \dimension{2}{Benutzerführung} & \dimension{2}{Canvastypen} & \dimension{2}{Custom Canvas} & \dimension{2}{Export} & \dimension{2}{Finanzübersicht} \\

\cmidrule(r{\sepa}){2-3} \cmidrule(l{\sepa}r{\sepa}){4-5} \cmidrule(l{\sepa}r{\sepa}){6-7} \cmidrule(l{\sepa}r{\sepa}){8-9} \cmidrule(l{\sepa}){10-11}

& \charakteristik{Erklärungen} & \charakteristik{Wizard}
& \charakteristik{BMC} & \charakteristik{Weitere}
& \charakteristik{keine} & \charakteristik{austauschbar}
& \charakteristik{kein} & \charakteristik{Grafik}
& \charakteristik{keine} & \charakteristik{Erlöse-Kosten}
\\ \midrule \endhead
% Content
oneoneoneone & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1\\
\bottomrule
\end{tabularx}
\end{document}

答案1

tabularx这是基本构建块。坦白说,让它们完成所有工作要容易得多。

\documentclass[12pt,a4paper,BCOR5mm]{scrbook}

\usepackage{xcolor}% loaded by colortbl
\usepackage{graphicx}% loaded by rotating

\definecolor{Gray}{gray}{0.9}
\fboxsep=0pt

\begin{document}

How to create a box of a given width (1em) with a colored background.

\mbox{\rlap{\color{lightgray}\rule[-.2\baselineskip]{1em}{\baselineskip}}\makebox[1em]{2}}

How to line up horizontal and rotated vertical text.

\fbox{\makebox[2em]{2\hfill 3}}

\fbox{\rotatebox{90}{\parbox[c][2em][s]{1in}{\centering top line
\linebreak\vspace{-\baselineskip}\vfill bottom line}}}

\end{document}

建筑模块

相关内容