Unterbrochene vertikale Strichlinien in der Tabularx- und Booktabs-Umgebung

Unterbrochene vertikale Strichlinien in der Tabularx- und Booktabs-Umgebung

Ich habe eine sehr große Tabelle mit Ergebnissen von 4 verschiedenen Methoden und mein Vorgesetzter hat mir vorgeschlagen, die Methoden der Lesbarkeit halber mit vertikalen Linien zu trennen. Wenn ich jedoch vertikale gestrichelte Linien verwende, sind diese nicht durchgehend und meines Wissens ist dies ein sehr häufiges Problem in Booktabs-Umgebungen. Normalerweise wird empfohlen, keine vertikalen Linien zu verwenden, aber ich möchte es tun. Gibt es eine Problemumgehung? Ich bin auch offen für Ihre Vorschläge zur Verbesserung der Lesbarkeit.

Hier ist das funktionierende Beispiel. Entschuldigen Sie die bedeutungslosen Spaltennamen.

\documentclass[journal]{IEEEtran}
\usepackage[utf8]{inputenc}
\usepackage{amsmath} % assumes amsmath package installed
\usepackage{amssymb} 
\usepackage{caption}
\usepackage{tabularx, booktabs}

\usepackage{arydshln}


\begin{document}

\begin{table*}
\caption{a $\rightarrow$ b}
\label{tabAB}
\begin{tabularx}{\textwidth}{@{\extracolsep{\fill}}ccc:cccc:cccc:cccc}
\toprule
 & \multicolumn{2}{c}{\begin{tabular}[c]{@{}c@{}}a \\ b \end{tabular}} & \multicolumn{4}{c}{\begin{tabular}[c]{@{}c@{}}c \\$\downarrow$\\ d \end{tabular}} & \multicolumn{4}{c}{\begin{tabular}[c]{@{}c@{}}e \\ $\downarrow$\\ f \end{tabular}} & \multicolumn{4}{c}{\begin{tabular}[c]{@{}c@{}}g \\ $\downarrow$\\ h \end{tabular}}\\ 
& & & \multicolumn{2}{c}{q} & \multicolumn{2}{c}{w} & \multicolumn{2}{c}{e} & \multicolumn{2}{c}{r} & \multicolumn{2}{c}{t} & \multicolumn{2}{c}{y}\\
\cmidrule(lr){2-15}
 & u & w & \begin{tabular}[c]{@{}c@{}}a\\ b \end{tabular} & \begin{tabular}[c]{@{}c@{}}c.\\ d \end{tabular} & \begin{tabular}[c]{@{}c@{}}e.\\ f \end{tabular} & \begin{tabular}[c]{@{}c@{}}h.\\ g \end{tabular} & \begin{tabular}[c]{@{}c@{}}j.\\ j \end{tabular}  & \begin{tabular}[c]{@{}c@{}}k.\\ t \end{tabular} & \begin{tabular}[c]{@{}c@{}}y.\\ v \end{tabular} & \begin{tabular}[c]{@{}c@{}}z.\\ w \end{tabular} & \begin{tabular}[c]{@{}c@{}}q.\\ w \end{tabular} & \begin{tabular}[c]{@{}c@{}}a.\\ t \end{tabular} & \begin{tabular}[c]{@{}c@{}}y.\\ u \end{tabular} & \begin{tabular}[c]{@{}c@{}}z.\\ x \end{tabular} \\ \hline\\
\begin{tabular}[c]{@{}c@{}}q\\ a No \\\ t \end{tabular} & & \multicolumn{13}{c}{err(\%)} \\
\cmidrule(lr){2-15}
1        & 1.33  & 1.10 & 2.43 & 1.92 & 1.57 & 1.79 & 1.58  & 1.57 & 1.19 & 1.77 & 1.42 & 1.41 & 1.89 & \textbf{1.52} \\
2        & 2.48  & 2.53 & 2.60 & 2.31 & 2.82 & 2.80 & 2.84  & 2.82 & 2.50 & 2.79 & 2.60 & 2.59 & 2.13 & \textbf{2.51} \\
3        & 2.94  & 2.75 & 2.90 & 2.46 & 4.82 & 3.48 & 2.83  & 4.82 & 2.30 & 2.45 & 3.78 & 2.77 & 2.41 & \textbf{2.67} \\
4        & 3.36  & 3.53 & 3.45 & 0.54 & 9.69 & 2.34 & 2.70  & 2.68 & 2.17 & \textbf{2.28} & 3.53 & 3.52 & 2.03 & 2.30 \\
5        & \textbf{2.38}  & 2.65 & 3.60 & 2.32 & 2.31 & 2.10 & 2.34  & 2.31 & 4.92 & 2.05 & 2.81 & 2.78 & 2.08 & 2.33 \\\\
Overall        & 2.90  & 2.11 &  2.80 & 2.11 & 2.84 & 2.30 & 3.86  & 3.84 & 2.02 & 2.27 & 2.23 & 3.21 & 2.51 & \textbf{2.87} \\\\
\begin{tabular}[c]{@{}c@{}}t\\ w \end{tabular} & \textbf{1.55} & 1.88 & 2.09 & 1.59 & 1.15 & 1.01 & 1.15 & 1.15 & 1.64 & 1.98 & 1.85 & 1.85 & 1.24 & 1.68 \\
\bottomrule

\end{tabularx}
\end{table*}

\end{document}

Rabatt.

Die gestrichelten Linien sollten von der ersten bis zur letzten Reihe fortgesetzt werden.

Antwort1

Hier ist eine Lösung, die die Notwendigkeit (gestrichelter oder durchgezogener) vertikaler Linien überflüssig macht. Dies geschieht, indem durch wohlüberlegt platzierte \cmidruleAnweisungen mehr Struktur in den Kopfzeilen bereitgestellt wird. Außerdem wird von einer Umgebung tabularxzu einer tabular*Umgebung gewechselt. Dieser Wechsel ist angezeigt, da innerhalb von Zellen kein automatischer Zeilenumbruch erforderlich zu sein scheint.

Bildbeschreibung hier eingeben

\documentclass[journal]{IEEEtran}
\usepackage[utf8]{inputenc}
\usepackage{amsmath,amssymb,caption,booktabs}
%% Handy shortcut macro:
\newcommand\mytab[1]{\begin{tabular}[c]{@{}c@{}} #1 \end{tabular}}

\begin{document}

\begin{table*}
\caption{a$\to$b} \label{tabAB}
\setlength\tabcolsep{0pt} % let LaTeX figure out intecol. whitespace
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} *{15}{c} }
\toprule
 \mytab{q\\a No\\t} 
 & \multicolumn{2}{c}{\mytab{a\\$\downarrow$\\ b}} 
 & \multicolumn{4}{c}{\mytab{c\\$\downarrow$\\ d}}  
 & \multicolumn{4}{c}{\mytab{e\\$\downarrow$\\ f}}
 & \multicolumn{4}{c}{\mytab{g\\$\downarrow$\\ h}}\\ 
\cmidrule{4-7} \cmidrule{8-11} \cmidrule{12-15} 
& & & \multicolumn{2}{c}{q} & \multicolumn{2}{c}{w} 
    & \multicolumn{2}{c}{e} & \multicolumn{2}{c}{r} 
    & \multicolumn{2}{c}{t} & \multicolumn{2}{c}{y}\\
\cmidrule{2-3} \cmidrule{4-5} \cmidrule{6-7} \cmidrule{8-9} 
\cmidrule{10-11} \cmidrule{12-13} \cmidrule{14-15} 
 & u & w 
 & \mytab{a\\b} & \mytab{c.\\d} & \mytab{e.\\f} & \mytab{h.\\g} 
 & \mytab{j.\\j}& \mytab{k.\\t} & \mytab{y.\\v} & \mytab{z.\\w} 
 & \mytab{q.\\w}& \mytab{a.\\t} & \mytab{y.\\u} & \mytab{z.\\x}\\
\midrule
 & \multicolumn{14}{c}{err(\%)} \\
\cmidrule{2-15}
1  & 1.33  & 1.10 & 2.43 & 1.92 & 1.57 & 1.79 & 1.58  & 1.57 
   & 1.19 & 1.77 & 1.42 & 1.41 & 1.89 & \textbf{1.52} \\
2  & 2.48  & 2.53 & 2.60 & 2.31 & 2.82 & 2.80 & 2.84  & 2.82 
   & 2.50 & 2.79 & 2.60 & 2.59 & 2.13 & \textbf{2.51} \\
3  & 2.94  & 2.75 & 2.90 & 2.46 & 4.82 & 3.48 & 2.83  & 4.82 
   & 2.30 & 2.45 & 3.78 & 2.77 & 2.41 & \textbf{2.67} \\
4  & 3.36  & 3.53 & 3.45 & 0.54 & 9.69 & 2.34 & 2.70  & 2.68 
   & 2.17 & \textbf{2.28} & 3.53 & 3.52 & 2.03 & 2.30 \\
5  & \textbf{2.38}  & 2.65 & 3.60 & 2.32 & 2.31 & 2.10 & 2.34  
   & 2.31 & 4.92 & 2.05 & 2.81 & 2.78 & 2.08 & 2.33 \\[1ex]
Overall  & 2.90  & 2.11 &  2.80 & 2.11 & 2.84 & 2.30 & 3.86  
   & 3.84 & 2.02 & 2.27 & 2.23 & 3.21 & 2.51 & \textbf{2.87} \\[1ex]
\mytab{t\\w} & \textbf{1.55} & 1.88 & 2.09 & 1.59 & 1.15 & 1.01 & 1.15 
   & 1.15 & 1.64 & 1.98 & 1.85 & 1.85 & 1.24 & 1.68 \\
\bottomrule
\end{tabular*}
\end{table*}

\end{document}

verwandte Informationen