Mettere tabelle affiancate

  • Creatore
    Topic
  • #117679
    Up
    0
    Down
    ::


    Buonasera a tutti,
    in università il professore ci ha consigliato di usare Latex per alcuni compiti da lui assegnati. Sto quindi usando per la prima volta questo editor e sono piuttosto inesperto, per cui mi scuso in anticipo se sto creando un topic su un problema già trattato, ma non sono riuscito a risolverlo vedendo altri topic simili.
    Praticamente io ho due tabelle che vorrei affiancare, invece di averle in cascata. Sono di dimensioni piuttosto ridotte quindi insieme dovrebbero andare nella stessa pagina.
    Il codice con le tabelle è:

    Spoiler

    `\section{Risultati in assenza di attacco}
    \begin{table}[htb]\caption{Tabella risultati in assenza di attacco in caso di Embedding Sostitutivo}
    \centering
    \begin{tabular}{ccc}
    &&\\
    Livello & $CC(W,W_e)$ & $PSNR(I,I_W)\;(dB)$ \\[+0.8em]
    \hline
    \hline
    \\
    1 (MSB) & $1$ & $8,99$ \\[+0.4em]
    2 & $1$ & $15,04$ \\[+0.4em]
    3 & $1$ & $21,04$ \\[+0.4em]
    4 & $1$ & $27,05$ \\[+0.4em]
    5 & $1$ & $33,08$ \\[+0.4em]
    6 & $1$ & $39,09$ \\[+0.4em]
    7 & $1$ & $45,12$ \\[+0.4em]
    8 (LSB) & $1$ & $51,14$ \\[+0.4em]
    \hline
    \end{tabular}\label{tab:res}
    \end{table}
    \begin{table}[htb]\caption{Tabella risultati in assenza di attacco in caso di Embedding Additivo di tipo XOR}
    \centering
    \begin{tabular}{ccc}
    &&\\
    Livello & $CC(W,W_e)$ & $PSNR(I,I_W)\;(dB)$ \\[+0.8em]
    \hline
    \hline
    \\
    1 (MSB) & $1$ & $9,01$ \\[+0.4em]
    2 & $1$ & $15,03$ \\[+0.4em]
    3 & $1$ & $21,05$ \\[+0.4em]
    4 & $1$ & $27,07$ \\[+0.4em]
    5 & $1$ & $33,09$ \\[+0.4em]
    6 & $1$ & $39,11$ \\[+0.4em]
    7 & $1$ & $45,13$ \\[+0.4em]
    8 (LSB) & $1$ & $51,15$ \\[+0.4em]
    \hline
    \end{tabular}\label{tab:res}
    \end{table}`

    Sapete aiutarmi? Grazie 😀

Visualizzazione 13 filoni di risposte
  • Autore
    Risposte
    • #117680
      samiel
      Partecipante
        Up
        0
        Down
        ::


        Premesso che LaTeX non è un editor ma un sistema di impaginazione,
        hai diverse soluzioni possibili:

        1.
        usare 2 ambienti tabular affiancati
        `\begin{tabular}{ccc}
        \hline
        a&b&c\\
        \hline
        \end{tabular}
        \quad
        \begin{tabular}{ccc}
        \hline
        d&e&f\\
        \hline
        \end{tabular}`

        2. (per avere 2 tabelle indipendenti)
        `\begin{table}
        \parbox{.45\linewidth}{
        \centering
        \begin{tabular}{ccc}
        \hline
        a&b&c\\
        \hline
        \end{tabular}
        \caption{Foo}
        }
        \hfill
        \parbox{.45\linewidth}{
        \centering
        \begin{tabular}{ccc}
        \hline
        d&e&f\\
        \hline
        \end{tabular}
        \caption{Bar}
        }
        \end{table}`

        3. (con minipage)
        `\begin{table}[!htb]
        \caption{Global caption}
        \begin{minipage}{.5\linewidth}
        \caption{}
        \centering
        \begin{tabular}{ll}
        1 & 2
        \end{tabular}
        \end{minipage}%
        \begin{minipage}{.5\linewidth}
        \centering
        \caption{}
        \begin{tabular}{ll}
        3 & 4
        \end{tabular}
        \end{minipage}
        \end{table}`

        4.
        Puoi ricorrere al pacchetto floatrow,
        di cui però non conosco eventuali svantaggi

        m

      • #117681
        Up
        0
        Down
        ::


        Intanto ti ringrazio per la risposta. Ho utilizzato i due ambienti tabular affiancati e ci sono riuscito. Il problema è che ora non riesco a mettere le didascalie alle tabelle. Cosa sbaglio? Non è giusto il comando di prima?

      • #117682
        Up
        0
        Down
        ::


        \caption deve stare dentro un ambiente flottante, quindi o usi l’esempio n. 2 di Mauro, oppure carichi il pacchetto caption e usi il comando \captionof, che è descritto nella documentazione.

        Ciao
        Ivan

      • #117683
        Up
        0
        Down
        ::


        Ho provato ad usare captionof, inserendo il package caption, ma mi da errore:

        Spoiler

        `\begin{tabular}{ccc}
        \hline
        &&\\
        Livello & $CC(W,W_e)$ & $PSNR(I,I_W)\;(dB)$ \\[+0.8em]
        \hline
        \hline
        \\
        1 (MSB) & $1$ & $8,99$ \\[+0.4em]
        2 & $1$ & $15,04$ \\[+0.4em]
        3 & $1$ & $21,04$ \\[+0.4em]
        4 & $1$ & $27,05$ \\[+0.4em]
        5 & $1$ & $33,08$ \\[+0.4em]
        6 & $1$ & $39,09$ \\[+0.4em]
        7 & $1$ & $45,12$ \\[+0.4em]
        8 (LSB) & $1$ & $51,14$ \\[+0.4em]
        \hline
        \end{tabular}
        \captionof{tabular}[Titolo}
        \quad
        \begin{tabular}{ccc}
        \hline
        &&\\
        Livello & $CC(W,W_e)$ & $PSNR(I,I_W)\;(dB)$ \\[+0.8em]
        \hline
        \hline
        \\
        1 (MSB) & $1$ & $9,01$ \\[+0.4em]
        2 & $1$ & $15,03$ \\[+0.4em]
        3 & $1$ & $21,05$ \\[+0.4em]
        4 & $1$ & $27,07$ \\[+0.4em]
        5 & $1$ & $33,09$ \\[+0.4em]
        6 & $1$ & $39,11$ \\[+0.4em]
        7 & $1$ & $45,13$ \\[+0.4em]
        8 (LSB) & $1$ & $51,15$ \\[+0.4em]
        \hline
        \end{tabular}
        \captionof{tabular}[Titolo}`

        Cosa sbaglio?

      • #117684
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Usa la soluzione 2 o la soluzione tre.

          Se proprio vuoi usare \captionof lo devi mettere dentro la tabella come argomento di \multicolumn dopo l’ultimo \hline e supito prima di \end{tabular}.

          Ma qui c’è un altro piccolo problema estetico: le righe orizzontali (che si chiamano filetti) vanno messi con i comandi definiti dal pacchetto booktabs e non vanno mai raddoppiati.; qualcosa come:`\usepackage{booktabs} % nel preambolo

          \begin{tabular}[ccc}\toprule
          ….
          \midrule

          \bottomrule
          \multicolumn{3}{\captionof{table}{Titolo}}% nota: table, non tabular
          \end{tabuar}
          `

        • #117685
          samiel
          Partecipante
            Up
            0
            Down
            ::


            Con l’opzione 1 devi usare subfig e poi
            `\subfloat{\begin{tabular}{…}…\end{tabular}}
            \subfloat{\begin{tabular}{…}…\end{tabular}}`

            m

          • #117686
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Sì, @Samiel, c’è anche quella possibilità ma per usarlo è necessario che le due tabelle siano correlate tanto da poter essere messe assieme dentro lo stesso float di tipo table; vi sarà una didascalia per l’intero float, e due sottodidascalie, una per ciascun sublfoat.

              Ora evidentemente @Tork98 sa che cosa contengano le due tabelle e se sono o non sono correlate; quindi sta a lui la scelta.

              Ti ringrazio per il suggerimento che hai dato a tutti noi; è prezioso, anche per vecchi lupi come me che non usano mai il pacchetto subfig.

            • #117687
              Up
              0
              Down
              ::

              Tork98″ post=118105Ho provato ad usare captionof, inserendo il package caption, ma mi da errore:

              Spoiler

              `\begin{tabular}{ccc}
              \hline
              &&\\
              Livello & $CC(W,W_e)$ & $PSNR(I,I_W)\;(dB)$ \\[+0.8em]
              \hline
              \hline
              \\
              1 (MSB) & $1$ & $8,99$ \\[+0.4em]
              2 & $1$ & $15,04$ \\[+0.4em]
              3 & $1$ & $21,04$ \\[+0.4em]
              4 & $1$ & $27,05$ \\[+0.4em]
              5 & $1$ & $33,08$ \\[+0.4em]
              6 & $1$ & $39,09$ \\[+0.4em]
              7 & $1$ & $45,12$ \\[+0.4em]
              8 (LSB) & $1$ & $51,14$ \\[+0.4em]
              \hline
              \end{tabular}
              \captionof{tabular}[Titolo}
              \quad
              \begin{tabular}{ccc}
              \hline
              &&\\
              Livello & $CC(W,W_e)$ & $PSNR(I,I_W)\;(dB)$ \\[+0.8em]
              \hline
              \hline
              \\
              1 (MSB) & $1$ & $9,01$ \\[+0.4em]
              2 & $1$ & $15,03$ \\[+0.4em]
              3 & $1$ & $21,05$ \\[+0.4em]
              4 & $1$ & $27,07$ \\[+0.4em]
              5 & $1$ & $33,09$ \\[+0.4em]
              6 & $1$ & $39,11$ \\[+0.4em]
              7 & $1$ & $45,13$ \\[+0.4em]
              8 (LSB) & $1$ & $51,15$ \\[+0.4em]
              \hline
              \end{tabular}
              \captionof{tabular}[Titolo}`

              Cosa sbaglio?

              `\captionof{table}{Testo della didascalia}`

              EMC:
              `\documentclass{article}
              \usepackage{caption}

              \begin{document}

              \captionof{table}{Testo della didascalia}
              \begin{tabular}{cc}
              a & b
              \end{tabular}

              \end{document}`
              Ciao
              Ivan

            • #117688
              samiel
              Partecipante
                Up
                0
                Down
                ::

                Sì, @Samiel, c’è anche quella possibilità ma per usarlo è necessario che le due tabelle siano correlate

                infatti, e forse era più chiaro se lo precisavo al punto 1…
                ma è per questo che al punto 2 ho aggiunto “per avere e tabelle indipendenti”…
                m

              • #117689
                Up
                0
                Down
                ::


                Ho usato la seconda strada, in modo da avere due tabelle indipendenti e sembra funzionare. L’unico inconveniente è che le tabelle vanno in automatico al centro della pagina successiva e non so che fare.

                Spoiler

                `\documentclass{article}
                \usepackage[top=1in, bottom=1in, left=1.2in, right=1in]{geometry}
                \usepackage[utf8]{inputenc}
                \usepackage[italian]{babel}
                \usepackage{graphicx}
                \usepackage{multirow}
                \usepackage{textcomp}
                \usepackage{caption}

                \begin{document}

                \section{Risultati in assenza di attacco}
                \begin{table}
                \parbox{.45\linewidth}{
                \begin{tabular}{ccc}
                \hline
                &&\\
                Livello & $CC(W,W_e)$ & $PSNR(I,I_W)\;(dB)$ \\[+0.8em]
                \hline
                \hline
                \\
                1 (MSB) & $1$ & $8,99$ \\[+0.4em]
                2 & $1$ & $15,04$ \\[+0.4em]
                3 & $1$ & $21,04$ \\[+0.4em]
                4 & $1$ & $27,05$ \\[+0.4em]
                5 & $1$ & $33,08$ \\[+0.4em]
                6 & $1$ & $39,09$ \\[+0.4em]
                7 & $1$ & $45,12$ \\[+0.4em]
                8 (LSB) & $1$ & $51,14$ \\[+0.4em]
                \hline
                \end{tabular}
                \caption{Foo}
                }
                \hfill
                \parbox{.45\linewidth}{
                \begin{tabular}{ccc}
                \hline
                &&\\
                Livello & $CC(W,W_e)$ & $PSNR(I,I_W)\;(dB)$ \\[+0.8em]
                \hline
                \hline
                \\
                1 (MSB) & $1$ & $9,01$ \\[+0.4em]
                2 & $1$ & $15,03$ \\[+0.4em]
                3 & $1$ & $21,05$ \\[+0.4em]
                4 & $1$ & $27,07$ \\[+0.4em]
                5 & $1$ & $33,09$ \\[+0.4em]
                6 & $1$ & $39,11$ \\[+0.4em]
                7 & $1$ & $45,13$ \\[+0.4em]
                8 (LSB) & $1$ & $51,15$ \\[+0.4em]
                \hline
                \end{tabular}
                \caption{Bar}
                }
                \end{table}
                \end{document}`

              • #117690
                Up
                0
                Down
                ::


                Probabilmente perché dove le hai messe non ci stanno. Il posizionamento delle tabelle è sempre delicato. Puoi tentare con gli specificatoci di posizionamento, che trovi spiegati in ogni guida, nel capitolo sulle tabelle. Vedi per esempio L’arte di scrivere con LaTeX.

                La soluzione che ti ho suggerito io (che non è altro che la soluzione 1 di Mauro) non ha questo problema, ma potrebbe comportarne altri. Il vantaggio di usare ambienti flottanti è che in questo modo hai il riempimento ottimale delle pagine. La mia soluzione ti lascia piena libertà nel posizionamento delle tabelle, ma ciò significa che potresti posiaionarle in un posto che penalizza il riempimento di pagina.

                Ciao
                Ivan

              • #117691
                samiel
                Partecipante
                  Up
                  0
                  Down
                  ::


                  a questo punto prova la soluzione con le minipage,
                  che di per sé non sono oggetti flottanti

                  m

                • #117692
                  OldClaudio
                  Partecipante
                    Up
                    0
                    Down
                    ::



                    @Tork98
                    , non vuoi proprio capire quello che ti hi detto. Ma non importa; hai ricevuto altri suggerimenti da altri che vanno benissimo, ma non riesci a metterli in pratica perché non stai attento a quello che leggi.

                    Ho quindi fatto l’eserciio per te; e i problemi tuoi sono molto più grandi che non quelo di mettere le due tabelle affiancate ciascuna con la sua didascali. E il problema più grosso è che ciascuna tabella per suo conto è larga 75mm; due tabelle fanno 150mm. la alrghezza del blocco di stampa delle classi standard è di 160mm quindi le due tabelle così come sono non ci stanno.
                    Inoltre le grandezze misurabili non si scrino mai ocn acronimi,alemno questo prescrivono le norme ISO per le scienze sperimentali; la medicina, la biologia e le altre scienze simili fanno uso di grandezze misurabili? a me pare di sì; allora le grandezze si insicano con una lettera sola in corsivo matematico e vi si mettono al piede qaunti appellativi si vogliono,composti in tondo; inoltre le unità di misura vanno sempre in tondo (nel tuo caso i decibel). Le spaziature verticali fra le varie parti non devono assomigliare ad una tabella composta con un word processor, ma devono rispettare le regole tipografiche. Ti avevo detto che devi mettere i filetti orizzontali con i comandi definit dal pacchetto booktabs, e hai continuato con \hline. Infine ti avevo detto di seguire una delle tre vie che ti erano state indicate, ma avevo aggiunto che potevi mettere la didascalia nella prima riga come argomenti di un comando \multicolumn.

                    Il mio esercizio è il seguente`\documentclass{article}

                    \usepackage{booktabs}
                    \usepackage{kantlipsum}

                    \begin{document}
                    \section{Risultati in assenza di attacco}
                    \kant[1]

                    \begin{table}[!htb]\def\arraystretch{1.5}\tabcolsep=3pt
                    \makebox[\linewidth]{%
                    \begin{tabular}{@{}ccc@{}}
                    \multicolumn{3}{p{0.475\linewidth}}{\caption{Tabella risultati in assenza di attacco in caso di Embedding Sostitutivo}\label{tab:res1}}\\[2ex]
                    Livello & $CC(W,W_e)$ & $PSNR(I,I_W)$\\
                    & & (dB) \\[+0.8em]
                    \midrule
                    \\
                    1 (MSB) & $1$ & $8,99$ \\
                    2 & $1$ & $15,04$ \\
                    3 & $1$ & $21,04$ \\
                    4 & $1$ & $27,05$ \\
                    5 & $1$ & $33,08$ \\
                    6 & $1$ & $39,09$ \\
                    7 & $1$ & $45,12$ \\
                    8 (LSB) & $1$ & $51,14$ \\
                    \bottomrule
                    \end{tabular}

                    \begin{tabular}{@{}ccc@{}}
                    \multicolumn{3}{p{0.475\linewidth}}{\caption{Tabella risultati in assenza di attacco in caso di Embedding Additivo di tipo XOR}\label{tab:res2}}\\[2ex]
                    Livello & $CC(W,W_e)$ & $PSNR(I,I_W)$ \\
                    & & (dB) \\[+0.8em]
                    \midrule\\
                    1 (MSB) & $1$ & $9,01$ \\
                    2 & $1$ & $15,03$ \\
                    3 & $1$ & $21,05$ \\
                    4 & $1$ & $27,07$ \\
                    5 & $1$ & $33,09$ \\
                    6 & $1$ & $39,11$ \\
                    7 & $1$ & $45,13$ \\
                    8 (LSB) & $1$ & $51,15$ \\
                    \bottomrule
                    \end{tabular}}
                    \end{table}

                    \end{document}`Fai girare questo esempio minimo compilabile e constaterai quello che ti ho descritto; le due tabelle ora sono larghe 59mm, ma non sono abbastanza distanziate; bisognerebbe usare un font più piccolo, mo non tanto, per esempio in corpo 9.5pt invece che in corpo 10pt; Se poi tu componi in corpo 12pt, non ne parliamo, non te la cavi a metterle appaiate; Se componi con una classe in cui la gabbia del testo sia larga 190mm (esagero) te la cavi, ma i margini laterali ammontano solamente a 10mm, e le righe di testo sono troppo lunghe da poter essere lette con comodità.
                    Vi troverai dei comandi che non hai mai visto, perché se non hai capito quello che ti ho scritto, vuol dire che non hai “studiato” la documentazione, cosa prescritta dalla netiquette di questo forum. Nella sezione Documentazione di questo forum ci sono diverse guide generali di diverso livello e ci sono delle guide tematiche su argomenti particolari; se ti fossi documentato, avresti visto che ce ne è una che si chiama Il LaTeX Reference Manual commentato e tradotto in italiano; contiene l’ABC del linguaggio LaTeX, senza il quale non vai oltre alla compilazione di n modello già predisposto. C’è un altra guida Intitolata Comporre tabelle e matrici
                    Come usare LaTeX per comporre tabelle e matrici ben fatte
                    ; chissà mai di cosa tratta questa guida?

                    Quest’ultima guida, in particolare spiega: prima progetta la tabella, poi costruiscila; fatti un conto più o meno a spanne di quanto siano larghe le colonne; aggiungi 4mm par quante colonne sono contenute nella tabella (nel tuo caso 3 colonne, aggiungi 12mm) e hhai una stima decente; puoi sempre comporla con un font più piccolo dle 10% (\small) o al massimo del 12% (\footnotesize)ma non devi rimpicciolire troppo il corpo dei caratteri. Puoi mettere le tabelle affiancate in vari modi, alcuni dei quali sono descritti in questa guida, ma non puoi aspettarti miracoli, perché se non hai fatto i conti prima con una progettazione decente, non te la cavi.

                    Il linguaggio LaTeX non deve necessariamente piacerti; né devi essere un programmatore avanzato per usare LaTeX; ma o ti accontenti di cioò che è già predisposto, o se vuoi uscire da seminato devi “studiare il linguaggio”.
                    Mi vien da ridere pensando a me stesso, quando sono turista in un paese di lingua tedesca o dove il tedesco è abbastanza diffuso, ma io non conosco la lingua del posto, né troviamo una lingua veicolare conosciuta bene da entrambi; per cui mi sforzo di mettere insieme quelle quattro parole che conosco; mi ridono educatamente in faccia, ma potrebbero tranquillamente rotolarsi dalle risa quando io cerco di esprimermi in tedesco: perché? perché non ho studiato abbastanza.

                  • #117693
                    Up
                    0
                    Down
                    ::


                    Intanto ti ringrazio per la risposta e per il codice.
                    Avendo iniziato ad usare Latex praticamente da due giorni e avendo una scadenza piuttosto ravvicinata come hai ben immaginato mi trovo un po’ in difficoltà. Ho avuto più di qualche problema, un po’ li ho risolti cercando online, sicuramente anche in modi “poco ortodossi” e altri leggendo la guida “L’arte di scrivere con Latex”. Per quanto riguarda appunto la guida, non ho avuto modo di leggerla in maniera completamente approfondita, ma inizialmente mi sono concentrato sui temi introduttivi e su quelli al momento a me più utili o di base; però, come penso sia anche normale, mi rimane comunque un po’ di confusione in testa, dato che le informazioni sono tante e non di facilissima comprensione ad una prima lettura. Riprendendo il tuo esempio è come se dopo aver letto due libri di grammatica tedesca, pretendessi di padroneggiare bene la lingua, cosa impossibile; un po’ di problemi li ho risolti, altri purtroppo no.

                    Mi scuso comunque se le mie domande ti possano essere sembrate banali o dettati da pigrizia, ti assicuro che non era mia intenzione.

                    Ti ringrazio ancora per l’aiuto.

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

                Go to top