tcolorbox 错误的 newtcolorbox 格式

tcolorbox 错误的 newtcolorbox 格式

我正在努力解决在双列页面布局中使用书籍类 scrbook 的环境的正确换行问题。我正在使用彩色盒子包来定义花式框。正如您在我的代码中看到的,我有两个颜色框。一个用于注释调用tcnote,另一个用于定义(就像数学教科书中常见的那样)。

不幸的是,编译结果取决于页面上有多少文本。例如,如果我添加更多虚拟文本,则结果会很糟糕,如下图所示。您可以通过注释/取消注释以下行来试用我的代码\lipsum[1][2] % dummy text ON/OF

  • 在 tcnote 环境之外,绿色框中的方程式将按预期打印。
  • 在 tcnote 环境中,方程式打印在绿色框外面,这是错误的。
  • tcnote 环境分为几页,但一页就足够了。

在此处输入图片描述

MNWE:

  \documentclass[fontsize=10pt,twocolumn]{scrbook}
  
  \usepackage{lipsum}  
  \usepackage[most]{tcolorbox}
  \usepackage{amsmath,mathtools}
    \newcommand\abs[1]{\ensuremath{\lvert#1\rvert}}

\newtcolorbox{tcnote}[1][]{%
  enhanced jigsaw, % better frame drawing
  enforce breakable,         % breakable,
  borderline west={2pt}{0pt}{red}, % straight vertical line at the left edge
  sharp corners, % No rounded corners
  boxrule=0pt, % no real frame,
  coltitle={red!25!black},  % Black colour for title
  colback={yellow!30},
  attach title to upper, % Move the title into the box
  right=10pt,
  compress page,
  enhanced,
  #1
}

\newtcbtheorem[auto counter,number within=chapter]{fyzdef}{DEF}{%
  colback=green!5!white,
  colframe=green!75!black,
  fonttitle=\itshape,        % \bfseries,
  enforce breakable,         % breakable,
  compress page,
  enhanced,
}{fyz}  


\begin{document}
  \section{Section}
    \lipsum[5]
    \lipsum[5]
    \lipsum[1]

    \lipsum[1][2]
    % \lipsum[1][2]  % dummy text ON/OF

    \begin{fyzdef}{Kronecker}{def016}
      \begin{equation}           
        \delta_{ij} = 
        \begin{cases} 
            1  & \text{for } i = j     \\
            0  & \text{for } i \neq j.
        \end{cases}
      \end{equation}
    \end{fyzdef}

    \lipsum[1]
    
    \begin{tcnote}    
      \lipsum[1]
      
      \begin{fyzdef}{Einstein sume rule}{def015}
        \lipsum[1][3]
        \begin{equation*}
          a'_i = \sum^3_{j=1} = \alpha_{ij}a_j.            
        \end{equation*}
        text
        \begin{equation}
          a_ia_i = a_1a_1 + a_2a_2 + a_3a_3 = \abs{a}^2 = a^2.    % (2.1)       
        \end{equation}
      \end{fyzdef}

      \lipsum[1][2]

      \begin{fyzdef}{Kronecker}{def016}
        \begin{equation}           
          \delta_{ij} = 
          \begin{cases} 
              1  & \text{for } i = j     \\
              0  & \text{for } i \neq j.
          \end{cases}
        \end{equation}
      \end{fyzdef}

      \lipsum[1][2]
      \begin{equation}
        a'_i = α_{ij} a_j         
      \end{equation}
      \lipsum[1][2]
      \begin{equation}
        α_{ik} α_{ij} = δ_{kj},    
      \end{equation}
      \lipsum[1]

    \end{tcnote}  
\end{document}

答案1

根据 mbert 的帖子,解决方案是enforce breakable用简单的开关替换breakable

彩色盒子文档说,enforce breakable当开关用于可破坏盒子内的可破坏盒子时,会产生副作用。在这种情况下,它通常会造成混乱。

相关内容