Re: Letteracdp & \signature

#52249
Up
0
Down
::


Ogni tanto qualche utente di letteracdp si accorge che se scrive qualcosa del tipo
`
\signature{{\normalfont Prima riga}\\Seconda riga}
`
“Prima riga” viene fuori disallineato da “Seconda riga”, cosa che non succede scrivendo
`
\signature{\textnormal{Prima riga}\\Seconda riga}
`
Questo (piccolo) difetto è noto da sempre; la ragione TeXnica risiede nella bizzarra implementazione di quelli che nel codice vengono chiamati “custom blocks” (di cui gli indirizzi e la firma sono applicazioni), la quale, per il risibile motivo di evitare un livello di “inscatolamento”, insiste nel collocare tutte le righe direttamente nella lista verticale principale, affidandosi, per ottenere i rientri, a una combinazione un po’ involuta di \parshape e di \everypar; il risultato è che i corretti parametri di indentazione vengono impostati solo se viene eseguito \everypar, cioè se si verifica un passaggio dal modo verticale al modo orizzontale (non ristretto). Se però questo passaggio si verifica dentro a un gruppo, ovviamente \everypar viene eseguito dentro a quel gruppo, e quando il gruppo termina l’impostazione delle identazioni cessa di avere effetto prima di essere stata utilizzata. Pensateci bene: quando scrivete
`
{\normalfont Abcdef…}\\
`
è la “A” che innesca \everypar, che così viene eseguito dentro il gruppo; ma “\\” sta fuori dal gruppo, ed è esso che provoca la divisione in linee della lista orizzontale, il loro inscatolamento e la loro aggiunta alla lista verticale principale.

A conferma di quanto detto, provate a scrivere
`
\signature{\leavevmode{\normalfont Prima riga}\\Seconda riga}
`
Vedrete che tutto funziona come dovuto. Comandi come \textnormal includono un \leavevmode al loro inizio, e quindi anch’essi funzionano come dovuto.

Passiamo alla richiesta con cui il thread inizia. Mi sembra di capire che si vuole stampare la chiusa con un’identazione maggiore degli altri capoversi. Esite un parametro separato che governa l’identazione della chiusa: si chiama \closingindentation e va ridefinito con \renewcommand (o meglio, \renewcommand*), non con \setlength. Si può provare con
`
\renewcommand*{\closingindentation}{\longindentation}
`
ma questo cambiamento da solo, senza altre modifiche ai parametri di stile, mi lascia molto perplesso. Ricordate che i cambiamenti ai parametri di stile delle lettere vanno fatti dentro alle lettere nelle quali si vuole abbiano effetto.

Saluti a tutti.

Go to top