Falsche Zellenbreite in der Tabelle beim Zusammenführen von Spalten

Falsche Zellenbreite in der Tabelle beim Zusammenführen von Spalten

Ich versuche, eine Zelle mit verbundenen Spalten zu erstellen, aber es wird keine Zelle mit der richtigen Breite erstellt. Wenn ich coder loder rals Ausrichtungsparameter verwende, funktioniert es einwandfrei, wenn der Text in der Zelle kleiner als die Zellenbreite ist. Wenn der Text jedoch mehr als ein paar Wörter umfasst, läuft er über den rechten Rand hinaus. Um dies zu beheben, verwende ich p{with}als Ausrichtungsparameter, aber aus irgendeinem Grund wird dadurch eine Zelle mit kleinerer Zellenbreite erstellt.

Im folgenden Beispiel 0.84*4+0.97stimmt es mit überein, 4.33führt aber nicht zu den erwarteten Ergebnissen.

\begin{table}[H]
\begin{tabular}{p{0.97in}p{0.84in}p{0.84in}p{0.84in}p{0.84in}}
\multicolumn{1}{p{0.97in}}{\cellcolor[HTML]{FFFFFF}} & 
\multicolumn{1}{p{0.84in}}{\cellcolor[HTML]{CCCCCC}\Centering {\fontsize{10pt}{12.0pt}\selectfont col-head-1}} & 
\multicolumn{1}{p{0.84in}}{\cellcolor[HTML]{CCCCCC}\Centering {\fontsize{10pt}{12.0pt}\selectfont col-head-2}} & 
\multicolumn{1}{p{0.84in}}{\cellcolor[HTML]{CCCCCC}\Centering {\fontsize{10pt}{12.0pt}\selectfont col-head-3}} & 
\multicolumn{1}{p{0.84in}}{\cellcolor[HTML]{CCCCCC}\Centering {\fontsize{10pt}{12.0pt}\selectfont col-head-4}} \\

\multicolumn{1}{p{0.97in}}{\cellcolor[HTML]{CCCCCC}\Centering {\fontsize{10pt}{12.0pt}\selectfont row-1}} & 
\multicolumn{1}{p{0.84in}}{\Centering YES} & 
\multicolumn{1}{p{0.84in}}{\Centering NO} & 
\multicolumn{1}{p{0.84in}}{\Centering YES} & 
\multicolumn{1}{p{0.84in}}{\Centering YES} \\

\multicolumn{5}{p{4.33in}}{\Centering \cellcolor[HTML]{CCCCCC}{\textbf{ Some random long text, Some random long text, Some random long text,}}} \\
\end{tabular}
\end{table}

Ausgabe

Antwort1

Die Summe der Nutzbreiten der fünfIndividuellSpalten sind in der Tat 0.84in*4+0.97in=4.33in.

\tabcolsepDa jedoch links und rechts jeder Zelle Leerraumpolster (in Höhe von ) vorhanden sind , ist die nutzbare Breite derKombinationder fünf Zellen ist 4.33in+8\tabcolsep.

Um diese Tatsache auszunutzen, ändern Sie

\multicolumn{5}{p{4.33in}}{...}

Zu

\multicolumn{5}{p{\dimexpr4.33in+8\tabcolsep\relax}}{...}

Der Wert von \tabcolsepwird im Allgemeinen durch die Dokumentklasse festgelegt. Die „Standard“-LaTeX-Dokumentklassen -- article, report, und book-- verwenden 6ptals Wert.

Antwort2

Das Hauptproblem wurde in @Micos Antwort gelöst, ich möchte andere Probleme ansprechen. Die Tabelle enthält viel Rauschen und unnötig wiederholte Befehle. In LaTeX können Sie Ihre eigenen Tastenkombinationsmakros definieren, um alles zu tun, was häufig verwendet wird. Hier ist eine Liste der Änderungen, die Sie ausprobieren können:

  • \CC{..}Definieren Sie beispielsweise ein neues Makro für farbige Zellen
  • Entfernen \centeringund definieren Sie Cstattdessen den Spaltentyp
  • entfernen \fontsize{10pt}{12.0pt}\selectfontund verwenden \smalloder\footnotesize
  • zuerst entfernen \cellcolor[HTML]{FFFFFF}, Standard ist weiß
  • Entfernen Sie unnötige \multicolumns
  • besser zu verwenden [!htbp]statt [H]und LaTeX den empfohlenen Platz für Ihre Tabelle entscheiden zu lassen
  • Sie können auch versuchen, tabularxautomatisch hsizestatt pcolumntype

Hier ist eine bereinigte Version Ihrer Tabelle:

\documentclass[12pt,a4paper]{article}
%\usepackage{colortbl,xcolor} % OR
\usepackage[table]{xcolor}    % see Mico's comment below
\begin{document}

\newcommand{\CC}[1]{\cellcolor[HTML]{CCCCCC}{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}

\begin{table}
\begin{tabular}{C{0.97in}C{0.84in}C{0.84in}C{0.84in}C{0.84in}}
                  & \CC{\small col-head-1} & \CC{\small col-head-2} & \CC{\small col-head-3} & \CC{\small col-head-4} \\
\CC{\small row-1} & YES                    & NO                     & YES                    & YES                    \\
\multicolumn{5}{C{\dimexpr4.33in+8\tabcolsep\relax}}{\CC{\textbf{Some random long text, Some random long text, Some random long text,}}} 
\end{tabular}
\end{table}

\end{document}

verwandte Informationen