2010-06-22 15 views
5

Salut les amateurs de LaTeX et les programmeurs TeX!LaTeX: Afficher le bloc uniquement s'il reste suffisamment d'espace

Je développe actuellement une classe de document d'une seule page pour certains types de dépliants qui devraient être générés automatiquement. Malheureusement, la quantité limitée d'espace ne permet pas d'afficher tout sur la page, donc j'ai besoin de sauter certains articles complètement (je ne veux pas seulement la moitié d'un article imprimé sur le flyer).

Dans le code pseudo, thats la commande Je cherche:

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

Et les cas d'utilisation sont:

  • S'il y a assez d'espace vertical pour l'article suivant à gauche sur la page, imprimez l'article complètement. Sinon, ajoutez uniquement le titre à une liste »Autres articles«.
  • S'il reste assez d'espace vertical, ajoutez une grande annonce, sinon ajoutez-en une plus petite ou ne faites rien.

Je suis tout à fait sûr qu'il y aura un moyen d'obtenir ceci. Par exemple, la commande TeX \leaders, qui fonctionne en mode vertical et horizontal, insère uniquement le repère s'il reste suffisamment d'espace. Malheureusement, je ne veux rien répéter, et une autre action pourrait être bien aussi.

Tous les mots-clés et conseils pour des commandes utiles seront appréciés. Vous n'avez pas à poster des solutions complètes (mais vous pouvez bien sûr).

Un grand merci,
Christoph

Répondre

1

Le paquet 'needspace' peut vous donner ce que vous cherchez, mais s'il n'y a pas assez d'espace, il insère un saut de page:

http://ctan.org/pkg/needspace

Vous utiliseriez quelque chose comme ceci:

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

Si vous ne voulez pas ta saut de page quand il n'y a pas assez d'espace, au lieu veulent plus de contenu, mais avec la minipage enregistrée jusqu'à ce que la page suivante, vous devrez enquêter sur la façon dont les poignées de LATEX « flotte »:

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

+0

Je ne pense pas que le paquet 'needspace' sera utile pour moi, car je ne veux pas générer une deuxième page en toutes circonstances. Quoi qu'il en soit, les deux macros '\ pagetotal' et' \ pagegoal' qui sont utilisées par le paquet 'needspace' sont prometteuses. Je pense que je vais les regarder en premier. Merci pour le conseil. – tux21b

+0

@ tux21b: Désolé, je n'ai pas assez lu votre question. Vous le faites probablement déjà, mais en utilisant les conditionnels de Tex ou le paquet 'ifthen' dans LaTeX (qui le fait aussi si/then/else) peut aider avec la structure de base d'implémenter ce que vous voulez. OH, AUSSI, le meilleur endroit pour demander de l'aide est probablement dans un forum à http://www.latex-community.org. –

+0

Hehe, vous avez raison. J'ai maintenant résolu le problème avec le paquet ifthen et les deux macros '\ pagetotal' et '\ pagegoal'. Donc, merci pour votre aide et le lien. – tux21b