Ancho de celda incorrecto en la tabla al fusionar columnas

Ancho de celda incorrecto en la tabla al fusionar columnas

Estoy intentando crear una celda con columnas fusionadas pero no produce una celda con el ancho correcto. Cuando uso co lo rcomo parámetros de alineación, funciona perfectamente si el texto en la celda tiene menos ancho que el ancho de la celda, pero en el caso de que el texto tenga más de unas pocas palabras, se desborda el margen derecho. Para resolver esto, lo estoy usando p{with}como parámetro de alineación, pero por alguna razón produce celdas con un ancho de celda más pequeño.

En el siguiente ejemplo 0.84*4+0.97coincide con 4.33pero no produce los resultados esperados.

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

Producción

Respuesta1

La suma de los anchos utilizables de los cincoindividualcolumnas es de hecho 0.84in*4+0.97in=4.33in.

Sin embargo, dado que hay un relleno de espacios en blanco (en la cantidad de \tabcolsep) a la izquierda y a la derecha de cada celda, el ancho utilizable delcombinaciónde las cinco celdas es 4.33in+8\tabcolsep.

Para aprovechar este hecho, cambie

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

a

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

El valor de \tabcolsepgeneralmente lo establece la clase de documento. Las clases de documentos LaTeX "estándar" -- article, report, y book-- se utilizan 6ptcomo valor.

Respuesta2

El problema principal se resolvió en la respuesta de @Mico, me gustaría abordar otros problemas. La mesa tiene mucho ruido y comandos repetidos innecesarios. En LaTeX, puedes definir tus propias macros de acceso directo para hacer cualquier cosa que uses con frecuencia. Aquí tienes una lista de cambios que puedes probar:

  • definir una nueva macro para celdas coloreadas, \CC{..}por ejemplo
  • eliminar \centeringy definir el tipo de columna Cen su lugar
  • eliminar \fontsize{10pt}{12.0pt}\selectfonty usar \smallo\footnotesize
  • eliminar primero \cellcolor[HTML]{FFFFFF}, el valor predeterminado es blanco
  • eliminar \multicolumns innecesarios
  • es mejor usarlo [!htbp]en lugar de [H]y dejar que LaTeX decida el lugar recomendado para su mesa
  • También puedes probar tabularxcon automático hsizeen lugar de ptipo de columna.

Aquí hay una versión limpia de su tabla:

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

información relacionada