
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í:
Y en la página siguiente se vería así:
Además, cuando no hubiera interrupción, se vería así:
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}
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
overlay unbroken
donde solo colocas el titulo,overlay first
donde colocas el título y la oreja de perro inferior,overlay middle
donde colocas la oreja de perro superior e inferior, y finalmenteoverlay last
donde 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 = southeast
por extras first and middle = { rounded corners = southeast }
(porque todavía necesitamos esquinas cortadas en la parte inferior derecha para las orejas de perro).