在小页面内更改 tcolorbox 选项

在小页面内更改 tcolorbox 选项

下列的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}

在此处输入图片描述

相关内容