Quiero insertar una nueva página dentro de uncaja de coloresentorno, pero el siguiente ejemplo muestra que ignora el \newpage
comando:
\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 tcolorbox
entornos separados entre el \newpage
comando con los parámetros de máscara establecidos en skin=enhancedfirst
y skin=enhancedlast
respectivamente.
\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 tcolorbox
en una longitud determinada. Esto es inutilizable en mi situación, ya que la cantidad de tcolorbox
entornos llega a cientos y cada edición del documento requiere un nuevo cálculo de cada break at
pará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 tcolourbox
entorno 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}