Как я могу сделать эти конкретные изменения с помощью tcolorbox?

Как я могу сделать эти конкретные изменения с помощью tcolorbox?

Я разрабатываю шаблон и хотел сделать коробку с использованием пакета tcolorbox определенным образом. Я хотел бы, чтобы при переносе коробки с одной страницы на другую форматирование выглядело так: Первый перерыв

А на следующей странице это будет выглядеть так: Второй блок

Также, когда бы не было перерыва, это выглядело бы так: Небьющаяся коробка

На данный момент мой код выглядит так:

\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};}}

Если кто-нибудь знает, как внести эти весьма специфичные небольшие изменения, я буду очень признателен.

решение1

Я думаю, вы ищете что-то вроде этого:

\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}

введите описание изображения здесь

введите описание изображения здесь введите описание изображения здесь

У коробки, которая была сломана несколько раз, в средней части будут два «собачьих ушка» (то есть «загнутых» угла): один в правом верхнем углу, а другой в правом нижнем.


Вам нужно настроить несколько вещей: прежде всего, вы хотите, чтобы каждая часть сломанной коробки имела скин enhanced, но по умолчанию они имеют разные скины, что также влияет на rounded borders. Поскольку вы определяете срезанный угол в правом верхнем и правом нижнем углу с помощью rounded corners, нам, следовательно, нужно установить skin first = enhanced, skin middle = enhanced, skin last = enhanced.

Затем вы добавляете две вещи с помощью наложений: фактический заголовок рядом с заголовком в рамке и собачьи уши. Следовательно, вам нужно определить

  1. overlay unbrokenгде вы размещаете только заголовок,
  2. overlay firstгде вы размещаете заголовок и нижнее собачье ухо,
  3. overlay middleгде вы размещаете верхнее и нижнее собачье ухо, и наконец
  4. overlay lastгде вы размещаете только верхнее собачье ухо.

Вы не показали, как должен выглядеть нижний правый угол неразбитой коробки, поэтому я предположил, что вы хотите, чтобы там тоже был срезанный угол. Если вы не хотите срезанный угол в правом нижнем углу, вы можете заменить опцию rounded corners = southeastна extras first and middle = { rounded corners = southeast }(потому что нам все еще нужны срезанные углы в правом нижнем углу для собачьих ушей).

Связанный контент