Crear salto de página manual dentro de tcolorbox

Crear salto de página manual dentro de tcolorbox

Quiero insertar una nueva página dentro de uncaja de coloresentorno, pero el siguiente ejemplo muestra que ignora el \newpagecomando:

\documentclass[11pt]{book}

\usepackage{lipsum}
\usepackage[breakable,skins]{tcolorbox}

\newtcolorbox{activitybox}{%
    breakable,
    enhanced,
    colback=white,
    colframe=black,
    coltitle=white,
    title={\bfseries Title}
}

\begin{document}

\begin{activitybox}
    \lipsum[1]
    \newpage
    \lipsum[1]
\end{activitybox}

\end{document}

La documentación sugiere que la única manera de hacer esto es crear undescanso falso (página 373)donde creo dos tcolorboxentornos separados entre el \newpagecomando con los parámetros de máscara establecidos en skin=enhancedfirsty skin=enhancedlastrespectivamente.

\documentclass[11pt]{book}

\usepackage{lipsum}
\usepackage[breakable,skins]{tcolorbox}

\newtcolorbox{activitybox}[1][]{%
    breakable,
    enhanced,
    colback=white,
    colframe=black,
    coltitle=white,
    #1
}

\begin{document}

\begin{activitybox}[title=Title,skin=enhancedfirst]
    \lipsum[1]
\end{activitybox}
\newpage
\begin{activitybox}[skin=enhancedlast]
    \lipsum[1]
\end{activitybox}

\end{document}

El problema con esta idea es que es posible que la nueva página deba ubicarse dentro de los entornos. Luego, estos deberán cerrarse prematuramente y abrirse nuevamente, asegurándose de que el estado ambiental se mantenga como antes. También puede haber más definiciones de inicio y fin dentro de esos entornos que no deberían llamarse ya que el entorno realmente no ha terminado y aún continúa en la página.

Una solución alternativa es hacer uso de labreak at (página 355)parámetro que romperá el tcolorboxen una longitud determinada. Esto es inutilizable en mi situación, ya que la cantidad de tcolorboxentornos llega a cientos y cada edición del documento requiere un nuevo cálculo de cada break atparámetro, lo que a su vez solo es posible después de una representación completa del documento para poder medir la nueva longitud a mano. .

En un nivel inferior es posible un salto de página cuandobreakable (página 351)está habilitado y el tcolourboxentorno debe abarcar más de una página. ¿Es posible activar ese salto de página en un nivel superior o al menos completar el resto de la página con un espacio vertical en blanco?

Respuesta1

Podrías usar

\documentclass[11pt]{book}

\usepackage{lipsum}
\usepackage[breakable,skins]{tcolorbox}

\newtcolorbox{activitybox}[1][]{%
    breakable,
    enhanced,
    colback=white,
    colframe=black,
    coltitle=white,
    #1
}
\newcommand*{\fakebreak}{\par\vspace{\textheight minus \textheight}\pagebreak}


\begin{document}

\begin{activitybox}[title=Title]
    \lipsum[1]

    \fakebreak

    \lipsum[1]
\end{activitybox}

\end{document}

¡Pero tenga en cuenta que el resultado es diferente, porque el cuadro se completará hasta el final de la página!

Si desea un comportamiento similar para los descansos automáticos, use la opción height fixed for=first and middle:

\documentclass[11pt]{book}

\usepackage{lipsum}
\usepackage[breakable,skins]{tcolorbox}

\newtcolorbox{activitybox}[1][]{%
    breakable,
    enhanced,
    colback=white,
    colframe=black,
    coltitle=white,
    #1
}
\newcommand*{\fakebreak}{\par\vspace{\textheight minus \textheight}\pagebreak}


\begin{document}

\begin{activitybox}[title=Title,height fixed for=first and middle]
    \lipsum[1]

    \fakebreak

    \lipsum[1-2]
    \parbox{\linewidth}{\lipsum[3-4]}% \parbox used to force an early page break
    \lipsum[5-7]
\end{activitybox}

\end{document}

información relacionada