下列的David Purton 的建议:
我有一个tcolorbox
可能跨页面运行的,因此它被设置为可破坏的。
但是有时我在里面使用它minipage
,即使不跨页面运行它也会损坏(大概是因为minipage
不易损坏)。
问题是:我如何检查我的是否tcolorbox
在 a 内部minipage
并将其可破坏选项设置为 false?
梅威瑟:
\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{breakable}
\tcbset{breakable}
\usepackage{lipsum}
\begin{document}
\lipsum[1-5]
\begin{minipage}{.3\textwidth}
left side
\end{minipage}\hfill
\begin{minipage}{.65\textwidth}
\begin{tcolorbox}
Text here
\begin{itemize}
\item list item here
\item and here
\item and here
\end{itemize}
\end{tcolorbox}
\end{minipage}
\begin{tcolorbox}
Text here
\begin{itemize}
\item list item here
\item and here
\item and here
\end{itemize}
\end{tcolorbox}
\end{document}
答案1
您可以在坏中断\tcbset{breakable=false}
内手动设置minipage
。例如:
\begin{minipage}{.65\textwidth}
\tcbset{breakable=false}
\begin{tcolorbox}
Text here
\begin{itemize}
\item list item here
\item and here
\item and here
\end{itemize}
\end{tcolorbox}
你可以通过以下方式获得相同的结果:
\begin{tcolorbox}[breakable=false]
...
\end{tcolorbox}
更好的是,你可以使用以下命令进行全局设置:
\usepackage{etoolbox}
\pretocmd{\minipage}{\tcbset{breakable=false}}{}{}
或不带etoolbox
:
\makeatletter
\def\minipage{%
\tcbset{breakable=false}%
\@ifnextchar[%]
\@iminipage
{\@iiiminipage c\relax[s]}}
\makeatother
平均能量损失
\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{breakable}
\tcbset{breakable}
\usepackage{lipsum}
\usepackage{etoolbox}
\pretocmd{\minipage}{\tcbset{breakable=false}}{}{}
\begin{document}
\lipsum[1-5]
\begin{minipage}{.3\textwidth}
left side
\end{minipage}\hfill
\begin{minipage}{.65\textwidth}
\begin{tcolorbox}
Text here
\begin{itemize}
\item list item here
\item and here
\item and here
\end{itemize}
\end{tcolorbox}
\end{minipage}
\begin{tcolorbox}
Text here
\begin{itemize}
\item list item here
\item and here
\item and here
\end{itemize}
\end{tcolorbox}
\end{document}