Re: Larghezza colonne tabella pari alla maggiore

#98669
OldClaudio
Partecipante
    Up
    0
    Down
    ::


    Dato e non concesso che avere colonne tutte larghe uguali (se devono essere larghe quando la più larga, deovno avere tutte la stessa larghezza) poi usare l’ambiente tabularx che con il suo tipo di colonna X, adatta ogni colonna alla stessa larghezza; dà qualche problemi poer le intestazioni, ma si risolve. Se metti del testo troppo lungo in una cella di una colonna X il testo va a capo nella stessa cella e questo potrebbe non essere quello che desideri, tuttavia la strada è percorribile.

    UN’altra strada che non ha le celle di lunghezza proefissata è quello di usare l’ambiente tabular, il cuoi primo argomento è la larghezza che vuoi imporre alla cella; (nota che il primo argomento di tabulax è la larghezza complessiva, ma le colonne X sono come come colonne p{…} la cui larghezza è calcolata automaticamente). Se però non vuoi andare a capo o se per qualche motivo non vuoi usare l’ambiente tabularx, te la puoi cavare con l’ambiente standard tabular ma devi impostare qualcosa di più.

    Supponiamo che tu voglia avere 8 colonne larghe uguali, con il contenuto delle celle centrato; allora puoi definire una nuova larghezza e assegnarle un valore (ti dirò dopo come); ovviamente deve essere minore di un ottavo della larghezza \textwidth, altrimenti la tabella non ci sta nella pagina; Allora sistemiamo la larghezza di tutte le 8 colonne tenedo conto dei margini bianchi a sinistra e a destra di ogni cella:`\newlength\mycolumn \mycolumn=\dimexpr\textwidth/8 – 2\tabcolsep\relax`
    Devi definire qualcosa per imporre questa larghezza alle tue colonne; io userei il pacchetto array che permette di definire nuovi tipi di colonne; caricato il pacchetto array (che fornisce diverse altre interessanti funzionalità, come puoi vedere leggendone la documentazione [aprire terminale, scriverci dentro texdoc array; premere invio; leggere la documentazione]) definisci:`\newcolumntype{C}[1]{\makebox[\mycolumn]{#1}}`.
    A questo punto pouoi cominciare la tua tabella con`\begin{tabular){*8C}
    dato & dato & dato & dato & dato & dato & dato & dato \\
    dato & dato & dato & dato & dato & dato & dato & dato \\

    dato & dato & dato & dato & dato & dato & dato & dato
    \end{tabular}`

    In questo modo devi aggiungere pochissimo alla tabella che hai già scritto. Inoltre se vuoi una tabella meno larga di \textwidth, nella riga dove definisci \mycolumn, al posto di \textwidth ci puoi mettere qualcosa come 0.75\textwidth, e la tua tabella di otto colonne risulterà larga quanto tre quarti di larghezza del testo. Se hai mono celle o più celle cambi il valore 8 con il numero di colonne che vuoi usare; se il numero di cela è superiore a 9 devi racchiuderne il numero fra graffe, per esempio *{11}C nell’argomento di tabular che specifica la pluralità di colonne nella tabella.

    Stai però attento: è probabile che fare le colonne tutte della stessa larghezza non sia una buona idea; dipende dal contenuto delle singole celle. Questa osservazione vale sia per la mia soluzione sia per la soluzione con l’ambiente tabularx e le n colonne X.

    Go to top