2010-06-22 9 views
5

Ciao appassionati di LaTeX e programmatori TeX!LaTeX: mostra il blocco solo se è rimasto spazio sufficiente

Attualmente sto sviluppando una classe di documento a pagina singola per alcuni tipi di volantini che dovrebbero essere generati automaticamente. Sfortunatamente la quantità limitata di spazio non consente di visualizzare tutto sulla pagina, quindi ho bisogno di saltare completamente alcuni articoli (non voglio che la metà di un articolo sia stampata sul volantino).

In pseudo-codice, questo è il comando Cerco:

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

E i casi di utilizzo sono:

  • Se non v'è spazio verticale sufficiente per il seguente articolo sinistra sulla pagina, stampare l'articolo completamente. Altrimenti aggiungi solo il titolo all'elenco "Altri articoli".
  • Se è rimasto abbastanza spazio verticale, aggiungere un annuncio grande, altrimenti aggiungere uno più piccolo o non fare nulla.

Sono sicuro che ci sarà un modo per ottenere questo. Ad esempio, il comando TeX \leaders, che funziona in modalità verticale e orizzontale, inserisce il leader solo se rimane spazio sufficiente. Sfortunatamente non voglio ripetere nulla, e anche un'altra azione potrebbe essere ottima.

Qualsiasi parola chiave e suggerimenti per comandi utili saranno apprezzati. Non devi pubblicare soluzioni complete (ma puoi ovviamente farlo).

Molte grazie,
Christoph

risposta

1

Il pacchetto 'needspace' può dare quello che stai cercando, anche se non c'è abbastanza spazio si inserisce un'interruzione di pagina:

http://ctan.org/pkg/needspace

Lo useresti in questo modo:

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

Se non vuoi ta interruzione di pagina quando non c'è abbastanza spazio, vuole invece più contenuti, ma con la minipage salvato fino pagina successiva, allora si avrà bisogno di indagare come le maniglie LaTeX "galleggia":

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

+0

non credo che il pacchetto 'needspace' mi sarà utile, perché non voglio generare una seconda pagina in tutte le circostanze. Ad ogni modo, le due macro '\ pagetotal' e' \ pagegoal' che sono usate dal pacchetto 'needspace' sembrano promettenti. Penso che li guarderò prima. Grazie per il consiglio. – tux21b

+0

@ tux21b: Scusa, non ho letto abbastanza attentamente la tua domanda. Probabilmente lo stai già facendo, ma usare i condizionali di Tex o il pacchetto "ifthen" in LaTeX (che fa anche se/then/else) può aiutare con la struttura di base di implementare ciò che vuoi. OH, ANCHE, il posto migliore per chiedere aiuto è probabilmente in un forum su http://www.latex-community.org. –

+0

Hehe, hai ragione. Ho ora risolto il problema con il pacchetto ifthen e le due macro '\ pagetotal' e '\ pagegoal'. Quindi, grazie per il tuo aiuto e il link. – tux21b

Problemi correlati