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 行会显示出来。

在此处输入图片描述

错误是(出现6次):

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

? 

我尝试调整第一个多列的“大小”,但没有成功。

非常感谢您的帮助。谢谢。

答案1

最简单的方法是将 放在\multicolumn第二行,留下一个空的第一行,您可以使用负 vspace 进行备份。我还修复了您的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}

产生预期结果且没有任何错误消息

在此处输入图片描述

相关内容