ctable con resize

  • Creatore
    Topic
  • #40004
    Up
    0
    Down
    ::


    Salve a tutti

    ho un problema su una tabella. Premetto che la tabella è enorme e dovrei anche inserire delle note a fine tabella per renderla più comprensibile.
    Ho letto che questo è possibile farlo con ctable.
    Come posso ridurre la tabella che mi crea ctable affinchè mi si adatti alla larghezza di pagina?
    con l’ambiente table ho creato una cosa del genere (qualsiasi commento è ben accetto)

    \begin{table}[p]
    \caption{BELLA}
    \label{tab:BELLA}
    \centering
    \resizebox{\columnwidth}{!}{%
    \begin{tabular}{lcccc}
    \toprule
    & & VALORE & VALORE & VALORE \\
    & & INIZIALE & FINALE & ATTESO \\
    \midrule
    \textit{\textbf{FUNZIONE OBIETTIVO}} & & & & \\
    dato & & –dato– & –dato– & –dato– \\
    \midrule
    messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
    messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
    messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
    messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
    messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
    messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
    messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
    messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
    messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
    messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
    messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
    messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
    messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
    messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
    messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
    \bottomrule
    \end{tabular}
    }
    \end{table}

    con ctable come posso fare?
    grazie 1000 a tutti

Visualizzazione 5 filoni di risposte
  • Autore
    Risposte
    • #40005
      Up
      0
      Down
      ::

      Salve a tutti

      ho un problema su una tabella. Premetto che la tabella è enorme e dovrei anche inserire delle note a fine tabella per renderla più comprensibile.
      Ho letto che questo è possibile farlo con ctable.
      Come posso ridurre la tabella che mi crea ctable affinchè mi si adatti alla larghezza di pagina?
      con l’ambiente table ho creato una cosa del genere (qualsiasi commento è ben accetto)

      \begin{table}[p]
      \caption{BELLA}
      \label{tab:BELLA}
      \centering
      \resizebox{\columnwidth}{!}{%
      \begin{tabular}{lcccc}
      \toprule
      & & VALORE & VALORE & VALORE \\
      & & INIZIALE & FINALE & ATTESO \\
      \midrule
      \textit{\textbf{FUNZIONE OBIETTIVO}} & & & & \\
      dato & & –dato– & –dato– & –dato– \\
      \midrule
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      \bottomrule
      \end{tabular}
      }
      \end{table}

      con ctable come posso fare?
      grazie 1000 a tutti

      Visto che vuoi comunque mettere la tabella in una pagina a parte, a questo punto la ruoterei. Ho cercato di modificare il minimo possibile del tuo codice. Guarda se può andar bene. (Non ho usato ctable.) Serve il pacchetto rotating. Al posto di m{16mm} puoi scrivere semplicemente “c”.
      `\begin{sidewaystable}
      \centering
      \begin{tabular}{lcm{16mm}m{16mm}m{16mm}}
      \toprule
      & & VALORE INIZIALE & VALORE FINALE & VALORE ATTESO \\
      \midrule
      \textbf{FUNZIONE OBIETTIVO} & & & & \\
      \midrule
      messaggio-messaggio-messaggio-messaggio\footnote{Testo della nota} &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio\footnote{Testo della seconda nota} &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio\footnote{Testo della terza nota} &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      messaggio-messaggio-messaggio-messaggio &[–dato–;–dato–]& –dato– & –dato– & –dato– \\
      \bottomrule
      \end{tabular}
      \caption{BELLA}
      \label{tab:BELLA}
      \end{sidewaystable} `

      Ciao
      Ivan

    • #40006
      Up
      0
      Down
      ::


      Ivan grazie della risposta,
      purtroppo non la posso ruotare perchè per brevità nel post ho ridotto la lunghezza della tabella ma ci sono la bellezza di almeno altre 10 righe ed effettuare una tabella ruotata su due pagine diviene troppo scomodo da leggere.

      Volevo sapere se sia possibile fare un tipo di \resizebox{\columnwidth}{!} in \ctable, questo poichè ctable mi pare un comando elegante per poter scrivere le note e sarebbe proprio l’ideale per il mio caso. Infatti devo avere nella tabella un marker ripetuto più di una volta che però punta sempre ad una sola footnote.
      Per il momento ho ripiegato scrivendo forzatamente a mano le note giocando con apici e dimensioni de testo, anche se so che è bruttissimo da vedere.
      😕

    • #40007
      Up
      0
      Down
      ::

      Ivan grazie della risposta,
      purtroppo non la posso ruotare perchè per brevità nel post ho ridotto la lunghezza della tabella ma ci sono la bellezza di almeno altre 10 righe ed effettuare una tabella ruotata su due pagine diviene troppo scomodo da leggere.

      Volevo sapere se sia possibile fare un tipo di \resizebox{\columnwidth}{!} in \ctable, questo poichè ctable mi pare un comando elegante per poter scrivere le note e sarebbe proprio l’ideale per il mio caso. Infatti devo avere nella tabella un marker ripetuto più di una volta che però punta sempre ad una sola footnote.
      Per il momento ho ripiegato scrivendo forzatamente a mano le note giocando con apici e dimensioni de testo, anche se so che è bruttissimo da vedere.
      😕

      Non potresti mostrare almeno un paio di righe della tabella? È probabile che la prima colonna non debba andare come “l”, ma in altro modo. Per avere una nota ctable non è affatto necessario. Fa’ l’esempio e vediamo qual è il modo migliore.

      Ciao
      Enrico

    • #40008
      Up
      0
      Down
      ::


      Allora, io devo scrivere qualcosa del genere, (ho ridotto il numero di righe per maggior chiarezza)

      `\begin{table}[p]
      \caption{BELLA}
      \label{tab:BELLA}
      \begin{minipage}{\linewidth}
      \centering
      \resizebox{\columnwidth}{!}{%
      \begin{tabular}{lcccc}
      \toprule
      & & VALORE & VALORE & VALORE \\
      & & INIZIALE & FINALE & ATTESO \\
      \midrule
      \textit{\textbf{FUNZIONE OBIETTIVO}} & & & & \\
      MASSA & & 40735.58 & 16234.93 & \\
      \midrule
      Spessore rivestimenti root$_{WING}$\footnote{A footnote.\label{fn:a}} &[0.10000;1.00000]&1.00000&0.10000&0.10000 \\
      Rapporto spessore rivestimenti tip/root$_{WING}$\footref{fn:a} &[0.10000;1.00000]&1.00000&0.10000&0.10000 \\
      Spessore anime root$_{WING}$\footnote{Footnote.\label{fn:b}} &[0.10000;1.00000]&1.00000&0.10000&0.10000 \\
      Rapporto spessore anime tip/root$_{WING}$\footref{fn:b} &[0.10000;1.00000]&1.00000&0.10000&0.10000 \\
      \bottomrule
      \end{tabular}
      }
      \end{minipage}
      \end{table}`

      Il problema è che esteticamnte la linea subito sopra le footnote della tabella non è la soluzione migliore. Sarebbe preferibile utilizzare il ctable, ossia

      `\ctable[
      cap = Bella,
      caption = Bella di brutto,
      label = Bella,
      pos = p,
      ]{lcccc}{
      \tnote[a]{footnote a}
      \tnote{footnote b}
      \tnote[c]{footnote c}
      }{
      \toprule
      & & VALORE & VALORE & VALORE \\
      & & INIZIALE & FINALE & ATTESO \\
      \midrule
      \textit{\textbf{FUNZIONE OBIETTIVO}} & & & & \\
      MASSA & & 40735.58 & 16234.93 & \\
      \midrule
      Spessore rivestimenti root$_{WING}$\tmark[a] &[0.10000;1.00000]& 1.00000 & 0.10000 & 0.10000 \\
      Rapporto spessore rivestimenti tip/root$_{WING}$\tmark[a] &[0.10000;1.00000]& 1.00000 & 0.10000 & 0.10000 \\
      Spessore anime root$_{WING}$\tmark &[0.10000;1.00000]& 1.00000 & 0.10000 & 0.10000 \\
      Rapporto spessore anime tip/root$_{WING}$\tmark &[0.10000;1.00000]& 1.00000 & 0.10000 & 0.10000 \\
      \bottomrule
      }
      `
      solo che non riesco ad effettuare il resize

    • #40009
      Up
      0
      Down
      ::

      Allora, io devo scrivere qualcosa del genere, (ho ridotto il numero di righe per maggior chiarezza)

      `\begin{table}[p]
      \caption{BELLA}
      \label{tab:BELLA}
      \begin{minipage}{\linewidth}
      \centering
      \resizebox{\columnwidth}{!}{%
      \begin{tabular}{lcccc}
      \toprule
      & & VALORE & VALORE & VALORE \\
      & & INIZIALE & FINALE & ATTESO \\
      \midrule
      \textit{\textbf{FUNZIONE OBIETTIVO}} & & & & \\
      MASSA & & 40735.58 & 16234.93 & \\
      \midrule
      Spessore rivestimenti root$_{WING}$\footnote{A footnote.\label{fn:a}} &[0.10000;1.00000]&1.00000&0.10000&0.10000 \\
      Rapporto spessore rivestimenti tip/root$_{WING}$\footref{fn:a} &[0.10000;1.00000]&1.00000&0.10000&0.10000 \\
      Spessore anime root$_{WING}$\footnote{Footnote.\label{fn:b}} &[0.10000;1.00000]&1.00000&0.10000&0.10000 \\
      Rapporto spessore anime tip/root$_{WING}$\footref{fn:b} &[0.10000;1.00000]&1.00000&0.10000&0.10000 \\
      \bottomrule
      \end{tabular}
      }
      \end{minipage}
      \end{table}`

      Il problema è che esteticamnte la linea subito sopra le footnote della tabella non è la soluzione migliore. Sarebbe preferibile utilizzare il ctable, ossia

      `\ctable[
      cap = Bella,
      caption = Bella di brutto,
      label = Bella,
      pos = p,
      ]{lcccc}{
      \tnote[a]{footnote a}
      \tnote{footnote b}
      \tnote[c]{footnote c}
      }{
      \toprule
      & & VALORE & VALORE & VALORE \\
      & & INIZIALE & FINALE & ATTESO \\
      \midrule
      \textit{\textbf{FUNZIONE OBIETTIVO}} & & & & \\
      MASSA & & 40735.58 & 16234.93 & \\
      \midrule
      Spessore rivestimenti root$_{WING}$\tmark[a] &[0.10000;1.00000]& 1.00000 & 0.10000 & 0.10000 \\
      Rapporto spessore rivestimenti tip/root$_{WING}$\tmark[a] &[0.10000;1.00000]& 1.00000 & 0.10000 & 0.10000 \\
      Spessore anime root$_{WING}$\tmark &[0.10000;1.00000]& 1.00000 & 0.10000 & 0.10000 \\
      Rapporto spessore anime tip/root$_{WING}$\tmark &[0.10000;1.00000]& 1.00000 & 0.10000 & 0.10000 \\
      \bottomrule
      }
      `
      solo che non riesco ad effettuare il resize

      La prima colonna va data come “>{\raggedright}p{3cm}”, studia tu quale sia la dimensione migliore (occorre caricare il pacchetto array). Per le note, un paio di \multicolumn{5}{l} in fondo sono la soluzione migliore; nel corpo della tabella metterai solo i richiami. Dal momento che le note sono poche non c’è bisogno di un automatismo per gestirle.

      Se la tabella sfora le dimensioni di una pagina c’è l’ambiente longtable dell’omonimo pacchetto.

      Ciao
      Enrico

    • #40010
      Up
      0
      Down
      ::


      mi sa che seguirò il tuo consiglio Enrico. Grazie 1000

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

Go to top