tcolorbox, tabularx: primeira linha com multicolunas não funciona no ambiente tcolorbox

tcolorbox, tabularx: primeira linha com multicolunas não funciona no ambiente tcolorbox

Estou com um problema tabularxem um tcolorboxambiente, aqui está o 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}

Em um tabularxambiente normal, a tabela está correta (ver 2ª tabela). Porém, se eu fizer o mesmo em um tcolorboxambiente (1ª tabela), a primeira linha, que contém um multicolumn, não funciona, enquanto as outras 5 aparecem, se passar todos os erros.

insira a descrição da imagem aqui

O erro é (aparece 6x):

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

? 

Tentei brincar com o 'tamanho' da primeira multicoluna mas não consegui.

Qualquer ajuda é muito apreciada. Obrigado.

Responder1

É mais fácil simplesmente colocar \multicolumnna segunda linha, deixando uma primeira linha vazia que você pode fazer backup com um vspace negativo. Também corrigi suas ibsdefinições.

insira a descrição da imagem aqui

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

Responder2

Este problema foi resolvido com tcolorbox v4.20. Agora, multicolumna opção pode ser usada na linha superior sem problemas.

Código do 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}

produz o resultado esperado sem qualquer mensagem de erro

insira a descrição da imagem aqui

informação relacionada