
Ich versuche, eine Zelle mit verbundenen Spalten zu erstellen, aber es wird keine Zelle mit der richtigen Breite erstellt. Wenn ich c
oder l
oder r
als 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.97
stimmt es mit überein, 4.33
fü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}
Antwort1
Die Summe der Nutzbreiten der fünfIndividuellSpalten sind in der Tat 0.84in*4+0.97in=4.33in
.
\tabcolsep
Da 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 \tabcolsep
wird im Allgemeinen durch die Dokumentklasse festgelegt. Die „Standard“-LaTeX-Dokumentklassen -- article
, report
, und book
-- verwenden 6pt
als 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
\centering
und definieren SieC
stattdessen den Spaltentyp - entfernen
\fontsize{10pt}{12.0pt}\selectfont
und verwenden\small
oder\footnotesize
- zuerst entfernen
\cellcolor[HTML]{FFFFFF}
, Standard ist weiß - Entfernen Sie unnötige
\multicolumn
s - besser zu verwenden
[!htbp]
statt[H]
und LaTeX den empfohlenen Platz für Ihre Tabelle entscheiden zu lassen - Sie können auch versuchen,
tabularx
automatischhsize
stattp
columntype
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}