Re: Larghezza celle e multicolumn

#38819
Up
0
Down
::

Oggi mi sono imbattuto in un comportamento di LaTeX che non conoscevo.
Considerate la seguente tabella:
`\documentclass[a4paper]{article}
\begin{document}
\begin{tabular}{|c|c|c|}
\multicolumn{3}{c}{testo molto lungo}\\
1 & 2 & 3
\end{tabular}
\end{document}`
Se la larghezza della cella “multipla” è maggiore della larghezza complessiva delle celle sottostanti LaTeX, per bilanciare le due righe, interviene in modo non omogeneo.
Si può notare, infatti, (ho messo le righe verticali solo per quello 🙂 ) che viene aumentata la larghezza della sola ultima cella, quella che contiene “3” nel mio esempio.

A mio modo di vedere questo risultato non è molto attraente…
Sapete come è possibile modificare questo comportamento?

Non in modo automatico:
`\documentclass[a4paper]{article}
\newlength{\adjust}

\begin{document}

\begingroup
\settowidth{\adjust}{testo molto lungo}%
\addtolength{\adjust}{-4\tabcolsep}%
\setlength{\adjust}{.33333\adjust}%
\begin{tabular}{|c|c|c|}
\multicolumn{3}{c}{testo molto lungo}\\
\makebox[\adjust][c]{1} &
\makebox[\adjust][c]{2} &
\makebox[\adjust][c]{3} \\
4 & 5 & 6
\end{tabular}\endgroup
\end{document}`
Misuro il testo troppo lungo; a questa lunghezza devo togliere gli spazi tra le colonne che, in questo caso sono quattro: LaTeX inserisce uno spazio \tabcolsep all’inizio e alla fine di ogni colonna. Divido la misura per il numero di colonne. In una delle righe inserisco box dell’ampiezza desiderata, basta farlo una volta.

Spesso però il problema si risolve dividendo il “testo molto lungo” in due righe.

Ciao
Enrico

Go to top