
У меня возникла проблема 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
среде таблица в порядке (см. 2-ю таблицу). Однако, если я делаю то же самое в tcolorbox
среде (1-я таблица), первая строка, которая содержит 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
option можно использовать в самой верхней строке без проблем.
Код ОП
\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}
выдает ожидаемый результат без каких-либо сообщений об ошибках