2010-06-22 15 views
5

¡Entusiastas de Hi LaTeX y programadores de TeX!LaTeX: Mostrar bloque solo si queda espacio suficiente

Actualmente estoy desarrollando una clase de documento de una sola página para algunos tipos de folletos que deben generarse automáticamente. Lamentablemente, la cantidad limitada de espacio no permite mostrar todo en la página, por lo que debo omitir algunos artículos por completo (no quiero que solo se imprima la mitad de un artículo en el folleto).

En pseudocódigo, eso es el comando Busco:

\if_sufficient_vspace_left 
    {<big block/minipage with an article>} 
    {<otherwise do nothing or something else>} 

Y los casos de uso son:

  • Si hay suficiente espacio vertical para el siguiente artículo de la izquierda de la página, imprime el artículo completamente. De lo contrario, agregue solo el título a la lista »Otros artículos«.
  • Si le queda suficiente espacio vertical, agregue una publicidad grande, de lo contrario agregue una más pequeña o no haga nada.

Estoy seguro de que habrá una manera de obtener esto. Por ejemplo, el comando TeX \leaders, que funciona en modo vertical y horizontal, solo inserta el líder si queda suficiente espacio. Lamentablemente, no quiero repetir nada, y una acción de otro podría ser genial también.

Se apreciarán todas las palabras clave y sugerencias para los comandos útiles. No tiene que publicar soluciones completas (pero puede, por supuesto).

Muchas gracias,
Christoph

Respuesta

1

El paquete 'needspace' lo que usted está buscando puede dar, aunque si no hay suficiente espacio se inserta un salto de página:

http://ctan.org/pkg/needspace

Lo usaría algo como esto:

\needspace{5\BaseLineSkip} % assume you need 5 lines for minipage 
    {<big block/minipage with an article>} 

Si no lo quiere ta de salto de página cuando no hay suficiente espacio, en vez quieren más contenido pero con la minipágina guardado hasta la próxima página, entonces usted tendrá que investigar cómo las manijas látex "flota":

http://en.wikibooks.org/wiki/LaTeX/Floats,_Figures_and_Captions

+0

no creo que el paquete 'needspace' será de alguna utilidad para mí, porque no quiero generar una segunda página bajo ninguna circunstancia. De todos modos, las dos macros '\ pagetotal' y' \ pagegoal' que utiliza el paquete 'needspace' se ven prometedoras. Creo que los miraré primero. Gracias por el consejo. – tux21b

+0

@ tux21b: Lo siento, no leí tu pregunta lo suficiente. Probablemente ya lo esté haciendo, pero el uso de los condicionales de Tex o el paquete 'ifthen' en LaTeX (que también funciona si/then/else) puede ayudar con la estructura básica de implementar lo que desea. OH, TAMBIÉN, el mejor lugar para pedir ayuda es probablemente en un foro en http://www.latex-community.org. –

+0

Jeje, tienes razón. Ahora he resuelto el problema con el paquete ifthen y las dos macros '\ pagetotal' y '\ pagegoal'. Entonces, gracias por tu ayuda y el enlace. – tux21b

Cuestiones relacionadas