tcolorbox, tabularx: la primera línea con varias columnas no funciona en el entorno tcolorbox

tcolorbox, tabularx: la primera línea con varias columnas no funciona en el entorno tcolorbox

Tengo un problema tabularxen un tcolorboxentorno, aquí está el código:

\documentclass[]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}


\usepackage[most]{tcolorbox}
\usepackage{tabularx}
\usepackage{array}
\usepackage{colortbl}
\tcbuselibrary{skins}

\begin{document}

\newcolumntype{b}{X}
\newcolumntype{i}{>{\hsize=.005\hsize}X}
\newcolumntype{s}{>{\hsize=.15\hsize}X}

\begin{table}
\begin{center}
\begin{tcolorbox}[colback=black!0.8!white,colframe=black!4!white,
colbacktitle=gray!40!white, coltitle=black,width=1.0\linewidth,tabularx={ibs}]   
    \multicolumn{2}{b}{Number}                           & 11     \\\hline                  
    & part a                                             & 38     \\\hline 
    & part b                                             & 4      \\\hline 
    & part c                                             & 2      \\\hline\hline
    \multicolumn{2}{l}{Blabla 1}                         & 217    \\\hline 
    \multicolumn{2}{l}{Blabla 2}                         & 20     \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 105    \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 3100   \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 367
\end{tcolorbox}
\end{center}
\end{table}

\vspace{3cm}

\begin{center}
\begin{tabularx}{1.0\linewidth}{ibs}   
    \multicolumn{2}{b}{Number}                           & 11     \\\hline                  
    & part a                                             & 38     \\\hline 
    & part b                                             & 4      \\\hline 
    & part c                                             & 2      \\\hline\hline
    \multicolumn{2}{l}{Blabla 1}                         & 217    \\\hline 
    \multicolumn{2}{l}{Blabla 2}                         & 20     \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 105    \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 3100   \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 367\end{tabularx}
\end{center}

\vspace{3cm}

\end{document}

En un tabularxentorno normal, la mesa está bien (consulte la segunda tabla). Sin embargo, si hago lo mismo en un tcolorboxentorno (primera tabla), la primera línea, que contiene un multicolumn, no funciona, mientras que las otras 5 aparecen, si se pasan todos los errores.

ingrese la descripción de la imagen aquí

El error es (aparece 6x):

! Misplaced \omit.
\multispan ->\omit 
                   \@multispan 
l.31 \end{tcolorbox}

? 

Intenté jugar con el "tamaño" de la primera columna múltiple pero no lo logré.

Cualquier ayuda es muy apreciada. Gracias.

Respuesta1

Es más fácil simplemente colocar el \multicolumnen la segunda fila, dejando una primera fila vacía que pueda respaldar con un vspace negativo. También arreglé tus ibsdefiniciones.

ingrese la descripción de la imagen aquí

\documentclass[]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}


\usepackage[most]{tcolorbox}
\usepackage{tabularx}
\usepackage{array}
\usepackage{colortbl}
\tcbuselibrary{skins}

\begin{document}

\newcolumntype{b}{>{\hsize=2.8\hsize}X}
\newcolumntype{i}{>{\hsize=.05\hsize}X}
\newcolumntype{s}{>{\hsize=.15\hsize}X}

\begin{table}
\begin{center}
\errorcontextlines400
\tracingonline2

%\tracingall
\begin{tcolorbox}[colback=black!0.8!white,colframe=black!4!white,
colbacktitle=gray!40!white, coltitle=black,width=1.0\linewidth,tabularx={ibs}]%
\\
\noalign{\vspace{-\normalbaselineskip}}
    \multicolumn{2}{b}{Number}
                           & 11     \\\hline                  
    & part a                                             & 38     \\\hline 
    & part b                                             & 4      \\\hline 
    & part c                                             & 2      \\\hline\hline
    \multicolumn{2}{l}{Blabla 1}                         & 217    \\\hline 
    \multicolumn{2}{l}{Blabla 2}                         & 20     \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 105    \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 3100   \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 367
\end{tcolorbox}
\end{center}
\end{table}

\vspace{3cm}

\begin{center}
\begin{tabularx}{1.0\linewidth}{ibs}   
    \multicolumn{2}{b}{Number}                           & 11     \\\hline                  
    & part a                                             & 38     \\\hline 
    & part b                                             & 4      \\\hline 
    & part c                                             & 2      \\\hline\hline
    \multicolumn{2}{l}{Blabla 1}                         & 217    \\\hline 
    \multicolumn{2}{l}{Blabla 2}                         & 20     \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 105    \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 3100   \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 367\end{tabularx}
\end{center}

\vspace{3cm}

\end{document}

Respuesta2

Este problema se ha solucionado con tcolorbox v4.20. Ahora, multicolumnla opción se puede utilizar en la fila superior sin problemas.

código de OP

\documentclass[]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage[most]{tcolorbox}
\usepackage{tabularx}
\usepackage{array}
\usepackage{colortbl}
\tcbuselibrary{skins}

\begin{document}

\newcolumntype{b}{X}
\newcolumntype{i}{>{\hsize=.005\hsize}X}
\newcolumntype{s}{>{\hsize=.15\hsize}X}

\begin{table}
\begin{center}
\begin{tcolorbox}[colback=black!0.8!white,colframe=black!4!white,
colbacktitle=gray!40!white, coltitle=black,width=1.0\linewidth,tabularx={ibs}]   
    \multicolumn{2}{b}{Number}                           & 11     \\\hline                  
    & part a                                             & 38     \\\hline 
    & part b                                             & 4      \\\hline 
    & part c                                             & 2      \\\hline\hline
    \multicolumn{2}{l}{Blabla 1}                         & 217    \\\hline 
    \multicolumn{2}{l}{Blabla 2}                         & 20     \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 105    \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 3100   \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 367
\end{tcolorbox}
\end{center}
\end{table}

\vspace{3cm}

\begin{center}
\begin{tabularx}{1.0\linewidth}{ibs}   
    \multicolumn{2}{b}{Number}                           & 11     \\\hline                  
    & part a                                             & 38     \\\hline 
    & part b                                             & 4      \\\hline 
    & part c                                             & 2      \\\hline\hline
    \multicolumn{2}{l}{Blabla 1}                         & 217    \\\hline 
    \multicolumn{2}{l}{Blabla 2}                         & 20     \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 105    \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 3100   \\\hline 
    \multicolumn{2}{l}{Blabla 1}                         & 367\end{tabularx}
\end{center}

\vspace{3cm}

\end{document}

produce el resultado esperado sin ningún mensaje de error

ingrese la descripción de la imagen aquí

información relacionada