tcolorbox、tabularx:帶有多列的第一行在 tcolorbox 環境中不起作用

tcolorbox、tabularx:帶有多列的第一行在 tcolorbox 環境中不起作用

tabularx我在環境中遇到問題tcolorbox,程式碼如下:

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

在常規tabularx環境中,該表沒問題(請參閱第二表)。但是,如果我在環境(第一個表)中執行相同的操作tcolorbox,則包含 , 的第一行multicolumn不起作用,而如果其中一個通過了所有錯誤,則其他 5 行會顯示。

在此輸入影像描述

錯誤是(出現 6x):

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

? 

我嘗試調整第一個多列的“大小”,但沒有成功。

非常感謝任何幫助。謝謝。

答案1

最簡單的方法是將 放在\multicolumn第二行中,留下一個空的第一行,您可以使用負虛擬空間進行備份。我還修正了你的ibs定義。

在此輸入影像描述

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

答案2

這個問題已經解決了tcolorbox v4.20。現在,multicolumn選項可以毫無問題地在最上面的行中使用。

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}

產生預期結果,沒有任何錯誤訊息

在此輸入影像描述

相關內容