Haciendo látex compuesto tipo dado de texto en dos páginas enfrentadas
-
19-09-2019 - |
Pregunta
¿Cómo animo / Látex hacer composición tipográfica alguna porción de texto de modo que todo va a aparecer en una página incluso consecutivo, página impar par de páginas?
Con ensayo y error, \nopagebreak
puede ser inducidas a hacer esto, pero hay una estrategia que simplemente funciona? Algo así como un entorno samepage
sería lo ideal, pero que:
- ¿Se forzar un salto de página en las páginas impares, si lo que se necesita para obtener todo el texto en páginas opuestas;
- Permite hasta un salto de página en cualquier parte del cuerpo de medio ambiente, y no ruidosamente si eso no se puede garantizar.
Solución
Se puede poner juntos un entorno como
\newenvironment{twopage}{% \begingroup\setbox0\vbox\bgroup }{% \egroup \ifdim\ht0>\textheight \setbox1\vsplit0 to \textheight \cleardoublepage\unvbox1\clearpage \ifdim\ht0>\textheight \PackageWarning{twopage}{Overflow in twopage environment}% \fi \unvbox0\clearpage \else \clearpage\unvbox0\clearpage \fi\endgroup }
Si quieres un fracaso ruidoso, el cambio en \PackageWarning
\PackageError
, Los \unvbox
es deben permitir notas / flotadores para que funcione correctamente - si usted no necesita eso, es posible considerar el cambio a todos a \box
es vez (aunque yo soy un poco oxidado en el comportamiento de \vsplit
con respecto a profundidades de cajas y contenedores, por lo que podría producir un comportamiento extraño, pero que garantizaría que sólo tomó dos páginas por nada extra que fluye fuera de la parte inferior de la segunda página).
Otros consejos
No es una distinción entre \clearpage
y \cleardoublepage
. Mediante el uso de \cleardoublepage
justo antes de las cosas que quieres en el lado izquierdo y \clearpage
antes de las cosas que quieres en el lado derecho se puede forzar el diseño que está buscando.
Por supuesto, la opción twoside
es imprescindible.