图形内部的 tcolorbox 出现不必要的中断

图形内部的 tcolorbox 出现不必要的中断

问题: 我尝试tcolorbox在图形中使用,但我的自定义命令似乎maketitle让框自行损坏。我该如何防止这种情况发生?

请注意,我确实需要这个,\tcbset{breakable}因为在我的完整文档中,很多框都需要这个选项,而且我不想通过创建没有该breakable选项的另一种框类型来手动管理这个问题。

平均能量损失

\documentclass{article}
\usepackage[a5paper, margin=1.75cm, bottom=1.25cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[breakable]{tcolorbox}
\tcbset{breakable}
\usepackage{lipsum}

% Variables
\newcommand{\letitre}{Cours Général}
\newcommand{\lesoustitre}{L'Enfance}
\newcommand{\matiere}{Philosophie}

\renewcommand{\maketitle}{
\vspace*{1cm}
\begin{flushright}
{\bfseries \huge\letitre\\[3pt]}
{\Large\itshape \lesoustitre}\\[3pt]
{\large NVV -- MP1 -- $\displaystyle\int_2^3 x\,\mathrm{d}x$}
\vspace{1cm}
\end{flushright}
}

\begin{document}
\maketitle

\begin{figure}
\begin{tcolorbox}
\lipsum[1]\lipsum[2]\lipsum[3]
\end{tcolorbox}
\end{figure}
\end{document}

第二页预览:

在此处输入图片描述

答案1

breakable您可以通过设置其选项来强制单个框不位于本地breakable=false。您还可以在figure环境中自动设置此选项(因为breakable无论如何在那里没有任何意义)。

下面用来\AddToHook做后者。

\documentclass{article}
\usepackage[a5paper, margin=1.75cm, bottom=1.25cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[breakable]{tcolorbox}
\tcbset{breakable}
\usepackage{lipsum}

% Variables
\newcommand{\letitre}{Cours Général}
\newcommand{\lesoustitre}{L'Enfance}
\newcommand{\matiere}{Philosophie}

\renewcommand{\maketitle}{
\vspace*{1cm}
\begin{flushright}
{\bfseries \huge\letitre\\[3pt]}
{\Large\itshape \lesoustitre}\\[3pt]
{\large NVV -- MP1 -- $\displaystyle\int_2^3 x\,\mathrm{d}x$}
\vspace{1cm}
\end{flushright}
}

\AddToHook{env/figure/begin}{\tcbset{breakable=false}}

\begin{document}
\maketitle

\begin{figure}
  \begin{tcolorbox}
    \lipsum[1]\lipsum[2]\lipsum[3]
  \end{tcolorbox}
\end{figure}
\end{document}

在此处输入图片描述

相关内容