errore longtable in landscape

  • Creatore
    Topic
  • #61278
    Up
    0
    Down
    ::


    Ciao,
    stavo provando l’esempio di Pantieri sulle longtable, variandolo un po’ per avvicinarmi a quello che mi serve… e ottengo un errore.
    Il codice è:
    `
    \begin{landscape}
    \begin{longtable}{ccccccc}
    % didascalia ed etichetta
    \caption{Tabella comparativa.}
    \label{tab:tabella_comparativa_app} \\
    % intestazione iniziale
    \toprule
    \multicolumn{1}{c}\textbf{} & \multicolumn{1}{c}\textbf{A} & \multicolumn{1}{c}\textbf{B} & \multicolumn{1}{c}\textbf{C} & \multicolumn{1}{c}\textbf{D} & \multicolumn{1}{c}\textbf{E} & \multicolumn{1}{c}\textbf{F}\\
    \midrule
    \endfirsthead
    % intestazione normale
    \multicolumn{7}{l}{\footnotesize\itshape\tablename~\thetable: continua dalla pagina precedente} \\
    \toprule
    \multicolumn{1}{c}\textbf{} & \multicolumn{1}{c}\textbf{A} & \multicolumn{1}{c}\textbf{B} & \multicolumn{1}{c}\textbf{C} & \multicolumn{1}{c}\textbf{D} & \multicolumn{1}{c}\textbf{E} & \multicolumn{1}{c}\textbf{F}\\
    \midrule
    \endhead
    % piede normale
    \midrule
    \multicolumn{7}{r}{\footnotesize\itshape\tablename~\thetable: continua nella prossima pagina} \\
    \endfoot
    % piede finale
    \bottomrule
    \multicolumn{7}{r}{\footnotesize\itshape\tablename~\thetable: si conclude dalla pagina precedente} \\
    \endlastfoot
    % corpo tabella
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7\\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7\\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
    \midrule
    \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
    \bottomrule
    \end{longtable}
    \end{landscape}
    `

    L’errore è:
    `
    Package longtable Error: Column widths have changed in table 2.1
    See the longtable package documentation for explanation.
    Type H for immediate help.

    l.901 \end{longtable}

    `

    Vorrei che il testo fosse centrato nelle celle.

Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #61279
      GKT
      Partecipante
        Up
        0
        Down
        ::

        Ciao,
        stavo provando l’esempio di Pantieri sulle longtable, variandolo un po’ per avvicinarmi a quello che mi serve… e ottengo un errore.
        Il codice è:
        `
        \begin{landscape}
        \begin{longtable}{ccccccc}
        % didascalia ed etichetta
        \caption{Tabella comparativa.}
        \label{tab:tabella_comparativa_app} \\
        % intestazione iniziale
        \toprule
        \multicolumn{1}{c}\textbf{} & \multicolumn{1}{c}\textbf{A} & \multicolumn{1}{c}\textbf{B} & \multicolumn{1}{c}\textbf{C} & \multicolumn{1}{c}\textbf{D} & \multicolumn{1}{c}\textbf{E} & \multicolumn{1}{c}\textbf{F}\\
        \midrule
        \endfirsthead
        % intestazione normale
        \multicolumn{7}{l}{\footnotesize\itshape\tablename~\thetable: continua dalla pagina precedente} \\
        \toprule
        \multicolumn{1}{c}\textbf{} & \multicolumn{1}{c}\textbf{A} & \multicolumn{1}{c}\textbf{B} & \multicolumn{1}{c}\textbf{C} & \multicolumn{1}{c}\textbf{D} & \multicolumn{1}{c}\textbf{E} & \multicolumn{1}{c}\textbf{F}\\
        \midrule
        \endhead
        % piede normale
        \midrule
        \multicolumn{7}{r}{\footnotesize\itshape\tablename~\thetable: continua nella prossima pagina} \\
        \endfoot
        % piede finale
        \bottomrule
        \multicolumn{7}{r}{\footnotesize\itshape\tablename~\thetable: si conclude dalla pagina precedente} \\
        \endlastfoot
        % corpo tabella
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7\\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7\\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \bottomrule
        \end{longtable}
        \end{landscape}
        `

        L’errore è:
        `
        Package longtable Error: Column widths have changed in table 2.1
        See the longtable package documentation for explanation.
        Type H for immediate help.

        l.901 \end{longtable}

        `

        Vorrei che il testo fosse centrato nelle celle.

        L’errore è dovuto al fatto che usi longtable insieme a multicol. I due pacchetti si possono usare, ma sono necessarie diverse compilazioni per convergere al risultato finale. Per allineare le celle della prima riga con il contenuto della tabella basta eliminare i \multicolumn: le celle sono già centrate, scrivere \multicolumn{1}{c}{} tante volte quante sono le colonne della tabella non ha molto senso.
        `\documentclass[a4paper]{article}

        \usepackage[T1]{fontenc}
        \usepackage[utf8]{inputenc}
        \usepackage[italian]{babel}
        \usepackage{booktabs}
        \usepackage{longtable}
        \usepackage{lscape}
        \usepackage{multicol}

        \begin{document}

        \begin{landscape}
        \begin{longtable}{ccccccc}
        % didascalia ed etichetta
        \caption{Tabella comparativa.}
        \label{tab:tabella_comparativa_app} \\
        % intestazione iniziale
        \toprule
        & \textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} & \textbf{E} & \textbf{F}\\
        \midrule
        \endfirsthead
        % intestazione normale
        \multicolumn{7}{l}{\footnotesize\itshape\tablename~\thetable: continua dalla pagina precedente} \\
        \toprule
        & \textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} & \textbf{E} & \textbf{F}\\
        \midrule
        \endhead
        % piede normale
        \midrule
        \multicolumn{7}{r}{\footnotesize\itshape\tablename~\thetable: continua nella prossima pagina} \\
        \endfoot
        % piede finale
        \bottomrule
        \multicolumn{7}{r}{\footnotesize\itshape\tablename~\thetable: si conclude dalla pagina precedente} \\
        \endlastfoot
        % corpo tabella
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7\\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7\\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \bottomrule
        \end{longtable}
        \end{landscape}

        \end{document}`

        Lorenzo

      • #61280
        Up
        0
        Down
        ::


        Anche questo mi dà lo stesso errore:

        `

        \begin{landscape}
        \begin{longtable}{ccccccc}
        % didascalia ed etichetta
        \caption{Tabella comparativa.}
        \label{tab:tabella_comparativa_app} \\
        % intestazione iniziale
        \toprule
        %\multicolumn{1}{c}\textbf{} & \multicolumn{1}{c}\textbf{A} & \multicolumn{1}{c}\textbf{B} & \multicolumn{1}{c}\textbf{C} & \multicolumn{1}{c}\textbf{D} & \multicolumn{1}{c}\textbf{E} & \multicolumn{1}{c}\textbf{F}\\
        \textbf{} & \textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} & \textbf{E} & \textbf{F}\\
        \midrule
        \endfirsthead
        % intestazione normale
        %\multicolumn{7}{l}{\footnotesize\itshape\tablename~\thetable: continua dalla pagina precedente} \\
        \toprule
        %\multicolumn{1}{c}\textbf{} & \multicolumn{1}{c}\textbf{A} & \multicolumn{1}{c}\textbf{B} & \multicolumn{1}{c}\textbf{C} & \multicolumn{1}{c}\textbf{D} & \multicolumn{1}{c}\textbf{E} & \multicolumn{1}{c}\textbf{F}\\
        \textbf{} & \textbf{A} & \textbf{B} & \textbf{C} & \textbf{D} & \textbf{E} & \textbf{F}\\
        \midrule
        \endhead
        % piede normale
        \midrule
        %\multicolumn{7}{r}{\footnotesize\itshape\tablename~\thetable: continua nella prossima pagina} \\
        %\endfoot
        % piede finale
        %\bottomrule
        %\multicolumn{7}{r}{\footnotesize\itshape\tablename~\thetable: si conclude dalla pagina precedente} \\
        %\endlastfoot
        % corpo tabella
        \textbf{1} & 2 \tabularnewline vediamo & 3 & 4 & 5 & 6 & 7\\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7\\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \midrule
        \textbf{1} & 2 & 3 & 4 & 5 & 6 & 7 \\
        \bottomrule
        \end{longtable}
        \end{landscape}
        `

        Lo stesso errore me lo dà, se uso il tuo esempio sulle longtable.
        Nel preambolo uso:

        \usepackage{pdflscape}
        \usepackage[pausing]{longtable}
        \usepackage{booktabs}

        compilo con XeLaTeX

      • #61281
        Up
        0
        Down
        ::

        Nel preambolo uso:

        \usepackage{pdflscape}
        \usepackage[pausing]{longtable}
        \usepackage{booktabs}

        compilo con XeLaTeX

        Togli l’opzione pausing; con longtable sono necessari più passaggi per rendere le colonne della stessa ampiezza nelle varie pagine. Con “pausing” invece che un semplice avviso viene segnalato un errore. Questo è fatale con certi programmi che gestiscono la compilazione e si fermano agli errori, perché la larghezza delle colonne non può mai essere determinata.

        Ciao
        Enrico

      • #61282
        Up
        0
        Down
        ::


        Grazie Enrico! Almeno adesso lo compila.
        Dopo averlo compilato più volte, il risultato che ottengo non è quello che mi aspettavo.
        Ho riprovato il primo esempio postato, quello con \multicolumn:
        1) la ‘F’ nella colonna F viene allineata a sinistra;
        2) il piede normale mi sembra sia correttamente allineato a destra, mentre l’intestazione normale e il piede finale sono centrati;
        3) quando la tabella viene posta su più pagine, ad es. 2, ho un doppio filetto orizzontale alla fine della prima pagina.
        4) Il piede finale viene usato anche se la tabella non viene spezzata su più pagine.

      • #61283
        Up
        0
        Down
        ::

        Grazie Enrico! Almeno adesso lo compila.
        Dopo averlo compilato più volte, il risultato che ottengo non è quello che mi aspettavo.
        Ho riprovato il primo esempio postato, quello con \multicolumn:
        1) la ‘F’ nella colonna F viene allineata a sinistra;
        2) il piede normale mi sembra sia correttamente allineato a destra, mentre l’intestazione normale e il piede finale sono centrati;
        3) quando la tabella viene posta su più pagine, ad es. 2, ho un doppio filetto orizzontale alla fine della prima pagina.
        4) Il piede finale viene usato anche se la tabella non viene spezzata su più pagine.

        Il problema è dovuto al piede, la cui larghezza è maggiore della larghezza naturale della tabella. Fa’ un esempio “reale”, per favore.

        Ciao
        Enrico

      • #61284
        Up
        0
        Down
        ::


        Ok… proverò a fare un esempio reale.
        Invece, per quanto riguarda il doppio filetto alla fine della tabella, è perché io uso \midrule a cui poi viene aggiunto il \bottomrule del piede?

        Ciao
        Fra

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

    Go to top