
Я стараюсь использовать tcolorbox
окружение внутри longtable
окружения. Минимальный пример:
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{longtable}
\usepackage{lipsum}
\begin{document}
\begin{longtable}{|p{\linewidth}|}
\hline
\begin{tcolorbox}
\lipsum[3]
\end{tcolorbox}
\\
\hline
\end{longtable}
\end{document}
К сожалению, код не компилируется:
! Misplaced \noalign.
\pagebreak ->\noalign
{\ifnum `}=0\fi \@testopt {\LT@no@pgbk -}4
l.11 \end{tcolorbox}
Есть ли какой-нибудь волшебный вариант/хак/обходной путь, чтобы это сделать?
решение1
Вам необходимо сбросить before
ключ. По умолчанию он содержит \pagebreak, и поскольку longtable переопределяет \pagebreak, вы получаете ошибки. Это здесь компилируется:
\documentclass{article}
\usepackage{tcolorbox}
\usepackage{longtable}
\usepackage{lipsum}
\begin{document}
\begin{longtable}{|p{\linewidth}|}
\hline
\begin{tcolorbox}[before={}]
\lipsum[3]
\end{tcolorbox}
\\
\hline
\end{longtable}
\end{document}
решение2
Некоторые нестандартные параметры среды tcolorbox
также, по-видимому, вызывают эту проблему. В частности, я столкнулся с тем, что подобные сообщения об ошибках появляются при попытке поместить tcolorbox
среду в , longtable
если она использует какие-либо из следующих параметров:
breakable
lines before break=X
- и, возможно, другие настройки, связанные с разрывом страницы
Эти настройки не отображаются в минимальном примере, предоставленном автором, но другие пользователи могут иметь дело со средами, в которых они используют такие настройки, и попадать сюда (именно так я и оказался здесь).
Ответ Ульрикитакже следует применять!