我尝试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
- 以及可能的其他与分页符相关的设置
这些设置没有出现在 OP 提供的最小示例中,但其他用户可能恰好在处理使用此类设置的环境并最终到达这里(这正是我最终到达这里的原因)。
Ulrike 的回答也應該套用!