Wie verwende ich \multirow und \multicolumn zusammen?

Wie verwende ich \multirow und \multicolumn zusammen?

Ich habe Probleme, eine Tabelle mit \multirow \multicolumn zu erstellen.

Beide Inhalte schienen sich zu überschneiden und sahen nicht schön aus.

Bildbeschreibung hier eingeben

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 \multicolumnAnweisung (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 SSpalte 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...)

Bildbeschreibung hier eingeben

\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} 

verwandte Informationen