复杂禁忌表的垂直和水平居中内容

复杂禁忌表的垂直和水平居中内容

我有这个 MWE,想将最后一行的 x 水平和垂直居中(数字仅用于调试目的)。我尝试过一种方法

\newlength{\xlength}
\settowidth{\xlength}{x}

并在列类型定义中

>{\centering\arraybackslash}m{\xlength} 

但它不起作用。出了什么问题?我该怎么办。MWE:

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

\usepackage{booktabs}
\usepackage{multirow}
\usepackage{longtable}
\usepackage{tabu}
\usepackage{rotating}
\usepackage{colortbl}

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

\begin{document}

%\begin{spacing}{0.8}
\newlength{\sep}
\setlength{\sep}{1.5pt}
\setlength{\tabcolsep}{\sep}
\setlength{\extrarowheight}{5pt}

%/Fonts#Sizing_text
\newcolumntype{O}{>{\small}p{1.6cm}}
\newcolumntype{D}{>{\small}c}
\newcolumntype{C}{>{\scriptsize}c}

\definecolor{Gray}{gray}{0.9}
\newcolumntype{W}{>{\columncolor{white}}C}
\newcolumntype{G}{>{\columncolor{Gray}}C}

\begin{longtabu}{O*{22}{WG}W}
\toprule
& \dimension{6}{Plattform} & \dimension{3}{Multi-User} 
& \dimension{2}{Export} & \dimension{2}{Import} 
& \dimension{4}{Benutzerführung} & \dimension{2}{Sprachen}
& \dimension{3}{Kollaboration} & \dimension{3}{Kosten} 
& \dimension{3}{Support} & \dimension{3}{Registrierung} 
& \dimension{2}{Canvas Typen} & \dimension{2}{Custom Canvas} 
& \dimension{10}{Finanzübersicht}\\ 
\cmidrule(r{1.5pt}){1-10} 
\cmidrule(l{1.5pt}r{1.5pt}){11-20} 
\cmidrule(l{1.5pt}r{1.5pt}){21-30} 
\cmidrule(l{1.5pt}r{1.5pt}){31-40} 
\cmidrule(l{1.5pt}){41-46} 

& \charakteristik{Windows} & \charakteristik{Mac} 
& \charakteristik{Linux} & \charakteristik{Webbrowser} 
& \charakteristik{iOS} & \charakteristik{Android}
& \charakteristik{keine} & \charakteristik{seriell} 
& \charakteristik{parallel}& \charakteristik{Daten} 
& \charakteristik{Grafik}& \charakteristik{kein} 
& \charakteristik{Daten}& \charakteristik{Daten} 
& \charakteristik{Grafik}& \charakteristik{kein} 
& \charakteristik{Daten}& \charakteristik{Windows} 
& \charakteristik{Mac} & \charakteristik{Linux} 
& \charakteristik{Webbrowser} & \charakteristik{iOS} 
& \charakteristik{Android}& \charakteristik{keine} 
& \charakteristik{seriell} & \charakteristik{parallel}
& \charakteristik{Daten} & \charakteristik{Grafik}
& \charakteristik{kein} & \charakteristik{Daten}
& \charakteristik{Daten} & \charakteristik{Grafik}
& \charakteristik{kein} & \charakteristik{Daten}
& \charakteristik{kein} & \charakteristik{Daten}
& \charakteristik{Daten} & \charakteristik{Grafik}
& \charakteristik{kein} & \charakteristik{Daten}
& \charakteristik{Daten}& \charakteristik{Daten} 
& \charakteristik{Daten}& \charakteristik{Daten} 
& \charakteristik{Grafik} \\ \midrule

1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\
Long name that can be word wraped if needed & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x \\
\end{longtabu}
\end{document}

答案1

将第一列定义为m如下列

\newcolumntype{O}{>{\small}m{1.6cm}}

longtabu顺便问一下,既然能完成这项工作,为什么还要使用longtable它呢?此外,它并不tabu像作者声称的那样支持软件包。

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

\usepackage{booktabs}
\usepackage{multirow}
\usepackage{longtable}
\usepackage{tabu}
\usepackage{rotating}
\usepackage{colortbl}

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

\begin{document}

%\begin{spacing}{0.8}
\newlength{\sep}
\setlength{\sep}{1.5pt}
\setlength{\tabcolsep}{\sep}
\setlength{\extrarowheight}{5pt}

%/Fonts#Sizing_text
\newcolumntype{O}{>{\small}m{1.6cm}}
\newcolumntype{D}{>{\small}c}
\newcolumntype{C}{>{\scriptsize}c}

\definecolor{Gray}{gray}{0.9}
\newcolumntype{W}{>{\columncolor{white}}C}
\newcolumntype{G}{>{\columncolor{Gray}}C}

\begin{longtabu}{O*{22}{WG}W}
\toprule
& \dimension{6}{Plattform} & \dimension{3}{Multi-User}
& \dimension{2}{Export} & \dimension{2}{Import}
& \dimension{4}{Benutzerführung} & \dimension{2}{Sprachen}
& \dimension{3}{Kollaboration} & \dimension{3}{Kosten}
& \dimension{3}{Support} & \dimension{3}{Registrierung}
& \dimension{2}{Canvas Typen} & \dimension{2}{Custom Canvas}
& \dimension{10}{Finanzübersicht}\\
\cmidrule(r{1.5pt}){1-10}
\cmidrule(l{1.5pt}r{1.5pt}){11-20}
\cmidrule(l{1.5pt}r{1.5pt}){21-30}
\cmidrule(l{1.5pt}r{1.5pt}){31-40}
\cmidrule(l{1.5pt}){41-46}

& \charakteristik{Windows} & \charakteristik{Mac}
& \charakteristik{Linux} & \charakteristik{Webbrowser}
& \charakteristik{iOS} & \charakteristik{Android}
& \charakteristik{keine} & \charakteristik{seriell}
& \charakteristik{parallel}& \charakteristik{Daten}
& \charakteristik{Grafik}& \charakteristik{kein}
& \charakteristik{Daten}& \charakteristik{Daten}
& \charakteristik{Grafik}& \charakteristik{kein}
& \charakteristik{Daten}& \charakteristik{Windows}
& \charakteristik{Mac} & \charakteristik{Linux}
& \charakteristik{Webbrowser} & \charakteristik{iOS}
& \charakteristik{Android}& \charakteristik{keine}
& \charakteristik{seriell} & \charakteristik{parallel}
& \charakteristik{Daten} & \charakteristik{Grafik}
& \charakteristik{kein} & \charakteristik{Daten}
& \charakteristik{Daten} & \charakteristik{Grafik}
& \charakteristik{kein} & \charakteristik{Daten}
& \charakteristik{kein} & \charakteristik{Daten}
& \charakteristik{Daten} & \charakteristik{Grafik}
& \charakteristik{kein} & \charakteristik{Daten}
& \charakteristik{Daten}& \charakteristik{Daten}
& \charakteristik{Daten}& \charakteristik{Daten}
& \charakteristik{Grafik} \\ \midrule

1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 0 & 1 & 2 & 3 & 4 & 5 & 6 \\
Long name that can be word wraped if needed & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x & x \\
\end{longtabu}
\end{document}

在此处输入图片描述

相关内容