Re: \textwidth, \linewidth e \columnwidth

#22361
Up
0
Down
::

C’è qualcosa che non va. In composizione a due colonne la classe article assegna il valore 452pt a \textwidth, mentre \columnwidth e \linewidth valgono 221pt. In un itemize di primo livello \linewidth scende a 201pt.

Solo negli ambienti figure* (e table*) \linewidth coincide con \textwidth, purché non si stia usando in quegli ambienti un ambiente per liste (che non è affatto vietato). Quindi direi che \linewidth non vada mai usato in connessione con \includegraphics all’interno di un ambiente figure o table, con asterisco o senza. In quelli con l’asterisco adoperi \textwidth, in quelli senza impieghi \columnwidth.

Certo, nelle rare situazioni in cui si usa un ambiente per liste in figure o table, la faccenda cambia. Ne hai mai viste? 🙂

Ciao
Enrico

Questa volta, Enrico, non ti seguo. Facciamo così:
[ul]
[li]per inserire una figura fuori testo in ambiente figure si possono usare indifferentemente \columnwidth o \linewidth;
[li]per inserire una figura fuori testo in ambiente figure* si possono usare indifferentemente \textwidth o \linewidth;
[li]per inserire una figura in testo ci sono casi in cui si possono usare indifferentemente \columnwidth o \linewidth; in altri casi va usato \linewidth.
[/ul]
Quale (o quali) di queste affermazioni è errata? Nel codice che ho inviato, ci sono diversi esempi di figure, fuori testo (inserite con ambiente figure o figure*) e in testo. In tutti i casi \linewidth funziona perfettamente (almeno, così mi pare!). Sbaglio? Naturalmente, non è obbligatorio usare sempre \linewidth, però se lo si usa il risultato è buono sempre!

Mi faresti un controesempio di una “cilecca” di \linewidth?

Per favore!

Ciao,
L.

P.S. Non ho mai visto elenchi dentro un ambiente mobile, ma se il controesempio richiede quella situazione (rara, e credo anche sconsigliabile), ben venga comunque.

Il fatto che i tuoi esempi funzionino non è un buon motivo per usare un parametro di cui non puoi sapere a priori il valore. Lo scopo di \linewidth è di tenere a mente la giustezza delle righe di stampa in un ambiente per liste.

Vediamo un altro esempio: il fatto che con i font standard 1em equivalga a 2.323ex non autorizza a usare 2.323ex al posto di 1em. È un fatto accidentale che dipende dal font in uso.

Nell’ambiente figure* il valore di \linewidth è inizialmente uguale a \textwidth; non puoi sapere quanto sia dopo, per esempio se usi un ambiente per liste. Semplicemente \linewidth non c’entra nulla con la faccenda di cui ti stai occupando; quella volta che uno vorrà usare un enumerate per mettere più illustrazioni in un ambiente e si troverà in serio imbarazzo, che risponderai?

A mio parere l’unico modo sensato di procedere è di usare \columnwidth negli ambienti senza asterisco e \textwidth in quelli con asterisco. Chi scrive il documento sa quando è necessario uno o l’altro; non si dà il caso che un ambiente senza asterisco diventi con o viceversa, se non in fase di pesante revisione e allora non c’è problema a cambiare anche il parametro.

Ciao
Enrico

Go to top