
Ich habe Probleme, eine Tabelle mit \multirow \multicolumn zu erstellen.
Beide Inhalte schienen sich zu überschneiden und sahen nicht schön aus.
Mein vollständiges MWE:
\documentclass[12pt,oneside]{book}
\usepackage[showframe]{geometry}
\usepackage{amsmath}
\usepackage{ragged2e}
\usepackage{makecell, multirow, tabularx}
\renewcommand\theadfont{\small\bfseries} % for bold in table using \small
\renewcommand\theadgape{}
\usepackage[svgnames, table]{xcolor}
\usepackage{hhline, boldline}
\usepackage{seqsplit, caption} %for table spacing to second row
\usepackage{booktabs, ragged2e} % Use booktabs rules and get rid of vertical rules, ragged2e to ragged text
\usepackage{siunitx} %for table spacing to second row
\usepackage{threeparttable} %to add footnote below table
\usepackage{tabulary}
\usepackage{graphicx}
\usepackage[font=small,labelfont={bf,sf}, textfont={sf}, justification=centering]{caption}
\begin{document}
\begin{table}[h!]
\centering
\sisetup{table-format=3.0, table-number-alignment=center, table-column-width=2.0cm}
\begin{tabular}{lSS}
\toprule
\multirow{2}{*}{\textbf{Test Cases (Class A \& Class B)}} & \multicolumn{2}{c}{\thead{\makebox[0pt]{Arrangement Accuracy (\%)}}}\\
\cmidrule{2-3}
&{\textbf{AM}}
& {\textbf{FM}} \\
\midrule
Pairs of Samples 1 (A5 \& B42) & 333.33 & 1300.00 \\
Pairs of Samples 2 (A20 \& B44) & 47.44 & 77.35 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}
Antwort1
Der vordergründige Grund für die Beinahe-Kollision der Header-Elemente ist die Anweisung
\multicolumn{2}{c}{\thead{\makebox[0pt]{Arrangement Accuracy (\%)}}}
Wie auch immer es istnichtdie \multicolumn
Anweisung (wie man aus dem Titel Ihres Beitrags schließen kann) ist die Ursache des Problems. Stattdessen ist es die Verwendung von \makebox[0pt]{...}
, die LaTeX dazu veranlasst, die Zeile ohne Rücksicht auf die tatsächlich verfügbare Breite (die 2*2cm+2\tabcolsep beträgt) entlangzuschieben. Beachten Sie, dass die Kopfzeile auf beiden Seiten hervorsteht, nicht nur auf der linken Seite.
Wie dem auch sei, ich denke, Sie sollten die Kopfzeilenkonfiguration vereinfachen, um jeder S
Spalte vom Typ genügend Breite zu geben, sodass sie gemeinsam die Breite von abdecken Arrangement Accuracy (\%)
. Oh, und ich sehe keinen (gültigen) Grund für die Verwendung vonFettdruckin der Kopfzeile - es sei denn, Sie berücksichtigenIhre Leser anschreienein gültiger Grund zu sein. (Ich nicht...)
\documentclass[12pt,oneside]{book}
%% Condensed preamble to the bare minimum:
\usepackage{geometry,{booktabs, ragged2e,siunitx}
\begin{document}
\begin{table}[h!]
\centering
\sisetup{table-format=6.4}
\begin{tabular}{@{} lSS @{}}
\toprule
Test Cases (Class A \& Class B) & \multicolumn{2}{c@{}}{Arrangement Accuracy (\%)}\\
\cmidrule(l){2-3}
& AM & FM \\
\midrule
Pairs of Samples 1 (A5 \& B42) & 333.33 & 1300.00 \\
Pairs of Samples 2 (A20 \& B44) & 47.44 & 77.35 \\
\bottomrule
\end{tabular}
\end{table}
\end{document}