Re: \textwidth, \linewidth e \columnwidth

#22363
Up
0
Down
::

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.

Capisco l’obiezione “metodologica”. Notevole. 🙄

Mi resta la curiosità del controesempio esplicito. Infatti, per esempio:
`\begin{figure}[tb]
\begin{enumerate}
\item \includegraphics[width=\linewidth]{Mani}
\item \includegraphics[width=\linewidth]{Mani}
\end{enumerate}
\caption{Che c'è che non va?}
\end{figure}
`non dà problemi (in un documento a una o più colonne).

Anche
`\begin{figure*}[tb]
\begin{enumerate}
\item \includegraphics[width=\linewidth]{Mani}
\item \includegraphics[width=\linewidth]{Mani}
\end{enumerate}
\caption{Che c'è che non va?}
\end{figure*}
`è perfetto.

Senza un controesempio che mostra una “cilecca” di \linewidth, mi manca un pezzetto…

Scusami per l’insistenza. 😳

Stai appunto usando \linewidth come va usato, perché sei dentro un enumerate. Solo là puoi essere sicuro che abbia il valore corretto. Il nucleo di LaTeX si assicura di impostare \linewidth a certi valori in determinate situazioni, niente vieta che una classe (per esempio memoir) adoperi questo parametro in modo diverso.

Ciao
Enrico

Go to top