Centrare il testo di una cella con \makebox

  • Creatore
    Topic
  • #120470
    Up
    0
    Down
    ::


    Salve a tutti!

    Avendo il seguente codice:
    `
    \documentclass{article}
    \usepackage{booktabs}

    \begin{document}

    \begin{table}
    \centering
    \small
    \begin{tabular}{llrl}
    \toprule
    Nome & Ruolo & Età & Attività \\
    \midrule
    Giovanni & padre & 47 & impiegato \\
    Maria & madre & 44 & insegnante di scuola elementare \\
    Giovanna & figlia & 18 & studente di scuola superiore \\
    Piero & figlio & 8 & allievo di scuola elementare \\
    \bottomrule
    \end{tabular}
    \end{table}

    \end{document}
    `
    Per centrare la voce “Attività” oltre all’uso del comando [tt]\multicolumn[/tt]:
    `

    Nome & Ruolo & Età & \multicolumn1c{Attività} \\

    `
    è possibile usare (semplice curiosità) il comando [tt]\makebox[/tt] in una cella appartenente a una colonna di tipo l (left)? Come si fa a calcolare esattamente la larghezza richiesta dal comando [tt]\makebox[/tt] affinché la voce “Attività” sia perfettamente centrata rispetto alla sua colonna di appartenenza? Forse bisogna calcolarla ad occhio?

    Grazie

Visualizzazione 2 filoni di risposte
  • Autore
    Risposte
    • #120471
      Up
      0
      Down
      ::


      Risposta veloce: non si può. TeX carica in memoria l’intera tabella e calcola le ampiezze solo quando la compone basandosi sull’ampiezza massima delle celle di ogni colonna (con i necessari aggiustamenti se alcune celle sono a cavallo di due o più colonne) e a questi dati l’utente non può accedere. Proprio per questo c’è [tt]\multicolumn[/tt] anche su una sola colonna.

      In alternativa, occorre reimplementare in TeX il meccanismo delle tabelle. Non mi sembra l’idea migliore…

      Forse con LuaTeX si può fare qualcosa al riguardo.

      Ciao
      Enrico

    • #120472
      Up
      0
      Down
      ::


      Grazie della risposta veloce. Notte!

    • #120473
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        D’altra pare, la guida tematica sulle tabelle (a cui ti rifai con il tuo esempio) riporta nell’esempio 4.1 esattamente l’uso con [tt]\multicolumn1c{Attività}[/tt], che usa esattamente il comando che ti ha segnalato Enrico. Non mi sembra più complicato scrivere [tt]\multicolumn[/tt] al posto di [tt]\makebox[/tt], quando per quest’ultimo non è per niente facile specificare la larghezza.

    Visualizzazione 2 filoni di risposte
    • Devi essere connesso per rispondere a questo topic.

    Go to top