Re: Estrazione condizionata delle righe iniziali di un testo

#56406
Up
0
Down
::


Caro Agostino,

metto un messaggio anche in questo filone, anche se mi sembra che stiamo sempre parlando del problema di comporre gli indirizzi secondo un certo formato.

Ti ho già accennato all’ambiente foldedletter della classe letteracdp, e ribadisco anche qui il paragone. Secondo me, il modo migliore per risolvere il problema che poni è far lavorare per te il costruttore di pagine: memorizzi in una scatola temeporanea (diciamo \box0) una lista verticale contenente il materiale che vuoi suddividere, e poi la spezzi con \vsplit all’altezza desiderata. Del resto, mi sembra che quest’idea di usare \vsplit tu l’abbia già considerata. Il codice`\setbox2 = \vsplit 0 to \myheight`porrà in \box2 la parte che rientra nell’altezza prefissata \myheight e lascerà in \box0 il resto.

Naturalmente questa è solo l’idea di base, ma ci sono diversi dettagli da sistemare.

  1. L’altezza \myheight dovrà essere impostata opportunamente, di solito a un multiplo intero (o quasi, vedi \topskip glue) di \baselineskip.

  2. Quando si effettua il \vsplit, bisognerà pensare al valore al quale impostare \splittopskip; ciò, in linea di principio, potrebbe dipendere anche dall’uso che si intende fare di \box2. Se ne vuole fare \unvbox? Si vuole usare come “scatola chiusa”?

  3. Nel costruire la lista verticale da inserire in \box0, potrebbe essere necessario inserire delle penalità per proibire, o scoraggiare, la cesura in certi punti.

Però, davvero, mi sembra che potresti copiare pari pari l’algoritmo che trovi in cdpbundl.dtx per l’ambiente foldedletter.

Ciao.


Gustavo

Go to top