Quiero crear una lista minted
que tenga color de fondo y se pueda dividir en páginas. El consejo habitual en ese caso es utilizar el mdframed
entorno y he escrito un comando que sigue este consejo.
\newcommand{\clojurecode}[4]{
\label{code:#2}
\begin{mdframed}[backgroundcolor=LightGray,hidealllines=true,leftmargin=10mm]
\clojurefile{#1}
\end{mdframed}
\captionof{code}[#3]
{#4}
}
Pero en ese caso parece que no puedo especificar fácilmente que quiero que el título se mantenga en la misma página en la que se encuentra el listado y el samepage
entorno evitaría que el listado se divida entre las páginas, que no es lo que quiero. .
¿Existe alguna solución para vincular el título a la parte inferior del listado para que siempre aparezcan en la misma página y, sin embargo, permita que el listado se rompa?
EDITAR:
\clojurefile
el comando se genera con esta \newmintedfile
llamada:
\newmintedfile{clojure}{framesep=2mm,
baselinestretch=1.2,
numbersep=16pt,
fontsize=\footnotesize,
linenos,
breaklines,
breakanywhere}
EDITAR2: hice un ejemplo mínimo para demostrar lo que está mal: https://gist.github.com/jaen/68c6fe78c83d5d58721f
Ch1 tiene un buen comportamiento: se rompe, el título comienza al lado del final de la lista,
Ch2 está en la misma página y se comporta incorrectamente; minted no se rompe (aunque los subtítulos comienzan donde deberían),
Ch3 tiene un código más largo: se rompe como esperaba, pero el título se envía a la página siguiente y no comienza inmediatamente después de la lista,
Ch4 es la misma página nuevamente; no permite que se rompa y empuja el título a la página siguiente,
Ch5 es un ejemplo de código más largo aún; nuevamente se rompe, pero el título se envía a la página siguiente,
Ch6 es la misma página y está comentado, porque si lo descomentas, ni siquiera se compilará, parece que entra en un bucle infinito al intentar ajustar el código + título en una página y puede 't.
Lo que quiero es obtener un comportamiento en el que a) acuñado se rompa entre páginas, b) el título siempre comience al final de la lista y no pase a la página siguiente.
Y parece que no puedo encontrar uno. ¿Alguien?
Respuesta1
Aquí hay una tcolorbox
solución (solo código relevante ya que su MWE no es mínimo). Eliminé \usepackage{mdframed}
y en su lugar agregué lo siguiente:
\usepackage{tcolorbox}
\tcbuselibrary{breakable}
Eso utiliza el paquete tcolorbox
y le permite tener cajas rompibles. Se usan dentro de sus comandos (no entendí cuál es el objetivo de su versión de la misma página). El siguiente ejemplo compone un cuadro de este tipo (eche un vistazo a la documentación tcolorbox
para ver cómo personalizar la apariencia. He puesto el título en la parte inferior del cuadro. Esta es una decisión de diseño, por supuesto, puede cambiarlo). como quieras.
\newcommand{\clojurecode}[4]{
\label{code:#2}
\begin{tcolorbox}[breakable,colback=LightGray,left=10mm]
\clojurefile{#1}
\tcblower
\captionof{code}[#3]{#4}
\end{tcolorbox}
}