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:

  1. ¿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;
  2. Permite hasta un salto de página en cualquier parte del cuerpo de medio ambiente, y no ruidosamente si eso no se puede garantizar.
¿Fue útil?

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 \unvboxes deben permitir notas / flotadores para que funcione correctamente - si usted no necesita eso, es posible considerar el cambio a todos a \boxes 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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top