我正在尝试创建一个吸引人的表格。到目前为止,这是我的结果:
如您所见,表格看起来不正确。例如,工作Komplexität
没有正确连字符。并且列标题Kriterien
不Gewichtungsfaktor
与其他列标题在同一行。
有人能给出一些提示如何修复这些错误,或者如何将整个表格转换为表格booktabs
吗?
梅威瑟:
%!TEX TS-program = lualatex
\documentclass[
a4paper,
oneside,
titlepage=firstiscover
]{scrartcl}
\usepackage[
onehalfspacing
]{setspace}
\usepackage{polyglossia}
\usepackage{float}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{colortbl}
\usepackage{ragged2e}
\usepackage{rotating}
\usepackage{booktabs}
\setmainlanguage{german}
% rotate text in table heads
\newcommand\rotateText[2]{\rotatebox{90}{\parbox{#2cm}{\raggedright#1}}}
% Tabularx cells
\newcolumntype{R}[1]{>{\raggedleft\hsize=#1\hsize\arraybackslash}X}%
\newcolumntype{L}[1]{>{\raggedright\hsize=#1\hsize\arraybackslash}X}%
\newcolumntype{C}[1]{>{\centering\hsize=#1\hsize\arraybackslash}X}
\usepackage{hyphenat}
\hyphenation{Um-setz-bar-keit Kom-ple-xi-tät}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabularx}{\textwidth}{C{0.1}L{0.39}C{0.06}|C{0.06}>{\columncolor[gray]{0.9}}C{0.06}|C{0.06}>{\columncolor[gray]{0.9}}C{0.06}|C{0.06}>{\columncolor[gray]{0.9}}C{0.06}|C{0.06}>{\columncolor[gray]{0.9}}C{0.06}}
& \multirow{2}{*}{\rotateText{\textbf{Kriterien}}{4}} & \multirow{2}{*}{\rotateText{\textbf{Gewichtungsfaktor}}{4}} & \multicolumn{2}{l}{\textbf{RSS}} & \multicolumn{2}{l}{\textbf{FP}} & \multicolumn{2}{l}{\textbf{Prox.}} & \multicolumn{2}{l}{\textbf{Opt.}} \\
& & & \rotateText{Erfüllungsgrad}{3.18} & \rotateText{Werte}{3.18} & \rotateText{Erfüllungsgrad}{3.18} & \rotateText{Werte}{3.18} & \rotateText{Erfüllungsgrad}{3.18} & \rotateText{Werte}{3.18} & \rotateText{Erfüllungsgrad}{3.18} & \rotateText{Werte}{3.18} \\
\toprule
\multirow{3}{*}{\rotateText{Komplexität}{1.75}} & Installationsaufwand & 4 & 4 & 16 & 2 & 8 & 3 & 12 & 5 & 20 \\
& Hardware & 2 & 4 & 8 & 4 & 8 & 4 & 8 & 5 & 10 \\
& Software & 2 & 4 & 8 & 3 & 6 & 5 & 10 & 5 & 10 \\
\midrule
\multirow{3}{*}{\rotateText{Kosten}{0.5}} & Installation & 2 & 3 & 6 & 2 & 4 & 4 & 8 & 5 & 10 \\
& Anzahl Sensoren & 4 & 3 & 6 & 2 & 4 & 4 & 8 & 5 & 10 \\
\midrule
& Energieverbrauch & 4 & 3 & 12 & 3 & 12 & 4 & 16 & 5 & 20 \\
\\[-1em]
& \multicolumn{3}{l}{Punkte} & 62 & & 58 & & 66 & & 90 \\
& \multicolumn{3}{l}{Wirtschaftliche Wertigkeit} & 0.69 & & 0.64 & & 0.73 & & 1 \\
\end{tabularx}
\end{table}
\end{document}
答案1
我建议仔细考虑使用颜色并实际利用设施booktabs
。
考虑作为一个起点(或者如果@TeXnician 的改变他的回答- 确实看起来更好 - 但太激进了):
%!TEX TS-program = lualatex
\documentclass[
a4paper,
oneside,
titlepage=firstiscover
]{scrartcl}
\usepackage[onehalfspacing]{setspace}
\usepackage{polyglossia}
\usepackage{float}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{colortbl}
\usepackage{ragged2e}
\usepackage{rotating}
\usepackage{booktabs}
\setmainlanguage{german}
% rotate text in table heads
\newcommand\rotateText[2]{\rotatebox{90}{\parbox{#2cm}{\raggedright#1}}}
% Tabularx cells
\newcolumntype{R}[1]{>{\raggedleft\hsize=#1\hsize\arraybackslash}X}%
\newcolumntype{L}[1]{>{\raggedright\hsize=#1\hsize\arraybackslash}X}%
\newcolumntype{C}[1]{>{\centering\hsize=#1\hsize\arraybackslash}X}
\usepackage{hyphenat}
\hyphenation{Um-setz-bar-keit Kom-ple-xi-tät}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabularx}{\textwidth}{%
C{0.1}%
L{0.39}%
C{0.06}%
C{0.06}%
C{0.06}%
C{0.06}%
C{0.06}%
C{0.06}%
C{0.06}%
C{0.06}%
C{0.06}%
}
\toprule
& \multirow{2}{*}{\rotateText{\textbf{Kriterien}}{3.8}} & \multirow{2}{*}{\rotateText{\textbf{Gewichtungsfaktor}}{3.8}} & \multicolumn{2}{c}{\textbf{RSS}} & \multicolumn{2}{c}{\textbf{FP}} & \multicolumn{2}{c}{\textbf{Prox.}} & \multicolumn{2}{c}{\textbf{Opt.}} \\
\cmidrule(lr){4-5}\cmidrule(lr){6-7}\cmidrule(lr){8-9}\cmidrule(lr){10-11}
& & & \rotateText{Erfüllungsgrad}{3.18} & \rotateText{Werte}{3.18} & \rotateText{Erfüllungsgrad}{3.18} & \rotateText{Werte}{3.18} & \rotateText{Erfüllungsgrad}{3.18} & \rotateText{Werte}{3.18} & \rotateText{Erfüllungsgrad}{3.18} & \rotateText{Werte}{3.18} \\
\midrule
\multirow{3}{*}{\rotateText{Komplexität}{1.4}} & Installationsaufwand & 4 & 4 & 16 & 2 & 8 & 3 & 12 & 5 & 20 \\
& Hardware & 2 & 4 & 8 & 4 & 8 & 4 & 8 & 5 & 10 \\
& Software & 2 & 4 & 8 & 3 & 6 & 5 & 10 & 5 & 10 \\
\cmidrule(lr){1-11}
\multirow{3}{*}{\rotateText{Kosten}{0.4}} & Installation & 2 & 3 & 6 & 2 & 4 & 4 & 8 & 5 & 10 \\
& Anzahl Sensoren & 4 & 3 & 6 & 2 & 4 & 4 & 8 & 5 & 10 \\
\cmidrule(lr){1-11}
& Energieverbrauch & 4 & 3 & 12 & 3 & 12 & 4 & 16 & 5 & 20 \\
\midrule
& \multicolumn{3}{l}{Punkte} & 62 & & 58 & & 66 & & 90 \\
& \multicolumn{3}{l}{Wirtschaftliche Wertigkeit} & 0.69 & & 0.64 & & 0.73 & & 1 \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}
答案2
什么是花哨的,什么是美学的(关于表格设计)......是非常个人的观点:-),所以我只是重写了你的代码以使其更简单,并给出与你类似的结果姆韦:
(红线表示文本边距)。姆韦下面是用于makecell
列标题的包,booktabs
仅用于确定\cmidrule
,简化了列的确定等
\documentclass[
a4paper,
oneside,
titlepage=firstiscover
]{scrartcl}
\usepackage[onehalfspacing]{setspace}
\usepackage{polyglossia}
\usepackage{rotating}
\usepackage{booktabs, makecell, tabularx}
\renewcommand\theadfont{\bfseries}
\usepackage[table]{xcolor}
\usepackage{ragged2e}
\usepackage{hyphenat}
\hyphenation{Um-setz-bar-keit Kom-ple-xi-tät}
%-------------------------------- show page layout, only for test
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\begin{document}
\begin{table}
\settowidth\rotheadsize{\theadfont Gewichtungsfaktor }
\setlength\tabcolsep{4pt}
\renewcommand\arraystretch{1.2}
\renewcommand{\belowrulesep}{0pt}
\centering
\begin{tabularx}{\linewidth}{@{} l l
c c
>{\columncolor{gray!10}\centering} X c
>{\columncolor{gray!10}\centering} X c
>{\columncolor{gray!10}\centering} X c
>{\columncolor{gray!10}[\tabcolsep][0pt]\centering\arraybackslash} X
@{}}
\Xhline{1pt}
& & \multicolumn{3}{c}{\textbf{RSS}}
& \multicolumn{2}{c}{\textbf{FP}}
& \multicolumn{2}{c}{\textbf{Prox.}}
& \multicolumn{2}{c}{\textbf{Opt.}} \\
\cmidrule(l{2.5pt}){4-5}
\cmidrule(l{2.5pt}){6-7}
\cmidrule(l{2.5pt}){8-9}
\cmidrule(l{2.5pt}){10-11}
& \rothead{\textbf{Kriterien}}
& \rothead{\textbf{Gewichtungsfaktor}}
& \rothead{Erfüllungsgrad}
& \rothead{Werte}
& \rothead{Erfüllungsgrad}
& \rothead{Werte}
& \rothead{Erfüllungsgrad}
& \rothead{Werte}
& \rothead{Erfüllungsgrad}
& \rothead{Werte} \\
\Xhline{0.75pt}
\thead[l]{Komplexität}
& Installationsaufwand & 4 & 4 & 16 & 2 & 8 & 3 & 12 & 5 & 20 \\
& Hardware & 2 & 4 & 8 & 4 & 8 & 4 & 8 & 5 & 10 \\
& Software & 2 & 4 & 8 & 3 & 6 & 5 & 10 & 5 & 10 \\
\hline
\thead[l]{Kosten}
& Installation & 2 & 3 & 6 & 2 & 4 & 4 & 8 & 5 & 10 \\
& Anzahl Sensoren & 4 & 3 & 6 & 2 & 4 & 4 & 8 & 5 & 10 \\
& Energieverbrauch & 4 & 3 & 12 & 3 & 12 & 4 & 16 & 5 & 20 \\
\hline
& \multicolumn{3}{l}{Punkte} & 62 & & 58 & & 66 & & 90 \\
& \multicolumn{3}{l}{Wirtschaftliche Wertigkeit}
& 0.69 & & 0.64 & & 0.73 & & 1 \\
\Xhline{0.75pt}
\end{tabularx}
\end{table}
\end{document}
编辑:看完之后技术员评论我看到上面姆韦不完整。现在我纠正这一点。在修正中我也考虑了提到的评论。
答案3
我将交换列和行,并开始使用booktabs
以及rotating
。作为初学者:
%!TEX TS-program = lualatex
\documentclass[
a4paper,
oneside,
titlepage=firstiscover
]{scrartcl}
\usepackage[
onehalfspacing
]{setspace}
\usepackage{polyglossia}
\usepackage{float}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{colortbl}
\usepackage{ragged2e}
\usepackage{rotating}
\usepackage{booktabs}
\setmainlanguage{german}
% rotate text in table heads
\newcommand\rotateText[2]{\rotatebox{90}{\parbox{#2cm}{\raggedright#1}}}
% Tabularx cells
\newcolumntype{R}[1]{>{\raggedleft\hsize=#1\hsize\arraybackslash}X}%
\newcolumntype{L}[1]{>{\raggedright\hsize=#1\hsize\arraybackslash}X}%
\newcolumntype{C}[1]{>{\centering\hsize=#1\hsize\arraybackslash}X}
\usepackage{hyphenat}
\hyphenation{Um-setz-bar-keit Kom-ple-xi-tät}
\begin{document}
\begin{table}[ht]
\centering
\begin{tabularx}{\textwidth}{C{0.1}L{0.39}C{0.06}|C{0.06}>{\columncolor[gray]{0.9}}C{0.06}|C{0.06}>{\columncolor[gray]{0.9}}C{0.06}|C{0.06}>{\columncolor[gray]{0.9}}C{0.06}|C{0.06}>{\columncolor[gray]{0.9}}C{0.06}}
& \multirow{2}{*}{\rotateText{\textbf{Kriterien}}{4}} & \multirow{2}{*}{\rotateText{\textbf{Gewichtungsfaktor}}{4}} & \multicolumn{2}{l}{\textbf{RSS}} & \multicolumn{2}{l}{\textbf{FP}} & \multicolumn{2}{l}{\textbf{Prox.}} & \multicolumn{2}{l}{\textbf{Opt.}} \\
& & & \rotateText{Erfüllungsgrad}{3.18} & \rotateText{Werte}{3.18} & \rotateText{Erfüllungsgrad}{3.18} & \rotateText{Werte}{3.18} & \rotateText{Erfüllungsgrad}{3.18} & \rotateText{Werte}{3.18} & \rotateText{Erfüllungsgrad}{3.18} & \rotateText{Werte}{3.18} \\
\toprule
\multirow{3}{*}{\rotateText{Komplexität}{1.75}} & Installationsaufwand & 4 & 4 & 16 & 2 & 8 & 3 & 12 & 5 & 20 \\
& Hardware & 2 & 4 & 8 & 4 & 8 & 4 & 8 & 5 & 10 \\
& Software & 2 & 4 & 8 & 3 & 6 & 5 & 10 & 5 & 10 \\
\midrule
\multirow{3}{*}{\rotateText{Kosten}{0.5}} & Installation & 2 & 3 & 6 & 2 & 4 & 4 & 8 & 5 & 10 \\
& Anzahl Sensoren & 4 & 3 & 6 & 2 & 4 & 4 & 8 & 5 & 10 \\
\midrule
& Energieverbrauch & 4 & 3 & 12 & 3 & 12 & 4 & 16 & 5 & 20 \\
\\[-1em]
& \multicolumn{3}{l}{Punkte} & 62 & & 58 & & 66 & & 90 \\
& \multicolumn{3}{l}{Wirtschaftliche Wertigkeit} & 0.69 & & 0.64 & & 0.73 & & 1 \\
\end{tabularx}
\end{table}
\begin{sidewaystable}
\centering
\renewcommand{\arraystretch}{1.1}
\begin{tabularx}{\textwidth}{l*{8}{X}}
\toprule & \multicolumn{3}{c}{Komplexität} & \multicolumn{2}{c}{Kosten} & & &\\\cmidrule(lr){2-4}\cmidrule(lr){5-6}
Produkt & Installationsaufwand (4) & Hardware (2) & Software (2) & Installation (2) & Anzahl Sensoren (4) & Energieverbrauch (4) & Punkte & Wirtsch. Wertigkeit\\\midrule
RSS\\
\hskip.5em Erfüllungsgrad & 4 & 4 & 4 & 3 & 3 & 3 & &\\
\hskip.5em Werte & 16 & 8 & 8 & 6 & 6 & 12 & 62 & 0.69\\\addlinespace
RSS\\
\hskip.5em Erfüllungsgrad & 4 & 4 & 4 & 3 & 3 & 3 & &\\
\hskip.5em Werte & 16 & 8 & 8 & 6 & 6 & 12 & 62 & 0.69\\\addlinespace
RSS\\
\hskip.5em Erfüllungsgrad & 4 & 4 & 4 & 3 & 3 & 3 & &\\
\hskip.5em Werte & 16 & 8 & 8 & 6 & 6 & 12 & 62 & 0.69\\\bottomrule
\end{tabularx}\medbreak
Zahlen in Klammern bezeichnen die Gewichtungsfaktoren der einzelnen Komponenten zur Gesamtpunktzahl.
\end{sidewaystable}
\end{document}