¿Cómo puedo hacer estas modificaciones específicas usando tcolorbox?

¿Cómo puedo hacer estas modificaciones específicas usando tcolorbox?

Estoy desarrollando una plantilla y quería hacer una caja usando el paquete tcolorbox de una manera específica. Me gustaría que cuando la página divida el cuadro de una página a otra, el formato se viera así: Primera caja de descanso

Y en la página siguiente se vería así: Segunda caja de descanso

Además, cuando no hubiera interrupción, se vería así: Caja irrompible

Hasta ahora, mi código se ve así:

\definecolor{ChapterBackground}{HTML}{101010}
\definecolor{ChapterForeground}{HTML}{e93820}
\newtcolorbox{solution}[1][]{%
enhanced,
breakable,
boxrule = 0pt,frame hidden,
borderline west = {4pt}{0pt}{ChapterBackground},
colback = CoverForeground!10,
sharp corners,
coltitle = ChapterForeground!85,
rounded corners = southeast,
rounded corners = northeast,
arc is angular,
arc = 3mm,
attach boxed title to top left,
boxed title style = {%
        enhanced,
        colback=ChapterBackground,
        top=0pt,
        bottom=0pt,
        sharp corners,
        rounded corners = northeast,
        arc is angular,
        arc = 2mm,
        colframe = ChapterBackground,
        rightrule = 0pt,
        bottomrule = 0pt,
        toprule = 0pt,
},
title = {\bfseries Solution:},
underlay = {% Leaf fold
    \path[fill = tcbcolback!80!black] ([yshift = 3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
    \path[draw = tcbcolframe,
    shorten <=-0.05mm,
    shorten >=-0.05mm, 
    draw opacity=0] ([yshift = 3mm]interior.south east)--++(-0.4,-0.1)--++(0.1,-0.2);
},
overlay unbroken and first={%
    \path
    let
    \p1=(title.north east),
    \p2=(frame.north east)
    in
    node[anchor=west,
         color=black!70] 
    at (title.east) {#1};}}

Si alguien sabe cómo hacer estos pequeños cambios tan específicos se lo agradecería mucho.

Respuesta1

Creo que lo que buscas es algo como esto:

\documentclass{article}
\usepackage{tcolorbox}
\tcbuselibrary{skins, breakable}

\definecolor{ChapterBackground}{HTML}{101010}
\definecolor{ChapterForeground}{HTML}{e93820}
\definecolor{CoverForeground}{HTML}{ee0000}

\newtcolorbox{solution}[1][]{%
    enhanced,
    skin first = enhanced,
    skin middle = enhanced,
    skin last = enhanced,
    breakable,
    boxrule = 0pt,
    frame hidden,
    borderline west = {4pt}{0pt}{ChapterBackground},
    colback = CoverForeground!10,
    coltitle = ChapterForeground!85,
    sharp corners,
    rounded corners = southeast,
    rounded corners = northeast,
    arc is angular,
    arc = 3mm,
    attach boxed title to top left,
    boxed title style = {%
        enhanced,
        colback = ChapterBackground,
        colframe = ChapterBackground,
        top = 0pt,
        bottom = 0pt,
        sharp corners,
        rounded corners = northeast,
        arc is angular,
        arc = 2mm,
        rightrule = 0pt,
        bottomrule = 0pt,
        toprule = 0pt,
    },
    title = {\bfseries Solution:}, 
    overlay unbroken = {%
        \node[anchor=west, color=black!70] at (title.east) {#1};
    },
    overlay first = {%
        \node[anchor=west, color=black!70] at (title.east) {#1};
        \path[fill = tcbcolback!80!black] 
            ([yshift = 3mm]interior.south east) -- ++(-0.4,-0.1) -- ++(0.1,-0.2);
    },
    overlay middle = {%
        \path[fill = tcbcolback!80!black] 
            ([yshift = -3mm]interior.north east) -- ++(-0.4,0.1) -- ++(0.1,0.2);
        \path[fill = tcbcolback!80!black] 
            ([yshift = 3mm]interior.south east) -- ++(-0.4,-0.1) -- ++(0.1,-0.2);
    },
    overlay last = {%
        \path[fill = tcbcolback!80!black] 
            ([yshift = -3mm]interior.north east) -- ++(-0.4,0.1) -- ++(0.1,0.2);
    }
}

\usepackage{lipsum}

\begin{document}

\begin{solution}[This is a box]
\lipsum[1]
\end{solution}

\vspace{5cm}

\begin{solution}[This is a box]
\lipsum[1-2]
\end{solution}

\end{document}

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Una caja que se rompe varias veces tendría dos orejas de perro (es decir, esquinas "dobladas") en la parte central, una en la esquina superior derecha y otra en la esquina inferior derecha.


Necesita varias cosas para configurar: En primer lugar, desea que cada parte de la caja rota tenga la máscara enhanced, pero de forma predeterminada, tienen máscaras diferentes, lo que también afecta rounded borders. Dado que usted define la esquina de corte en la esquina superior derecha e inferior derecha usando rounded corners, por lo tanto necesitamos configurar skin first = enhanced, skin middle = enhanced, skin last = enhanced.

Luego, agregas dos cosas usando superposiciones: el título real junto al título en cuadro y las orejas de perro. Por lo tanto es necesario definir

  1. overlay unbrokendonde solo colocas el titulo,
  2. overlay firstdonde colocas el título y la oreja de perro inferior,
  3. overlay middledonde colocas la oreja de perro superior e inferior, y finalmente
  4. overlay lastdonde solo colocas la oreja superior del perro.

No mostraste cómo debería verse la esquina inferior derecha de una caja intacta, así que supuse que también querrías una esquina cortada allí. Si no desea una esquina cortada en la parte inferior derecha, puede reemplazar la opción rounded corners = southeastpor extras first and middle = { rounded corners = southeast }(porque todavía necesitamos esquinas cortadas en la parte inferior derecha para las orejas de perro).

información relacionada