- Questo topic ha 17 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 17 anni, 3 mesi fa da
lorenzo.pantieri.
-
CreatoreTopic
-
12 Maggio 2009 alle 15:34 #33710::
Ciao a tutti. Vi pongo
una questione a dir poco generale.Sono nella fase di revisione di un libro. (\documentclass[11pt, a4paper, twoside]{book})
Ho 547 pagine complessive, meno di 100 sono
di testo; il resto è occupato da
titolo, prefazione, indice, tabelle, opere citate, etc.Seguendo i suggerimenti del Forum ho risolto il problema
di orfani e vedove con qualche
\looseness=1 oppure \looseness=-1.La soluzione mi è costata qualche spazio addizionale tra capoversi.
(Mi rendo conto che LaTeX faccia quello che può, dovendo
evitare titoli di paragrafi e sottoparagrafi in fondo
ad una pagina e mantenere lo stesso numero
di righe nelle pagine di testo.)Vi chiedo: esiste qualche “regola aurea” della tipografia
che suggerisca di ricorrere invece a
\enlargethispage{\baselineskip} (anzichè \looseness=1 oppure
\looseness=1) ed ottenere paragrafi separati da spazi “normali” ?In altre parole: in generale è preferibile
avere qualche pagina con una riga in più delle altre
oppure qualche spazio in più tra capoversi (ma con tutte le
pagine con uno stesso numero di righe)?(non posso riprodurre un esempio minimale, ché tra
l’altro uso il font Adobe Garamond Pro con XeLaTeX)Fosse stato per me avrei lasciato tranquillamente orfani e vedove,
che soprattutto se occorrono alla fine di una pagina pari o
all’inizio di una dispari non possono dare troppo fastidio.
Ma una regola aurea della tipografia (mi dicono)
impone di non farlo.Grazie,
Carlo
-
CreatoreTopic
-
AutoreRisposte
-
-
12 Maggio 2009 alle 17:44 #33711::
Ciao a tutti. Vi pongo
una questione a dir poco generale.Sono nella fase di revisione di un libro. (\documentclass[11pt, a4paper, twoside]{book})
Ho 547 pagine complessive, meno di 100 sono
di testo; il resto è occupato da
titolo, prefazione, indice, tabelle, opere citate, etc.Seguendo i suggerimenti del Forum ho risolto il problema
di orfani e vedove con qualche
\looseness=1 oppure \looseness=-1.La soluzione mi è costata qualche spazio addizionale tra capoversi.
(Mi rendo conto che LaTeX faccia quello che può, dovendo
evitare titoli di paragrafi e sottoparagrafi in fondo
ad una pagina e mantenere lo stesso numero
di righe nelle pagine di testo.)Vi chiedo: esiste qualche “regola aurea” della tipografia
che suggerisca di ricorrere invece a
\enlargethispage{\baselineskip} (anzichè \looseness=1 oppure
\looseness=1) ed ottenere paragrafi separati da spazi “normali” ?In altre parole: in generale è preferibile
avere qualche pagina con una riga in più delle altre
oppure qualche spazio in più tra capoversi (ma con tutte le
pagine con uno stesso numero di righe)?(non posso riprodurre un esempio minimale, ché tra
l’altro uso il font Adobe Garamond Pro con XeLaTeX)Fosse stato per me avrei lasciato tranquillamente orfani e vedove,
che soprattutto se occorrono alla fine di una pagina pari o
all’inizio di una dispari non possono dare troppo fastidio.
Ma una regola aurea della tipografia (mi dicono)
impone di non farlo.Le righe vedove sono molto peggio delle righe orfane, ne è testimonianza la terminologia tedesca: la riga orfana si chiama “Schusterjunge” (apprendista ciabattino), la vedova invece “Hurenkind” (figlio di p.). In genere non mi preoccuperei delle righe orfane, se non seguono immediatamente un titolo di sezione. Le vedove invece vanno evitate con grande cura.
Qualche \enlargethispage{\baselineskip}, purché dato in entrambe le pagine affacciate e il margine inferiore lo permetta, è utile e consigliabile rispetto ad ampliare lo spazio tra i paragrafi. Talvolta aiuta molto aggiungere o togliere qualche parola al posto giusto: la revisione finale è sempre lunga e complicata.
Ciao
Enrico
-
13 Maggio 2009 alle 7:38 #33712::
Le righe vedove sono molto peggio delle righe orfane, ne è testimonianza la terminologia tedesca: la riga orfana si chiama “Schusterjunge” (apprendista ciabattino), la vedova invece “Hurenkind” (figlio di p.). In genere non mi preoccuperei delle righe orfane, se non seguono immediatamente un titolo di sezione. Le vedove invece vanno evitate con grande cura.
Ciao Enrico: grazie, lo inserisco nel cassetto delle cose da ricordare.
Qualche \enlargethispage{\baselineskip}, purché dato in entrambe le pagine affacciate e il margine inferiore lo permetta, è utile e consigliabile rispetto ad ampliare lo spazio tra i paragrafi.
Perfetto era proprio il “giudizio di valore” che cercavo. Allora provo con \enlargethispage{\baselineskip} dove serve.
Talvolta aiuta molto aggiungere o togliere qualche parola al posto giusto: la revisione finale è sempre lunga e complicata.
In effetti è un aspetto che avevo largamente sottovalutato.
Grazie della risposta.
Ciao,
Carlo
-
13 Maggio 2009 alle 8:12 #33713::
Perfetto era proprio il “giudizio di valore” che cercavo. Allora provo con \enlargethispage{\baselineskip} dove serve.
Non sottovalutare nemmeno l’uso della variante asterisco di quel comando, se cerchi
`\enlargethispage*`
nell’Arte (paragrafo sulla revisione finale) trovi le motivazioni.Tuttavia, un documento di oltre 500 pagine di cui solo 100 sono di testo non è certo facile da impaginare al meglio…
Ciao,
L.
-
13 Maggio 2009 alle 8:58 #33714::
Non sottovalutare nemmeno l’uso della variante asterisco di quel comando, se cerchi
`\enlargethispage*`
nell’Arte (paragrafo sulla revisione finale) trovi le motivazioni.Ciao Lorenzo, grazie per avermelo ricordato.
Ora rileggo la pagina dell’Arte.
Mi sembra di ricordare che
\enlargethispage*
sia una sorta di combinazione convessa del tipo
\enlargethispage* = alpha \enlargethispage{\baselinskip} + (1-alpha) \looseness=1
con alpha deciso da LaTeX.
Non so se sia il modo corretto di vedere la questione. Ma quando ho letto
la tua guida avevo memorizzato \enlargethispage* così.Tuttavia, un documento di oltre 500 pagine di cui solo 100 sono di testo non è certo facile da impaginare al meglio…
Si è vero. Ed in aggiunta ho imposto degli spazi innaturali prima e dopo
ogni \section e \subsection, che forse rende la vita a LaTeX più
difficile nel riempire la pagina.Ciao,
Carlo
-
14 Maggio 2009 alle 13:33 #33715::
Ciao a tutti.Mi permetto di segnalare una possibile
frase equivoca nell’Arte (p. 72) che riporto
di seguito:
“Il valore di \looseness è un parametro locale relativo al capoverso in
cui compare, quindi l’effetto del comando non si propaga.”Ieri ho usato il comando \looseness convinto che
avesse effetti locali, limitati al capoverso.Poi mi sono reso conto che per evitare certi problemi (come
il titolo di sezione a fondo pagina) LaTeX inserisce spazi verticali
non voluti tra capoversi.
Questo avviene, almeno in un caso, due pagine
dopo il comando \looseness=1.Dunque, mi sono detto, l’effetto si propaga.
Mi rendo conto che nell’Arte con “locale” si intenda dire qualcosa di tecnico
come:
“Il valore del parametro \looseness è azzerato a ogni comando \par, quindi la riga vuota che termina il capoverso “accorciato” fa sì che i capoversi successivi siano composti con parametro \looseness=0. ”
(ho fatto copia ed incolla da un precedente intervento di Enrico sul Forum).Rimane il fatto che forsela “frase incriminata” può generare confusione,
almeno per un novizio.Scusate la spiegazione disordinata (leggi “sfogo
di chi è alle prime armi con una revisione finale in LaTeX”)Ciao,
Carlo
-
14 Maggio 2009 alle 14:26 #33716::
Ciao a tutti.
Mi permetto di segnalare una possibile
frase equivoca nell’Arte (p. 72) che riporto
di seguito:
“Il valore di \looseness è un parametro locale relativo al capoverso in
cui compare, quindi l’effetto del comando non si propaga.”Ieri ho usato il comando \looseness convinto che
avesse effetti locali, limitati al capoverso.Poi mi sono reso conto che per evitare certi problemi (come
il titolo di sezione a fondo pagina) LaTeX inserisce spazi verticali
non voluti tra capoversi.
Questo avviene, almeno in un caso, due pagine
dopo il comando \looseness=1.Dunque, mi sono detto, l’effetto si propaga.
Mi rendo conto che nell’Arte con “locale” si intenda dire qualcosa di tecnico
come:
“Il valore del parametro \looseness è azzerato a ogni comando \par, quindi la riga vuota che termina il capoverso “accorciato” fa sì che i capoversi successivi siano composti con parametro \looseness=0. ”
(ho fatto copia ed incolla da un precedente intervento di Enrico sul Forum).Rimane il fatto che forsela “frase incriminata” può generare confusione,
almeno per un novizio.Scusate la spiegazione disordinata (leggi “sfogo
di chi è alle prime armi con una revisione finale in LaTeX”)L’effetto di \looseness vale solo nel capoverso in cui il valore è impostato. Il successivo capoverso viene composto con \looseness=0. Su questo non c’è alcun dubbio. Stai confondendo la causa con l’effetto.
Se dai \looseness=1 su due capoversi, può succedere che TeX debba spingere un titolo di sezione alla pagina successiva per evitare la riga orfana. Ma a questo punto la pagina diventa troppo vuota e l’unico modo di riempirla è di allargare gli spazi tra capoversi. Evidentemente stai scegliendo male i capoversi che vuoi allungare; lo stesso succederebbe se aggiungessi parole ai capoversi incriminati in modo da allungarli di una riga, senza toccare \looseness.
Ciao
Enrico
-
14 Maggio 2009 alle 15:03 #33717::
.
L’effetto di \looseness vale solo nel capoverso in cui il valore è impostato. Il successivo capoverso viene composto con \looseness=0. Su questo non c’è alcun dubbio. Stai confondendo la causa con l’effetto.è vero, ma forse sono stato indotto in errore da quel “quindi l’effetto del
comando non si propaga”.
Se avessi trovato al suo posto qualcosa del tipo
“il successivo capoverso viene composto comunque con \looseness=0”
o similare forse sarebbe stato tutto più chiaro da subito.
Tutto qui..
Evidentemente stai scegliendo male i capoversi che vuoi allungare;Questo è sicuramente vero; ci sto lavorando.
.
lo stesso succederebbe se aggiungessi parole ai capoversi incriminati in modo da allungarli di una riga, senza toccare \looseness.grazie dell’avviso (in effetti stavo accusando \looseness di colpe non sue). Peraltro speravo di non dovere mettere mano al testo; ma credo che sarà necessario.
Ciao,
Carlo
-
18 Maggio 2009 alle 6:18 #33718::
C
Mi permetto di segnalare una possibile frase equivoca nell’Arte (p. 72) che riporto
di seguito: “Il valore di \looseness è un parametro locale relativo al capoverso in
cui compare, quindi l’effetto del comando non si propaga.”Ieri ho usato il comando \looseness convinto che
avesse effetti locali, limitati al capoverso.Poi mi sono reso conto che per evitare certi problemi (come
il titolo di sezione a fondo pagina) LaTeX inserisce spazi verticali
non voluti tra capoversi.
Questo avviene, almeno in un caso, due pagine
dopo il comando \looseness=1.Dunque, mi sono detto, l’effetto si propaga.
Ecco un’altra sottigliezza (quasi) teologica: componendo un capoverso con \looseness diverso da zero, il valore di \looseness nei capoversi successivi non cambia (questo era il significato della frase), anche se la disposizione dei capoversi successivi può cambiare, per effetto della modifica al primo capoverso.
Grazie per la segnalazione, adesso vedo come rendere più chiaro il tutto.
Ciao,
L.
-
18 Maggio 2009 alle 7:06 #33719
-
18 Maggio 2009 alle 17:17 #33720::
Ciao, ho riformulato quel capoverso (a pagina 72 dell’Arte, appena aggiornata):Il valore di \looseness è un parametro locale relativo al capoverso in cui compare, quindi l’effetto del comando non si propaga ai capoversi successivi (che vengono composti con parametro \looseness=0).
al posto di
Il valore di \looseness è un parametro locale relativo al capoverso in cui compare, quindi l’effetto del comando non si propaga.
Che ne pensi?
Grazie mille,
Lorenzo
-
19 Maggio 2009 alle 11:30 #33721::
Ciao, ho riformulato quel capoverso (a pagina 72 dell’Arte, appena aggiornata):
Il valore di \looseness è un parametro locale relativo al capoverso in cui compare, quindi l’effetto del comando non si propaga ai capoversi successivi (che vengono composti con parametro \looseness=0).
Che ne pensi?
Ciao Lorenzo, mi permetterei di suggerire:
“Il valore di \looseness è un parametro locale relativo al solo capoverso in cui compare.
I capoversi successivi vengono dunque composti con parametro \looseness=0.”Grazie mille,
LorenzoGrazie a te.
Ciao,
Carlo
-
20 Maggio 2009 alle 8:20 #33722::
Ricapitoliamo. La frase in discussione (tratta dal paragrafo sulla revisione finale dell’Arte di maggio) era (è) questa:Il valore di \looseness è un parametro locale relativo al capoverso in cui compare, quindi l’effetto del comando non si propaga.
Questa frase, che ha tratto in inganno Carlo, è giusta o sbagliata? Carlo non ha tutti i torti: allungando (o accorciando) un capoverso che si trova a pagina 1 di un documento di 500 pagine, può succedere, al limite, che tutti i capoversi successivi vengano spostati (anche se restano composti con la loro lunghezza “naturale”), quindi, a rigore, l’effetto di quell’unico, iniziale \looseness si è propagato per tutto il documento. 🙄
Naturalmente, il senso della frase non era quello: si voleva (e si vuole) semplicemente dire che, ai fini dell’allungamento/accorciamento, il comando \looseness ha effetto solo nel relativo capoverso. Ho cercato di specificare meglio il concetto così (è la versione che ora si trova nell’Arte di giugno):
Il valore di \looseness è un parametro locale relativo al capoverso in cui compare, quindi l’effetto del comando non si propaga ai capoversi successivi (che vengono composti con parametro \looseness=0).
Ora penso che il concetto sia più chiaro, ma l’ambiguità osservata da Carlo rimane. Per essere irreprensibili, forse bisognerebbe scrivere così:
Il valore di \looseness è un parametro locale relativo al capoverso in cui compare: i capoversi successivi (a meno che non venga specificato diversamente) vengono composti con la loro lunghezza “naturale” (con parametro \looseness=0).
Si noti la precisazione “a meno che non venga specificato diversamente”: forse la si potrebbe semplicemente sottindendere, ma, come abbiamo appena visto, i sottointesi possono generare confusione… L’ultima frase, certo la più rigorosa di quelle scritte, è forse un po’ pignola (anche per i miei gusti che un po’ pignoli sono…), mentre quella di adesso (l’effetto del comando non si propaga ai capoversi successivi, che vengono composti con \looseness=0″), meno rigorosa, è più suggestiva
Un bel problemino didattico, insomma. 🙄
Ciao,
L.
-
20 Maggio 2009 alle 8:46 #33723::
Ricapitoliamo. La frase in discussione (tratta dal paragrafo sulla revisione finale dell’Arte di maggio) era (è) questa:
Il valore di \looseness è un parametro locale relativo al capoverso in cui compare, quindi l’effetto del comando non si propaga.
Questa frase, che ha tratto in inganno Carlo, è giusta o sbagliata? Carlo non ha tutti i torti: allungando (o accorciando) un capoverso che si trova a pagina 1 di un documento di 500 pagine, può succedere, al limite, che tutti i capoversi successivi vengano spostati (anche se restano composti con la loro lunghezza “naturale”), quindi, a rigore, l’effetto di quell’unico, iniziale \looseness si è propagato per tutto il documento.
Naturalmente, il senso della frase non era quello: si voleva (e si vuole) semplicemente dire che, ai fini dell’allungamento/accorciamento, il comando \looseness ha effetto solo nel relativo capoverso. Ho cercato di specificare meglio il concetto così (è la versione che ora si trova nell’Arte di giugno):
Il valore di \looseness è un parametro locale relativo al capoverso in cui compare, quindi l’effetto del comando non si propaga ai capoversi successivi (che vengono composti con parametro \looseness=0).
Ora penso che il concetto sia più chiaro, ma l’ambiguità osservata da Carlo rimane. Per essere irreprensibili, forse bisognerebbe scrivere così:
Il valore di \looseness è un parametro locale relativo al capoverso in cui compare: i capoversi successivi (a meno che non venga specificato diversamente) vengono composti con la loro lunghezza “naturale” (con parametro \looseness=0).
Si noti la precisazione “a meno che non venga specificato diversamente”: forse la si potrebbe semplicemente sottindendere, ma, come abbiamo appena visto, i sottointesi possono generare confusione… L’ultima frase, certo la più rigorosa di quelle scritte, è forse un po’ pignola (anche per i miei gusti che un po’ pignoli sono…), mentre quella di adesso (l’effetto del comando non si propaga ai capoversi successivi, che vengono composti con \looseness=0″), meno rigorosa, è più suggestiva
Un bel problema didattico, insomma. 🙄
Ciao,
L.Il valore dato a \looseness conta solo nel capoverso in cui viene assegnato, perché TeX imposta \looseness=0 all’inizio di ogni capoverso.
A dire il vero è il comando \par che azzera \looseness dopo che il capoverso è stato composto, ma è un punto TeXnico irrilevante, visto che in modo verticale il valore di \looseness è ignorato.
Di solito si dice che una riga vuota (o un \par) in modo verticale non ha alcun effetto; in realtà l’effetto c’è: si azzerano i parametri locali (\looseness, \hangindent, \hangafter e \parshape). Il motivo è che azzerarli quando il capoverso è cominciato potrebbe annullare dichiarazioni dell’utente:
`\looseness=1\noindent`
comporrebbe il capoverso con \looseness=0, perché è \noindent che fa cominciare il capoverso. Quindi Knuth ha deciso che l’azzeramento è causato da \par. Così
`\looseness=1\noindent`
ha l’effetto richiesto. Forse è meglio aggiungere qualche parola su come specificare il valore; l’esempio c’è, ma con poco commento:
`… fine del capoverso precedente.\looseness=x
Testo del capoverso …`
è il modo più semplice per avere ciò che si vuole. Naturalmente senza lasciare righe vuote fra \loosenes=x e il testo, ça va sans dire.Ciao
Enrico
-
20 Maggio 2009 alle 11:06 #33724::
Ricapitoliamo. La frase in discussione (tratta dal paragrafo sulla revisione finale dell’Arte di maggio) era (è) questa:
Il valore di \looseness è un parametro locale relativo al capoverso in cui compare, quindi l’effetto del comando non si propaga.
Questa frase, che ha tratto in inganno Carlo, è giusta o sbagliata?Il senso della frase può essere travisato solo in prima lettura da parte
di chi è alle prime armi con una revisione finale. Alla prima
prova pratica di compilazione di un documento gli eventuali
dubbi svaniscono (uno lo vede come cambia l’impaginazione del documento).Carlo non ha tutti i torti: allungando (o accorciando) un capoverso che si trova a pagina 1 di un documento di 500 pagine, può succedere, al limite, che tutti i capoversi successivi vengano spostati (anche se restano composti con la loro lunghezza “naturale”), quindi, a rigore, l’effetto di quell’unico, iniziale \looseness si è propagato per tutto il documento. 🙄
Come ha già fatto notare Enrico, anche aggiungendo una parola ad un capoverso si possono avere effetti a cascata su quelli che seguono (ma non su quelli che precedono, o no ? :roll:).
Ma all’estensore di una guida non verrebbe in mente (probabilmente) di scivere:
“Aggiungendo una parola ad un capoverso si può modificare la sua lunghezza, ma l’effetto non si propaga ad altri capoversi”Ho cercato di specificare meglio il concetto così (è la versione che ora si trova nell’Arte di giugno):
Il valore di \looseness è un parametro locale relativo al capoverso in cui compare, quindi l’effetto del comando non si propaga ai capoversi successivi (che vengono composti con parametro \looseness=0).
Ora penso che il concetto sia più chiaro, ma l’ambiguità osservata da Carlo rimane.
A me sembra più chiara di prima, e comunque un pò di ambiguità può pure essere stimolante. 😀
Ciao,
Carlo
-
27 Maggio 2009 alle 11:41 #33725::
Forse è meglio aggiungere qualche parola su come specificare il valore; l’esempio c’è, ma con poco commento:
`… fine del capoverso precedente.\looseness=x
Testo del capoverso …`
è il modo più semplice per avere ciò che si vuole. Naturalmente senza lasciare righe vuote fra \loosenes=x e il testo, ça va sans dire.Innanzitutto chiedo scusa per il terribile ritardo cui cui rispondo. 😳 Enrico, quando dici che “forse è meglio aggiungere [all’Arte] qualche parola su come specificare il valore, ti riferisci all’opportunità di aggiungere una precisazione che specifichi che non vanno lasciate righe vuote tra \looseness e il testo?
Oppure, intendi dire che bisognerebbe dire anche come allungare/accorciare il capoverso di un numero di righe diverso da uno? In quest’ultimo caso la precisazione non mi sembra molto opportuna: allungare il capoverso di due (o più) righe è una prassi che non mi sento di consigliare…
Evidentemente, qualcosa mi sfugge!
Grazie mille,
L.
-
27 Maggio 2009 alle 12:14 #33726::
Forse è meglio aggiungere qualche parola su come specificare il valore; l’esempio c’è, ma con poco commento:
`… fine del capoverso precedente.\looseness=x
Testo del capoverso …`
è il modo più semplice per avere ciò che si vuole. Naturalmente senza lasciare righe vuote fra \loosenes=x e il testo, ça va sans dire.Innanzitutto chiedo scusa per il terribile ritardo cui cui rispondo. 😳 Enrico, quando dici che “forse è meglio aggiungere [all’Arte] qualche parola su come specificare il valore, ti riferisci all’opportunità di aggiungere una precisazione che specifichi che non vanno lasciate righe vuote tra \looseness e il testo?
Oppure, intendi dire che bisognerebbe dire anche come allungare/accorciare il capoverso di un numero di righe diverso da uno? In quest’ultimo caso la precisazione non mi sembra molto opportuna: allungare il capoverso di due (o più) righe è una prassi che non mi sento di consigliare…
Evidentemente, qualcosa mi sfugge!
Dicevo proprio della sintassi TeX. Un esempio di come scrivere il capoverso da massaggiare con \looseness, con l’osservazione sulla posizione in cui mettere il comando.
In realtà può andare in qualsiasi punto del capoverso, ma in testa è il punto migliore per ritrovarlo in fase di revisione. Non occorre alcun % dopo il valore (1 o -1, altri valori sono difficilmente onorabili da TeX se il capoverso non è davvero moooooolto lungo), anzi è addirittura meglio non metterlo.
Ciao
Enrico
-
27 Maggio 2009 alle 13:13 #33727::
Dicevo proprio della sintassi TeX. Un esempio di come scrivere il capoverso da massaggiare con \looseness, con l’osservazione sulla posizione in cui mettere il comando.
Ho aggiunto qualche parola a quel passo. La nuova versione:
Se il capoverso è sufficientemente esteso, LaTeX è in grado di comporlo adeguatamente, accorciandolo di una riga. Il comando \looseness va dato all’inizio del capoverso da modificare, senza lasciare alcuna riga vuota fra il comando e il testo del capoverso, nel modo seguente:
`\dots Qui finisce un capoverso.\looseness=-1
Qui ne comincia un altro, che \LaTeX{} cercherà di comporre usando
una riga in meno della sua lunghezza ‘‘naturale’’. \dots`
Il valore di \looseness è un parametro locale relativo al capoverso in cui compare, quindi l’effetto del comando non si propaga ai capoversi successivi (che vengono composti con parametro \looseness=0).Al solito, se ci sono altre modifiche da fare, sono qui.
Grazie ancora,
Lorenzo
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.