Centrare l’intestazione delle colonne di una tabella

  • Creatore
    Topic
  • #106327
    Andrea
    Partecipante
      Up
      0
      Down
      ::


      Salve a tutti! Vi anticipo che grazie ai vostri consigli il mio utilizzo di tabelle è notevolmente migliorato!
      Vengo però a chiedervi ancora aiuto:
      Il problema è che io vorreiche la tabella seguente avesse l’intestazione delle colonne centrato, mentre il contenuto delle colonne fosse identato a destra. Qui il codice della tabella con identazione tutta centrata:

      `\begin{table}[htp]
      \centering
      \begin{tabular}{cccc}
      \toprule
      \multirow{2}*{Veicolo} & Alternativa motore & Alternativa motore & Pay-back\\
      & a combustione & elettrico & period\\
      & & &[anni]\\
      \midrule
      Autocarro Volkswagen 70 & Furgone Daily Iveco & Nissan e-NV200 & 4,37 \\
      Fiat Ducato 230 & Furgone Daily Iveco & Nissan e-NV200 & 9,13\\
      Iveco 35C9A & Furgone Daily Iveco & Nissan e-NV200 & 3,40\\
      Fiat Doblò & Fiat Doblò & Nissan e-NV200 & 9,85\\
      Panda Van & Panda Van & Nissan Leaf & 15,52\\
      Nissan Cabster SE 120.35 & Furgone Daily Iveco & Nissan e-NV200 & 5,81\\
      Renault New Master & Furgone Daily Iveco &Nissan e-NV200 & 2,28\\
      Fiat Doblò & Fiat Doblò &Nissan e-NV200 & 4,45\\
      \bottomrule
      \end{tabular}
      \caption{Pay-back period}
      \label{tab 3.11}
      \end{table} `

      Per facilitarmi la vita, ho ipotezzato di poter modificare la tabella così:
      `\begin{table}[htp]
      \centering
      \begin{tabular}{lllc}
      \toprule
      \multirow{2}*{Veicolo} & Alternativa motore & Alternativa motore & Pay-back\\
      & a combustione & elettrico & period\\
      & & &[anni]\\
      \midrule
      Autocarro Volkswagen 70 & Furgone Daily Iveco & Nissan e-NV200 & 4,37 \\
      Fiat Ducato 230 & Furgone Daily Iveco & Nissan e-NV200 & 9,13\\
      Iveco 35C9A & Furgone Daily Iveco & Nissan e-NV200 & 3,40\\
      Fiat Doblò & Fiat Doblò & Nissan e-NV200 & 9,85\\
      Panda Van & Panda Van & Nissan Leaf & 15,52\\
      Nissan Cabster SE 120.35 & Furgone Daily Iveco & Nissan e-NV200 & 5,81\\
      Renault New Master & Furgone Daily Iveco &Nissan e-NV200 & 2,28\\
      Fiat Doblò & Fiat Doblò &Nissan e-NV200 & 4,45\\
      \bottomrule
      \end{tabular}
      \caption{Pay-back period}
      \label{tab 3.11}
      \end{table} `

      per poi lavorare solo sull’intestazione delle colonne. Il problema è che l’unica cosa che mi è venuta in mente è di usare \begin{center}, ma dentro il comando multirow da giustamente errore. Che posso fare? Spero non sia una soluzione complicata o che rende il codice illeggibile, altrimenti lascio la tabella con i dati centrati, tanto voglio solo renderla più pulita e bella da vedere.

      Vi lascio il premabolo:

      `\documentclass[12pt,a4paper]{book}
      \usepackage[italian]{babel}
      \usepackage[T1]{fontenc}
      \usepackage[utf8x]{inputenc}
      \usepackage{graphicx}
      \usepackage{tikz,pgf}
      \usepackage{ifpdf}
      \usepackage{multirow}
      \usepackage{array}
      \usepackage{color}
      \usepackage{colortbl}
      \usepackage{booktabs}
      \usepackage{tocbibind}
      \usepackage{eurosym}
      \usepackage{relsize}
      \usepackage{lipsum}
      \usepackage{mathptmx}
      \usepackage{dcolumn}
      \usepackage[margin=10pt,font=small,labelfont=bf,labelsep=endash,format=hang,justification= centering]{caption}
      \captionsetup[table]{position=bottom}

      \ifpdf
      \usepackage[colorlinks,linkcolor=black,citecolor=black,urlcolor=black,
      bookmarks,bookmarksnumbered]{hyperref}
      \else
      \fi

      \begin{document}…..`

    Visualizzazione 4 filoni di risposte
    • Autore
      Risposte
      • #106328
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::

          calcioscacchi” post=106416Salve a tutti! Vi anticipo che grazie ai vostri consigli il mio utilizzo di tabelle è notevolmente migliorato!
          Vengo però a chiedervi ancora aiuto:
          Il problema è che io vorreiche la tabella seguente avesse l’intestazione delle colonne centrato, mentre il contenuto delle colonne fosse identato a destra. Qui il codice della tabella con identazione tutta centrata:

          `\begin{table}[htp]
          \centering
          \begin{tabular}{cccc}
          \toprule
          \multirow{2}*{Veicolo} & Alternativa motore & Alternativa motore & Pay-back\\
          & a combustione & elettrico & period\\
          & & &[anni]\\
          \midrule
          Autocarro Volkswagen 70 & Furgone Daily Iveco & Nissan e-NV200 & 4,37 \\
          Fiat Ducato 230 & Furgone Daily Iveco & Nissan e-NV200 & 9,13\\
          Iveco 35C9A & Furgone Daily Iveco & Nissan e-NV200 & 3,40\\
          Fiat Doblò & Fiat Doblò & Nissan e-NV200 & 9,85\\
          Panda Van & Panda Van & Nissan Leaf & 15,52\\
          Nissan Cabster SE 120.35 & Furgone Daily Iveco & Nissan e-NV200 & 5,81\\
          Renault New Master & Furgone Daily Iveco &Nissan e-NV200 & 2,28\\
          Fiat Doblò & Fiat Doblò &Nissan e-NV200 & 4,45\\
          \bottomrule
          \end{tabular}
          \caption{Pay-back period}
          \label{tab 3.11}
          \end{table} `

          Per facilitarmi la vita, ho ipotezzato di poter modificare la tabella così:
          `\begin{table}[htp]
          \centering
          \begin{tabular}{lllc}
          \toprule
          \multirow{2}*{Veicolo} & Alternativa motore & Alternativa motore & Pay-back\\
          & a combustione & elettrico & period\\
          & & &[anni]\\
          \midrule
          Autocarro Volkswagen 70 & Furgone Daily Iveco & Nissan e-NV200 & 4,37 \\
          Fiat Ducato 230 & Furgone Daily Iveco & Nissan e-NV200 & 9,13\\
          Iveco 35C9A & Furgone Daily Iveco & Nissan e-NV200 & 3,40\\
          Fiat Doblò & Fiat Doblò & Nissan e-NV200 & 9,85\\
          Panda Van & Panda Van & Nissan Leaf & 15,52\\
          Nissan Cabster SE 120.35 & Furgone Daily Iveco & Nissan e-NV200 & 5,81\\
          Renault New Master & Furgone Daily Iveco &Nissan e-NV200 & 2,28\\
          Fiat Doblò & Fiat Doblò &Nissan e-NV200 & 4,45\\
          \bottomrule
          \end{tabular}
          \caption{Pay-back period}
          \label{tab 3.11}
          \end{table} `

          per poi lavorare solo sull’intestazione delle colonne. Il problema è che l’unica cosa che mi è venuta in mente è di usare \begin{center}, ma dentro il comando multirow da giustamente errore. Che posso fare? Spero non sia una soluzione complicata o che rende il codice illeggibile, altrimenti lascio la tabella con i dati centrati, tanto voglio solo renderla più pulita e bella da vedere.

          Vi lascio il premabolo:

          `\documentclass[12pt,a4paper]{book}
          \usepackage[italian]{babel}
          \usepackage[T1]{fontenc}
          \usepackage[utf8x]{inputenc}
          \usepackage{graphicx}
          \usepackage{tikz,pgf}
          \usepackage{ifpdf}
          \usepackage{multirow}
          \usepackage{array}
          \usepackage{color}
          \usepackage{colortbl}
          \usepackage{booktabs}
          \usepackage{tocbibind}
          \usepackage{eurosym}
          \usepackage{relsize}
          \usepackage{lipsum}
          \usepackage{mathptmx}
          \usepackage{dcolumn}
          \usepackage[margin=10pt,font=small,labelfont=bf,labelsep=endash,format=hang,justification= centering]{caption}
          \captionsetup[table]{position=bottom}

          \ifpdf
          \usepackage[colorlinks,linkcolor=black,citecolor=black,urlcolor=black,
          bookmarks,bookmarksnumbered]{hyperref}
          \else
          \fi

          \begin{document}…..`

          Ciao.
          Se ho capito bene vorresti centrare il contenuto di una cella di tabella che fa parte di una colonna l o r.
          La prima cosa che mi venne in mente quando per la prima volta mi capitò questo problemino è scrivere:
          `\multicolumn{1}{c}{Testo centrato}`
          Ricordo che per semplificare avevo definito addirittura un comando:
          `\def\cen#1{\multicolumn{1}{c}{#1}}`
          Ora proverei altre strade, ma la casella di testo è troppo stretta per poter riportare ulteriori informazioni.
          Saluti.
          R.

        • #106329
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Ci sono vari trucchi da usare; alcuni sono qui sotto`% !TEX encoding = UTF-8 Unicode
            % !TEX TS-program = pdflatex
            \documentclass[12pt,a4paper]{book}
            \usepackage[italian]{babel}
            \usepackage[T1]{fontenc}
            \usepackage[utf8]{inputenc}
            \usepackage{graphicx}
            \usepackage{tikz}
            \usepackage{ifpdf}
            \usepackage{multirow}
            \usepackage{array,dcolumn}
            \usepackage{color}
            \usepackage{colortbl}
            \usepackage{booktabs}
            \usepackage{tocbibind}
            \usepackage{eurosym}
            \usepackage{relsize}
            \usepackage{lipsum}
            \usepackage{mathptmx}
            \usepackage[margin=10pt,font=small,labelfont=bf,labelsep=endash,format=hang,justification= centering]{caption}
            \captionsetup[table]{position=bottom}

            \ifpdf
            \usepackage[colorlinks,linkcolor=black,citecolor=black,urlcolor=black,
            bookmarks,bookmarksnumbered]{hyperref}
            \fi

            \newcolumntype{C}[1]{>{\centering}m{#1\textwidth}}
            \begin{document}
            \begin{table}[htp]
            \def~{\hphantom{0}}% Per incolonnare le cifre dell'ultima colonna
            \tabcolsep=3pt% per ridurre la larghezza della tabella che comunque sporge un poco
            \small % anche questo per ridurre un poco la larghezza
            \centering
            \begin{tabular}{lllc}
            \toprule
            \multicolumn1{C{0.32}}{Veicolo} & \multicolumn1{C{0.26}}{Alternativa motore a~combustione interna} & \multicolumn1{C{0.24}}{Alternativa motore elettrico} & \multicolumn1{C{0.11}}{Pay-back\newline periodo (anni)}\tabularnewline
            \midrule
            Autocarro Volkswagen 70 & Furgone Daily Iveco & Nissan e-NV200 & ~4,37 \\
            Fiat Ducato 230 & Furgone Daily Iveco & Nissan e-NV200 & ~9,13\\
            Iveco 35C9A & Furgone Daily Iveco & Nissan e-NV200 & ~3,40\\
            Fiat Doblò & Fiat Doblò & Nissan e-NV200 & ~9,85\\
            Panda Van & Panda Van & Nissan Leaf & 15,52\\
            Nissan Cabster SE 120.35 & Furgone Daily Iveco & Nissan e-NV200 & ~5,81\\
            Renault New Master & Furgone Daily Iveco &Nissan e-NV200 & ~2,28\\
            Fiat Doblò & Fiat Doblò &Nissan e-NV200 & ~4,45\\
            \bottomrule
            \end{tabular}
            \caption{Pay-back period}
            \label{tab 3.11}
            \end{table}
            \end{document}`

            Ti segnalo un paio di cosette:

            1) la codifica utf8x è obsoleta e si raccomanda di non usarla più; rimane disponibile per retrocompatibilità per compilare vecchi documenti, ma sono alcuni anni che non dovrebbe venire più usata.

            2) le unità di misura non si indicano MAI fra parentesi quadre 😡 👿

            I trucchetti per ridurre le dimensioni della tabella, che altrimenti uscirebbe dai margini sono spiegate nei commenti
            Invece se non ti piace che le intestazioni siano in blocchetti allineati sulla base della loro mezzeria verticale, nella definizione del tipo di colonna C cambia la lettera m in p (per averle allineate con la prima riga) o con b (per averle allineate sull’ultima riga).

          • #106330
            Andrea
            Partecipante
              Up
              0
              Down
              ::


              Grazie mille a tutti e due! Claudio, che codifica mi consigli se non la utf8x? A dire i professori all’uni mi hanno sempre detto che le unità di misura vanno messe tra parentesi quadre, poi magari nei documenti è prassi metterle tra parentesi tonde, grazie della segnalazione 🙂

              Robitex, hai “centrato” il problema! Curiosità, è la prima volta che definisco un nuovo comando, mettimo che voglio chiamarlo ‘centracol’, e che funzioni così: \centracol{testo}, il codice che scrivo è corretto?

              `\newcommand{\centracol}[1]{\multicolumn{1}{c}{#1}}`

              EDIT: mi rispondo da solo, mi sono fatto coraggio e ho fatto una provo, funziona alla grande! grazie mille!

            • #106331
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                Ma hai guardato il codice che ti ho allegato nel mio ultimo messaggio? Ci sono le soluzioni a tutte le tue domande.

              • #106332
                Up
                0
                Down
                ::


                Non ho mai visto una tabella che contenga [tt]\multirow[/tt] che non possa immediatamente essere migliorata togliendolo.

                Altre piccole cose: non capisco perché ci si ostini a insistere con [tt]utf8x[/tt], l’opzione da usare è solo [tt]utf8[/tt]. Non capisco l’uso di [tt]\ifpdf[/tt], né quello di [tt]mathptmx[/tt] (un kludge di tanti anni fa, che può essere dimenticato).

                `
                \documentclass[12pt,a4paper]{book}
                \usepackage[T1]{fontenc}
                \usepackage[utf8]{inputenc}
                \usepackage[italian]{babel}

                \usepackage{graphicx}
                \usepackage[table]{xcolor}
                \usepackage{tikz,pgf}
                \usepackage{array}
                \usepackage{booktabs}
                \usepackage{siunitx}
                \usepackage{tocbibind}
                \usepackage{eurosym}
                \usepackage{relsize}
                \usepackage[
                margin=10pt,
                font=small,
                labelfont=bf,
                labelsep=endash,
                format=hang,
                justification=centering
                ]{caption}

                \usepackage{newtxtext,newtxmath}

                \usepackage[
                colorlinks,
                linkcolor=black,
                citecolor=black,
                urlcolor=black,
                bookmarks,
                bookmarksnumbered
                ]{hyperref}

                \captionsetup[table]{position=bottom}

                \newcommand{\splitcell}[1]{%
                \begin{tabular}[t]{@{}c@{}}#1\end{tabular}%
                }

                \begin{document}

                \begin{table}[htp]
                \centering

                \small
                \begin{tabular}{lllS[table-format=2.2]}
                \toprule
                \splitcell{Veicolo} &
                \splitcell{Alternativa motore \\ a combustione} &
                \splitcell{Alternativa motore \\ elettrico} &
                {\splitcell{Pay-back \\ period \\ (anni)}}
                \\
                \midrule
                Autocarro Volkswagen 70 & Furgone Daily Iveco & Nissan e-NV200 & 4,37 \\
                Fiat Ducato 230 & Furgone Daily Iveco & Nissan e-NV200 & 9,13 \\
                Iveco 35C9A & Furgone Daily Iveco & Nissan e-NV200 & 3,40 \\
                Fiat Doblò & Fiat Doblò & Nissan e-NV200 & 9,85 \\
                Panda Van & Panda Van & Nissan Leaf & 15,52 \\
                Nissan Cabster SE 120.35 & Furgone Daily Iveco & Nissan e-NV200 & 5,81 \\
                Renault New Master & Furgone Daily Iveco & Nissan e-NV200 & 2,28 \\
                Fiat Doblò & Fiat Doblò & Nissan e-NV200 & 4,45 \\
                \bottomrule
                \end{tabular}

                \caption{Pay-back period}\label{tab 3.11}

                \end{table}

                \end{document}
                `

                [attachment=1601]ScreenShot2016-05-12at22.16.11.png[/attachment]

                Ciao
                Enrico

                Attachments:
                You must be logged in to view attached files.
            Visualizzazione 4 filoni di risposte
            • Devi essere connesso per rispondere a questo topic.

            Go to top