![Почему tcolorbox вставляет такие странные разрывы страниц?](https://rvso.com/image/472715/%D0%9F%D0%BE%D1%87%D0%B5%D0%BC%D1%83%20tcolorbox%20%D0%B2%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D1%8F%D0%B5%D1%82%20%D1%82%D0%B0%D0%BA%D0%B8%D0%B5%20%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5%20%D1%80%D0%B0%D0%B7%D1%80%D1%8B%D0%B2%D1%8B%20%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%3F.png)
В нижнем MWE я хотел бы создать форматированный раздел для примеров. Однако пакет tcolorbox вставляет странные разрывы страниц. Я хотел бы иметь некоторые, но не понимаю, почему он не устанавливает их так, чтобы все было последовательно. Может ли кто-нибудь мне помочь?
Мне также были бы интересны предложения по улучшению реализации стрелок и сопоставления положения цели, если у кого-то есть больше знаний — в отличие от меня.
\documentclass{article}
\usepackage{graphicx, color, colortbl}
\usepackage{xltabular}
\usepackage{scrextend}
\usepackage[breakable, most]{tcolorbox}
\usepackage{lipsum}
\newtcolorbox{exampleFieldFrame}[1]{
breakable,
enhanced,
boxrule=.25pt,
colframe=blue,
colback=white,
attach boxed title to top left,
boxed title style={
colback=blue,
arc=0pt,
top=3pt,
bottom=3pt,
},
outer arc = 8mm,
arc = 8mm,
sharp corners = northwest,
sharp corners = southeast,
title={#1},
}
\newenvironment{exampleField}[2][false]{
\vspace{2\baselineskip}
\bgroup\setlength{\parindent}{0cm}
\begin{exampleFieldFrame}{Beispiel xxx:}
}{
\end{exampleFieldFrame}
\vspace{\baselineskip}
\egroup
}
\newenvironment{exampleBody}[1][Aufgabenstellung]{
\xltabular{\textwidth}{@{}l p{3cm} X@{}}
\hspace{5pt}\begin{tikzpicture}
\fill[fill=blue] (0, 2pt) node[anchor=south]{}
-- (0, 10pt) node[anchor=north]{}
-- (20pt,6pt) node[anchor=south]{}
-- cycle;
\end{tikzpicture} & \textit{#1:} & }{
\endxltabular
\vspace{-15pt}
}
\newenvironment{exampleBody*}[1][Lösung]{
\begin{xltabular}{\textwidth}{@{}l p{\dimexpr\textwidth-3cm} X@{}}
\hspace{5pt}\begin{tikzpicture}
\fill[fill=blue] (0,2pt) node[anchor=south]{}
-- (0, 10pt) node[anchor=north]{}
-- (20pt,6pt) node[anchor=south]{}
-- cycle;
\end{tikzpicture} & \textit{#1:} &
\end{xltabular}
\vspace{\baselineskip}
\begin{addmargin}[44pt]{0pt}
}{
\end{addmargin}
}
\begin{document}
\begin{exampleField}{\textwidth}
\begin{exampleBody}[Zielstellung]
Es soll der Ersatzwiderstand (= Eingangswiderstand) des toten Netzwerkes aus Abbildung bezüglich der herausgeführten Klemmen berechnet werden.
\end{exampleBody}
\begin{exampleBody}[Zielstellung]
Es soll der Ersatzwiderstand (= Eingangswiderstand) des toten Netzwerkes aus Abbildung bezüglich der herausgeführten Klemmen berechnet werden.
\end{exampleBody}
\begin{exampleBody*}
\lipsum[1-5]
\end{exampleBody*}
\begin{exampleBody}[Zielstellung]
Es soll der Ersatzwiderstand (= Eingangswiderstand) des toten Netzwerkes aus Abbildung bezüglich der herausgeführten Klemmen berechnet werden.
\end{exampleBody}
\end{exampleField}
\end{document}
решение1
Я думаю, xltabular
что не работает внутри breakable tcolorbox
. Я не знаю, почему вы определяете exampleField
env. У него два аргумента, но вы не использовали их в определении. IMHO, вам не нужно xltabular
достигать цели. Формат может быть легко установлен в среде некоторыми \leftskip
и удален \leftskip
для первой строки, а затем поместить маркер и заголовок перед фактическим содержимым.
\documentclass{article}
\usepackage[breakable, most]{tcolorbox}
\usepackage{lipsum}
\newtcolorbox{exampleFieldFrame}[1]{
breakable,
enhanced,
boxrule=.25pt,
colframe=blue,
colback=white,
attach boxed title to top left,
boxed title style={
colback=blue,
arc=0pt,
top=3pt,
bottom=3pt,
},
outer arc = 8mm,
arc = 8mm,
sharp corners = northwest,
sharp corners = southeast,
title={#1},
}
\newenvironment{exampleBody}[1][Aufgabenstellung]{%
\par\bgroup\leftskip4cm\hskip-\leftskip\hbox to 4cm{\begin{tikzpicture}
\fill[fill=blue] (0,2pt) -- (0, 10pt) -- (20pt,6pt) -- cycle;
\end{tikzpicture}\quad\textit{#1:}\hss}\ignorespaces}{%
\par\egroup%
}
\begin{document}
\begin{exampleFieldFrame}{Beispiel xxx:}
\begin{exampleBody}[Zielstellung]
\lipsum[2]
\end{exampleBody}
\begin{exampleBody}[Zielstellung]
\lipsum[2]
\end{exampleBody}
\begin{exampleBody}[Lösung]
\lipsum[1-5]
\end{exampleBody}
\begin{exampleBody}
\lipsum[2]
\end{exampleBody}
\end{exampleFieldFrame}
\end{document}