Numerazione tabelle

  • Creatore
    Topic
  • #79128
    Up
    0
    Down
    ::


    Salve,
    nel documento su cui sto lavorando ci sono molte tabelle. Non indico alcun label per le tabelle che non desidero far comparire nell’elenco delle tabelle. Tuttavia la numerazione delle tabelle, nell’elenco delle tabelle, non “salta” le tabelle senza label. E’ possibile “surgelare” il contatore delle tabelle (ritengo che ne esista uno da qualche parte:-( ) per consentire la numerazione solo delle tabelle che hanno un label, e che pertanto “finiscono” nell’eleco delle tabelle?
    Grazie,
    Fabrizio

Visualizzazione 11 filoni di risposte
  • Autore
    Risposte
    • #79129
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Se anche non le etichetti con \label, le numeri? Se le numeri devono andare anche nell’elenco delle tabelle.

        Se non le numeri, allora devi usare il pacchetto caption che definisce il comando \caption* (mi pare; oppure \captionof(table}{…} ) che si comporta come i comandi di sezionamento asteriscati; creano la didascalia ma non la numerano e non la mettono nemmeno nell’elenco delle tabelle.

        In ogni caso è \caption che scrive el informazioni necessarie per inviare la didascalia col numero all’elenco delle tabelle, non è \label che serve solo pre gestire i riferimenti incrociati.

      • #79130
        Up
        0
        Down
        ::

        OldClaudio” post=78250Se anche non le etichetti con \label, le numeri? Se le numeri devono andare anche nell’elenco delle tabelle.

        Se non le numeri, allora devi usare il pacchetto caption che definisce il comando \caption* (mi pare; oppure \captionof(table}{…} ) che si comporta come i comandi di sezionamento asteriscati; creano la didascalia ma non la numerano e non la mettono nemmeno nell’elenco delle tabelle.

        In ogni caso è \caption che scrive el informazioni necessarie per inviare la didascalia col numero all’elenco delle tabelle, non è \label che serve solo pre gestire i riferimenti incrociati.

        Grazie, per la risposta.
        In realtà però, le mie tabelle non hanno né “label” né “caption”. Sono delle “longtable” con una “intestazione” del tipo:
        \multicolumn{13}{l}{\scriptsize\itshape\tablename~\thetable:
        continua dalla pagina precedente} \\[0.05cm]

        A questa intestazione, intuisco che sia collegata la numerazione che appare in cima ad ogni porzione di tabella che “sconfina” nella pagina successiva: Tabella 11.4: continua dalla pagina precedente
        Tutttavia, nell’Elenco delle Tabelle, non appaiono le tabelle che desidero tenere “nascoste” (e questo va bene!), ma di esse se ne tiene conto nella numerazione, e pertanto le tabelle che includo nell’Elenco delle Tabelle hanno una numerazione con dei “salti”.
        Grazie,
        Fabrizio

      • #79131
        Up
        0
        Down
        ::

        Fabrizio” post=78572

        Se anche non le etichetti con \label, le numeri? Se le numeri devono andare anche nell’elenco delle tabelle.

        Se non le numeri, allora devi usare il pacchetto caption che definisce il comando \caption* (mi pare; oppure \captionof(table}{…} ) che si comporta come i comandi di sezionamento asteriscati; creano la didascalia ma non la numerano e non la mettono nemmeno nell’elenco delle tabelle.

        In ogni caso è \caption che scrive el informazioni necessarie per inviare la didascalia col numero all’elenco delle tabelle, non è \label che serve solo pre gestire i riferimenti incrociati.

        Grazie, per la risposta.
        In realtà però, le mie tabelle non hanno né “label” né “caption”. Sono delle “longtable” con una “intestazione” del tipo:
        \multicolumn{13}{l}{\scriptsize\itshape\tablename~\thetable:
        continua dalla pagina precedente} \\[0.05cm]

        A questa intestazione, intuisco che sia collegata la numerazione che appare in cima ad ogni porzione di tabella che “sconfina” nella pagina successiva: Tabella 11.4: continua dalla pagina precedente
        Tutttavia, nell’Elenco delle Tabelle, non appaiono le tabelle che desidero tenere “nascoste” (e questo va bene!), ma di esse se ne tiene conto nella numerazione, e pertanto le tabelle che includo nell’Elenco delle Tabelle hanno una numerazione con dei “salti”.
        Grazie,
        Fabrizio

        Potresti fare un esempio di codice?

        Ciao
        Enrico

      • #79132
        Up
        0
        Down
        ::


        Ci provo:

        \begin{longtable}{*{13}{c}}


        \endfirsthead

        % intestazione normale
        \multicolumn{13}{l}{\scriptsize\itshape\tablename~\thetable:
        continua dalla pagina precedente} \\[0.05cm]
        \midrule
        \multicolumn{13}{c}{\textbf{PIPPO}} \\[0.05cm]
        \endhead

        % piede normale

        \endfoot

        % piede finale

        \endlastfoot

        % INIZIO TABELLA
        ….
        % FINE TABELLA
        \end{longtable}

      • #79133
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          No, il tuo non è un esempio compilabile, perché hai messo in puntini che non dicono che cosa c’è davvero; Ora siccome nelle pagine successive alla prima usi \thetable, questo numero da dove viene” viene dal comando \caption che è fra i puntini. Perciò l’intera longtable ha un numero che viene richiamato nelle intestazioni di colonna successive alla prima ma non viene incrementato nessun contatore e quindi, giustamente, le pagine della stessa tabella, le pagine successive alla prima sono continuazioni di un unica tabella e non nuove tabelle; perciò nella lista delle tabelle non è quella intestazione che produce un salto della numerazione.

          Se tu trovi dei salti di numerazione, allora hai fatto qualcos’altro, ma non sono queste longtable a produrlo.

        • #79134
          Up
          0
          Down
          ::


          Penso di non essere riuscito a spiegarmi 🙁
          La Tabella che ricopio in calce (questa volta senza omissioni) è una tabella che non compare nell’Elenco delle tabelle . Ciò è quello che voglio.
          La tabella precedente e successiva desidero che siano presenti nell’Elenco delle tabelle e questo anche è un risultato che ottengo correttamente.
          Tuttavia queste ultime non hanno una numerazione sequenziale, ad esempio Tabella 5 e Tabella 6, ma risultano Tabella 5 e Tabella 7, perchè la Tabella intermedia, pur non essendo visualizzata, viene “contata”.
          Grazie, e spero di non aver complicato ulteriormente il ragionamento.
          Fabrizio

          `\begin{longtable}{*{13}{c}}

          % Ometto l'intestazione iniziale.
          \endfirsthead

          % intestazione normale
          \multicolumn{13}{l}{\scriptsize\itshape\tablename~\thetable:
          continua dalla pagina precedente} \\[0.05cm]
          \midrule
          \multicolumn{13}{c}{\textbf{PIPPO}} \\[0.05cm]
          \cmidrule(lr){1-13}
          PIPPO & \multicolumn{3}{c}{\textbf{PIPPO}} & \multicolumn{3}{c}{\textbf{PIPPO}} & \multicolumn{3}{c}{\textbf{PIPPO}} & \multicolumn{3}{c}{\textbf{PIPPO}} \\[0.05cm]
          \cmidrule(lr){2-4}
          \cmidrule(lr){5-7}
          \cmidrule(lr){8-10}
          \cmidrule(lr){11-13}
          \endhead

          % piede normale
          \endfoot

          % piede finale
          \endlastfoot

          \toprule
          \multicolumn{13}{c}{\textbf{PIPPO}} \\[0.05cm]
          \cmidrule(lr){1-13}
          PIPPO & \multicolumn{3}{c}{\textbf{PIPPO}} & \multicolumn{3}{c}{\textbf{PIPPO}} & \multicolumn{3}{c}{\textbf{PIPPO}} & \multicolumn{3}{c}{\textbf{PIPPO}} \\[0.05cm]
          \cmidrule(lr){2-4}
          \cmidrule(lr){5-7}
          \cmidrule(lr){8-10}
          \cmidrule(lr){11-13}

          \textbf{PIPPO} & \textbf{PIPPO} & \textbf{PIPPO} & \textbf{PIPPO} & \textbf{PIPPO} & \textbf{PIPPO} & \textbf{PIPPO} & \textbf{PIPPO} & \textbf{PIPPO} & \textbf{PIPPO} & \textbf{PIPPO} & \textbf{PIPPO} & \textbf{PIPPO} \\[0.05cm]
          \cmidrule(lr){2-4}
          \cmidrule(lr){5-7}
          \cmidrule(lr){8-10}
          \cmidrule(lr){11-13}
          1 & 2,13 & 183 & 6,29 & 2,13 & 59,5 & 4,94 & 1,62 & 133 & 7,58 & 1,62 & 49,3 & 6,71 \\
          1 & 2,13 & 183 & 6,29 & 2,13 & 59,5 & 4,94 & 1,62 & 133 & 7,58 & 1,62 & 49,3 & 6,71 \\
          1 & 2,13 & 183 & 6,29 & 2,13 & 59,5 & 4,94 & 1,62 & 133 & 7,58 & 1,62 & 49,3 & 6,71 \\
          1 & 2,13 & 183 & 6,29 & 2,13 & 59,5 & 4,94 & 1,62 & 133 & 7,58 & 1,62 & 49,3 & 6,71 \\

          1 & 2,13 & 183 & 6,29 & 2,13 & 59,5 & 4,94 & 1,62 & 133 & 7,58 & 1,62 & 49,3 & 6,71 \\
          1 & 2,13 & 183 & 6,29 & 2,13 & 59,5 & 4,94 & 1,62 & 133 & 7,58 & 1,62 & 49,3 & 6,71 \\
          1 & 2,13 & 183 & 6,29 & 2,13 & 59,5 & 4,94 & 1,62 & 133 & 7,58 & 1,62 & 49,3 & 6,71 \\
          \bottomrule
          \end{longtable}`

        • #79135
          Up
          0
          Down
          ::


          Non capisco la logica.

          Hai cinque tabelle, numerate da 1 a 5. Poi ti viene la [tt]longtable[/tt] alla quale vuoi assegnare un numero da riportare sulle pagine successive alla prima: che numero ci vuoi mettere se non 6? E la tabella successiva che numero dovrà avere se non 7?

          Ciao
          Enrico

        • #79136
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::



            @Fabrizio
            , mi hai fatto scoprire una cosa che non sapevo; la longtable incrementa il contatore delle tabelle anche se non usi caption.

            Per cui devi fare due cose:

            1) cancellare “Tabella \thetable: dalla intestazione della longtable nelle pagine successiva alla prima (l’\head normale)
            2) arretrare il contatore delle tabelle di una unità prima di aprire la longtable
            `\addtocounter{table}{-1}
            \begin{longtable}{*{13}{c}} `

            Vedrai che la numerazione delle tabelle nella \listoftables è corretta con i numeri sequenziali.

            Ma, c’è un problema: se usi hyperref questo usa delle ancore e dei bersagli per i link ipertestuali che fanno riferimento ai numeri degli oggetti da collegare ipertestualmente. decrementando il contatore delle tabelle di una unità, avrai due oggetti numerati con lo stesso numero, la tabella che precede la longtable e la longtable stessa, anche se il numero non si vede. perciò non puoi collegare la longtable con un \label per poi farvi riferimento con un \ref o \pageref o simili; questo inconveniente ce l’hai solo se usi hyperref.

          • #79137
            Up
            0
            Down
            ::


            Grazie mille per la risposta.
            Procederò come dici.
            Un ultimo chiarimento: posso cuntinuare ad usare i riferimenti ipertestuali per le tabelle che precedono e che seguono la longtable senza creare disastri?
            Ho già creato molti collegamenti alle tabelle pre e post longtable, e vorrei mantenerli.
            Ancora grazie,
            Fabrizio

          • #79138
            Up
            0
            Down
            ::


            Potrebbe essere utile avere a disposizione un ambiente [tt]longtable*[/tt] che non incrementi il contatore.
            `\usepackage{etoolbox}
            \makeatletter
            \newenvironment{longtable*}
            {\patchcmd{\LT@array}
            {\refstepcounter{table}}{}
            {}{\typeout{Sorry, couldn't make the trick}}%
            \longtable}
            {\endlongtable}
            \makeatother`
            Ora l’ambiente [tt]longtable*[/tt] ha tutte le funzioni di [tt]longtable[/tt], ma non modifica il contatore e, in particolare, non può interferire con hyperref. Esempio minimo:
            `\documentclass{article}
            \usepackage{longtable}

            \usepackage{etoolbox}
            \makeatletter
            \newenvironment{longtable*}
            {\patchcmd{\LT@array}
            {\refstepcounter{table}}{}
            {}{\typeout{Sorry, couldn't make the trick}}%
            \longtable}
            {\endlongtable}
            \makeatother

            \begin{document}
            \begin{table}[ht]
            \caption{A}
            \end{table}

            \begin{longtable*}{c}
            a
            \end{longtable*}

            \begin{table}[ht]
            \caption{B}
            \end{table}
            \end{document}`
            Ciao
            Enrico

          • #79139
            Up
            0
            Down
            ::


            Grazie a tutti, funziona!
            Tuttavia durante la compilazione si manifesta un errore che ricopio in calce (che però, non mi sembra determini nulla di negativo nel mio documento).
            Fabrizio

            ! LaTex Error: Command \longtable* already defined.
            Or \end… illegal, see p.92 of the manual.

          • #79140
            Up
            0
            Down
            ::


            Non mi risulta che l’ambiente [tt]longtable*[/tt] sia già definito. Boh: avrai qualche pacchetto in più. Puoi sostituire tutti i [tt]longtable*[/tt] con
            `longtable-`
            che mi pare un nome abbastanza comprensibile.

            Ciao
            Enrico

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

        Go to top