Re: plain – magie in \box255

#81764
Up
0
Down
::

OldClaudio” post=81044Per quel che mi risulta quello che vorresti fare implica modificare la routine di uscita per lo ship out. Io non ci metterei le mani sopra anche se la routine di output di plain è decisamente più semplice di quella di LaTeX.

Tuttavia ci sono alcune cose in plain come le penalità da mettere prima dei punti vietati di interruzione pagina, i comandi \filbreak e \goodbreak; ne trovi le definizioni nel file plain.tex. Secondo me, benché siano usabili anche con LaTeX, non funzionano affidabilmente come previsto, ma Knuth li descrive nel TeXbook come dei comandi molto utili.

Sono soluzioni a cui ho pensato e che mi sembrano problematiche:

1) rendere elastici \parskip e \baselineskip, aggiungendo delle \penalty nei punti “vietati”. Il problema è che così le distanze tra paragrafi e le altezze delle linee di base risultano diverse da una pagina all’altra, e il risultato è inguardabile.

2) Knuth suggerisce qualche magia per gestire particolari interruzioni di pagina tra una sezione e l’altra (tipo \vskip 0pt plus.3\vsize\penalty-250\vskip 0pt plus-.3\vsize) ma io non sono mai riuscito a farle funzionare, e ho visto formati scritti da gente molto più titolata di me che usano le stesse magie con i miei stessi scarsissimi risultati.

3) L’unica alternativa “facile” sembra essere quella di lavorare su \widowpenalty e \clubpenalty, incollando con dei \kern le sezioni indivisibili del documento: la densità del “grigio” del testo resta uguale su tutte le pagine, ma la pagina che subisce l’interruzione risulta più breve delle altre, e comunque non riempie adeguatamente la pagina fisica. E’ comunque l’ipotesi su cui sto lavorando.

L’idea di lasciare dei particolari whatsit in certe linee per analizzarli al momento dello \shipout (per poi adottare la strategia che indicavo nel primo post) mi sembra una idea interessante, ma non sono ancora all’altezza di elaborare qualcosa di definito.

Grazie, ciao.

Go to top