Newsgroup: it.comp.software.tex
Titolo: combattere le underfull hbox scrivendo in \raggedbottom

Sto aiutando una mia amica a scrivere la sua tesi di laurea in Filosofia
in LaTeX. Come potete immaginare le pagine sono riempite di solo testo
(al più uno o due \section), il che porta però ad un problema: dal
momento che scriviamo in twoside (quindi in \raggedbottom), molte volte
il compilatore, non avendo abbastanza elementi con cui giocare, è
costretto ad allargare esageratamente la spaziatura verticale tra i
paragrafi, con conseguenti underfull vbox, spesso con badness 10000. Il
risultato finale in questi casi è in effetti bruttino.
Come si ovvia a questo problema, non volendo rinunciare a \raggedbottom?
Tenete conto che non posso chiederle di mettersi a riscrivere frasi in
funzione dell'aspetto tipografico: il tipo di lavoro che sta facendo
offre poca libertà in questo senso.
Stiamo scrivendo con il pacchetto classicthesis, quindi con le classi
KOMA-Script (scrreprt). Le impostazioni sono (per ora, spero per sempre)
quelle di default, quindi non dovrebbero esserci pasticci tipo l'altezza
del testo non multipla di \baselineskip. Del resto in questo caso credo
dovrei trovare Underfull hbox quasi in ogni pagina, mentre in 15 pagine
ne compaiono (al momento) solo quattro.
Grazie,
p.

 scrive:

Direi che è \flushbottom, \raggedbottom è esattamente il contrario.
Preoccupati del problema solo quando il testo sarà definitivo. Che c'è
in quelle pagine? Note al piede?
Ciao
Enrico

 in quelle pagine? Note al piede?
Intendevo \flushbottom, certo. Mi occuperò del problema a tempo debito,
ma prima o poi bisognerà farlo... Nel documento c'è solo testo,
sezionato in capitoli e sezioni. Nessuna nota al piede.
p.

 scrive:

Niente note in una tesi di filosofia? Sono esterrefatto. ;-)
Probabilmente l'interlinea non è scelta al meglio e ci sono righe 
incompatibili (ascendenti, discendenti e accenti). C'è qualche 
"e maiuscola accentata" nelle pagine incriminate? Basta poco per far
mancare lo spazio a una riga e si finisce con l'effetto che lamenti.
A lavoro finito ci si può lavorare con più calma.
Ciao
Enrico

 mancare lo spazio a una riga e si finisce con l'effetto che lamenti.
In effetti c'è un po' di tutto, anche qualche parola in tedesco. Ho però
notato una cosa: in tutti i casi di underfull vbox nella pagina
incriminata c'è una \section. Va tutto bene invece quando inizia un
nuovo capitolo o quando non ci sono nuove sezioni. In tutti i casi
problematici nel titolo delle \section compare una lettera accentata,
che in classicthesis viene resa in maiuscoletto, e potrebbe quindi
portare al problema da te descritto.
Mi basterebbe quindi modificare il comando che genera lo spazio bianco
intorno alle \section in modo da renderlo più "elastico". Il punto
delicato dovrebbe essere questo:
\titleformat{\section}
{\relax}{\textsc{\MakeTextLowercase{\thesection}}}{1em}{\spacedlowsmallcaps}
e poi:
\titlespacing*{\section}{0pt}{1.25\baselineskip}{1\baselineskip}
ma non saprei bene dove mettere le mani.
p.

 scrive:

Ecco il problema! Non c'è alcuno spazio elastico prima del titolo di 
sezione che con questi parametri non occupa un numero intero di righe.
\titlespacing*{\section}{0pt}{2\baselineskip}{1\baselineskip}
\titlespacing*{\section}{0pt}{1.5\baselineskip}{1.5\baselineskip}
Usa il primo se vuoi un titolo "asimmetrico", il secondo se lo vuoi
simmetrico. Potrebbe anche andare
\titlespacing*{\section}{0pt}{1.5\baselineskip}{.5\baselineskip}
Gli argomenti di \titlespacing* sono: il comando da massaggiare,
il rientro del titolo, lo spazio verticale prima e lo spazio verticale
dopo.
Ciao
Enrico

 sezione che con questi parametri non occupa un numero intero di righe.
Vorrei sapere come ho fatto a non rendermene conto! :)
Ho risolto con 1.2 e 0.8, ora rimane solo una underfull vbox, penso
dovuta al fatto che il compilatore non vuole mettere solo una riga di un
nuovo paragrafo in una pagina ed il resto nella successiva. Il paragrafo
viene quindi fatto cominciare dopo, lasciando però una pagina troppo
vuota... Non occorre tu mi ricordi che a queste cose si pensa alla fine!
Ti tartasso ancora: c'era modo di aggiungere uno spazio elastico,
estendibile per esempio da 0 a 0.4\baselineskip, sia sopra che sotto il
titolo della sezione?
E uno spazio "comprimibile"?
Pensi valga la pena far notare all'autore di classicthesis questo
inconveniente? In realtà mi sembra molto strano che nessuno l'abbia già
fatto.
Ciao e grazie ancora,
p.

 fatto.
Scrivi a André Miede, di solito è molto disponibile.
Ciao
Enrico