Tabelle: codice corretto, sbagliato la volta dopo

  • Creatore
    Topic
  • #81188
    Up
    0
    Down
    ::


    Buongiorno a tutta la Community.
    Spero che il mio post si riferisca alla sezione corretta.
    Io lavoro su LyX, ma alcune tabelle parecchio grandi le ho scritte in codice LaTex.
    Una cosa che però non riesco a capire è la seguente: passo svariate ore a sistemare le colonne inserendo i giusti cm attraverso l’ambiente minipage, trovo la soluzione giusta, LyX parte non segnalandomi alcun errore. Io continuo con la scrittura non toccando in alcun modo le tabelle. Poi un giorno, non so come, non gira più in quanto trova un errore nella tabella che fino a qualche giorno prima andava bene, che viene ripetuto per 5 volte nella finestra di LaTex Errors: “Undefined control sequence” per \end{tabulary}. Controllo tutto ma non trovo nessun errore, neanche nelle graffe inserite.
    Che posso fare?
    La legge di Murphy vuole che questa cosa mi capiti, guarda caso, il giorno stesso in cui dovrei consegnare il file della tesi al mio professore per la correzione.
    La cosa ha quindi una certa urgenza… 🙁
    Potreste aiutarmi a capire?

    Qui sotto potete trovare il codice utilizzato nella tabella.
    La vera tabella conterrebbe molte più righe di numeri rispetto a questa, ma il codice si ripete quindi ve l’ho accorciata.
    `\begin{landscape}
    \begin{table}[p]\footnotesize
    \begin{centering}
    \begin{tabulary}{25cm}{*{10}{C}}
    \toprule
    \multirow{3}{*}{\begin{minipage}{1.5cm}{AREA SAGGIO}\end{minipage}} & \multirow{3}{*}{N. PIANTE} & \multirow{3}{*}{\begin{minipage}{1.7cm}{DENSITÀ {[}N/ha{]}}\end{minipage}} & \multirow{3}{*}{\begin{minipage}{1.7cm}{DIAMETRO MEDIO {[}cm{]}}\end{minipage}} & \multirow{3}{*}{\begin{minipage}{3.2cm}{DEV. STANDARD DIAMETRO}\end{minipage}} & \multirow{3}{*}{\begin{minipage}{1.7cm}{AREA BASALE {[}cm{]}}\end{minipage}} & \multirow{3}{*}{\begin{minipage}{2.8cm}{AREA BASALE AD ETTARO}\end{minipage}} & \multirow{3}{*}{N. CONIFERE} & \multirow{3}{*}{\begin{minipage}{1.7cm}{CONIFERE {[}\%{]}}\end{minipage}} & \multirow{3}{*}{\begin{minipage}{1.7cm}{ALTEZZA PIANTE {[}m{]}}\end{minipage}}\tabularnewline
    & & & & & & & & & \tabularnewline
    & & & & & & & & & \tabularnewline
    \midrule
    \midrule
    1 & 79 & 1747.17 & 15.24 & 4.11 & 15439.38 & 341458.33 & 4 & 7.27 & 21.7\tabularnewline
    \midrule
    2 & 28 & 619.25 & 18.43 & 7.04 & 8515.68 & 188333.33 & 3 & 10.71 & 15.8\tabularnewline
    \midrule
    3 & 41 & 906.76 & 20.18 & 14.75 & 21410.09 & 473506.94 & 4 & 9.76 & 22.7\tabularnewline
    \bottomrule
    \end{tabulary}
    \end{centering}
    \caption{\label{tab:DatiForest}Dati relativi alla componente forestale delle aree saggio}
    \end{table}
    \end{landscape}`

Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #81189
      franen
      Partecipante
        Up
        0
        Down
        ::


        Ciao e benvenuto!
        Brutte cose sti problemi con la consegna imminente! 🙂

        A me il codice qui sotto si compila, non so se tu abbia usato un preambolo diverso`\documentclass[a4paper]{book}
        \usepackage[utf8]{inputenc}
        \usepackage[T1]{fontenc}
        \usepackage[italian]{babel}
        \usepackage{tabularx,booktabs,tabulary}
        \usepackage{multirow}
        \usepackage{lscape}

        \begin{document}

        \begin{landscape}
        \begin{table}[p]\footnotesize
        \begin{centering}
        \begin{tabulary}{25cm}{*{10}{C}}
        \toprule
        \multirow{3}{*}{\begin{minipage}{1.5cm}{AREA SAGGIO}\end{minipage}} & \multirow{3}{*}{N. PIANTE} & \multirow{3}{*}{\begin{minipage}{1.7cm}{DENSITÀ {[}N/ha{]}}\end{minipage}} & \multirow{3}{*}{\begin{minipage}{1.7cm}{DIAMETRO MEDIO {[}cm{]}}\end{minipage}} & \multirow{3}{*}{\begin{minipage}{3.2cm}{DEV. STANDARD DIAMETRO}\end{minipage}} & \multirow{3}{*}{\begin{minipage}{1.7cm}{AREA BASALE {[}cm{]}}\end{minipage}} & \multirow{3}{*}{\begin{minipage}{2.8cm}{AREA BASALE AD ETTARO}\end{minipage}} & \multirow{3}{*}{N. CONIFERE} & \multirow{3}{*}{\begin{minipage}{1.7cm}{CONIFERE {[}\%{]}}\end{minipage}} & \multirow{3}{*}{\begin{minipage}{1.7cm}{ALTEZZA PIANTE {[}m{]}}\end{minipage}}\tabularnewline
        & & & & & & & & & \tabularnewline
        & & & & & & & & & \tabularnewline
        \midrule
        \midrule
        1 & 79 & 1747.17 & 15.24 & 4.11 & 15439.38 & 341458.33 & 4 & 7.27 & 21.7\tabularnewline
        \midrule
        2 & 28 & 619.25 & 18.43 & 7.04 & 8515.68 & 188333.33 & 3 & 10.71 & 15.8\tabularnewline
        \midrule
        3 & 41 & 906.76 & 20.18 & 14.75 & 21410.09 & 473506.94 & 4 & 9.76 & 22.7\tabularnewline
        \bottomrule
        \end{tabulary}
        \end{centering}
        \caption{\label{tab:DatiForest}Dati relativi alla componente forestale delle aree saggio}
        \end{table}
        \end{landscape}
        \end{document}`
        Quindi, non sapendo cosa dirti per risolvere il tuo problema, ti scrivo un po’ di cose:
        – non avevo mai sentito parlare di tabulary (forse nemmeno David Carlisle si ricorda di averlo scritto?)
        – leggi per bene cosa dice l’Arte di scrivere con LaTeX nel capitolo delle tabelle
        – le unità di misura non vanno fra parentesi quadre
        – perché scrivi le quadre all’interno di parentesi graffe?
        – le righe di una tabella si terminano con \\
        – tutte quelle minipage non servono, basta usare due righe per creare l’intestazione. Ti eviteresti anche un sacco di \multirow
        – se scrivi in italiano, perché usi il punto come separatore decimale? (questo punto è molto dibattuto…)
        – \label va dopo \caption
        – l’uso delle colonne S di siunitx potrebbe agevolarti nella gestione dei dati numerici
        – per ruotare le tabelle c’è anche il pacchetto “rotanting”
        – ti allego un esempio che dovrebbe funzionare, senza multirow e tabulary e lscape. Il risultato non mi piace un granché… ma son un po’ di corsa!

        Ah, abbandona LyX e le sue limitazioni! 🙂

        Fran
        `\documentclass[a4paper]{book}
        \usepackage[utf8]{inputenc}
        \usepackage[T1]{fontenc}
        \usepackage[italian]{babel}
        \usepackage{booktabs}
        \usepackage{rotating}

        \newcommand{\duerighe}[2]{%
        \begin{tabular}{@{}c@{}}
        #1\\
        #2
        \end{tabular}}
        \begin{document}

        \begin{sidewaystable}
        \caption{Dati relativi alla componente forestale delle aree saggio}
        \label{tab:DatiForest}
        \centering
        \begin{tabular}{*{10}c}
        \toprule
        \duerighe{Area}{saggio} & N. piante & Densità & \duerighe{Diametro}{medio} & \duerighe{Deviazione}{standard} & \duerighe{Area}{basale} & \duerighe{Area basale}{ad ettaro} & N. conifere & Conifere & \duerighe{Altezza}{piante}\\
        %\midrule
        & & (N/ha) & (cm) & (cm) & (cm) & & & (\%) & (m) \\
        \midrule
        1 & 79 & 1747.17 & 15.24 & 4.11 & 15439.38 & 341458.33 & 4 & 7.27 & 21.7\\
        2 & 28 & 619.25 & 18.43 & 7.04 & 8515.68 & 188333.33 & 3 & 10.71 & 15.8\\
        3 & 41 & 906.76 & 20.18 & 14.75 & 21410.09 & 473506.94 & 4 & 9.76 & 22.7\\
        \bottomrule
        \end{tabular}
        \end{sidewaystable}

        \end{document}`

      • #81190
        Up
        0
        Down
        ::


        Funziona!
        Ma non con il codice che mi hai scritto tu… 🙂 che peraltro non mi funziona con il preambolo che hai messo…
        Ho provato a ricopiare il codice originale, ma con gli stessi package che hai utilizzato per visualizzare la mia tabella. E funziona!
        Dopo varie prove, ho scoperto che posso lasciare i miei vecchi package, ma che devo aggiungere anche quello del booktabs.
        Ecco il preambolo corretto:
        `\usepackage{booktabs,tabulary}
        \usepackage{pdflscape}
        \usepackage{multirow}`

        Non riesco però ancora a capire perchè prima il codice della tabella andava e ora no, sebbene non abbia mai inserito il package booktabs…Sai mica il perchè? Un errore del software di LyX forse?

        Sono comunque al settimo cielo!
        Grazie infinite! Veramente!

        PS: per quanto riguarda l’elenco di consigli che mi hai dato, alcune cose come il fatto che non abbia utilizzato \\ o le quadre in mezzo alle graffe o altro è a dire il vero il risultato di un copia/incolla della View Source (che ti mostra il codice LaTex che sta sotto la veste di LyX) della tabella che avevo fatto con Lyx, ma che era venuto fuori un disastro…
        Per le unità di misura nelle quadre, le considero un tocco tipografico migliore delle solite parentesi tonde, mentre per quanto riguarda l’utilizzo del punto come separatore decimale è una vecchia abitudine che fanno tutti, professori compresi, nella mia università, motivata anche dal fatto che alcuni software utilizzano proprio il punto e quindi, se crei file di input con la virgola e li fai girare con questi software, iniziano a crearti errori e casini… 🙂 Grazie comunque per la lista, alcune cose sono interessanti. E per quanto riguarda LyX l’ho scelto perchè mi sembrava il trampolino di lancio migliore per poi passare a LaTex (purtroppo non ho studiato programmazione e come inizio mi sembrava difficoltoso)…quindi finita la tesi, ti assicuro che passerò al genuino linguaggio LaTex!
        Grazie ancora!

      • #81191
        franen
        Partecipante
          Up
          0
          Down
          ::

          Greywolf” post=80425Funziona!
          Ma non con il codice che mi hai scritto tu… 🙂 che peraltro non mi funziona con il preambolo che hai messo…

          Allora c’è qualcosa che non va nella tua distribuzione! 🙂

          Fran

        • #81192
          Up
          0
          Down
          ::


          Lo immaginavo…basta che mi lasci finire di scrivere la tesi…

        • #81193
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::

            Per le unità di misura nelle quadre, le considero un tocco tipografico migliore delle solite parentesi tonde,

            Peccato che le quadre in metrologia abbiano un significato specifico quindi il tuo tocco tipografico rispetto alle tonde è un errore.

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

        Go to top