Tabella ridimensionata con resizebox ma non centrata

  • Creatore
    Topic
  • #104113
    Up
    0
    Down
    ::


    Questa tabella ridimensionata con resibox non è centrata
    `\documentclass[twocolumn]{mnras}
    \usepackage{lipsum,graphicx}
    \begin{document}
    \begin{table}
    \centering
    \caption{\protect\lipsum[11]}
    \resizebox{1.0\columnwidth}{!}{%
    \begin{tabular}{llllllll}
    \hline
    uno & due & tre & quattro & cinque & sei & sette & otto \\
    \hline
    \end{tabular}%
    }
    \end{table}
    \end{document}`
    Invece, cambiando solo la classe, da mnras a article per esempio, la tabella è centrata. Difetto della classe? È possibile correggere?

Visualizzazione 6 filoni di risposte
  • Autore
    Risposte
    • #104114
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Prova con questo codice.`\documentclass[twocolumn]{mnras}
        \usepackage{lipsum,graphicx}
        \begin{document}
        \begin{table}
        % \centering
        \caption{\protect\lipsum[11]}
        \makebox[\columnwidth]{\resizebox{\linewidth}{!}{%
        \begin{tabular}{llllllll}
        \hline
        uno & due & tre & quattro & cinque & sei & sette & otto \\
        \hline
        \end{tabular}%
        }}
        \end{table}
        \end{document}`

      • #104115
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::

          Elrond” post=104123Questa tabella ridimensionata con resibox non è centrata
          `\documentclass[twocolumn]{mnras}
          \usepackage{lipsum,graphicx}
          \begin{document}
          \begin{table}
          \centering
          \caption{\protect\lipsum[11]}
          \resizebox{1.0\columnwidth}{!}{%
          \begin{tabular}{llllllll}
          \hline
          uno & due & tre & quattro & cinque & sei & sette & otto \\
          \hline
          \end{tabular}%
          }
          \end{table}
          \end{document}`
          Invece, cambiando solo la classe, da mnras a article per esempio, la tabella è centrata. Difetto della classe? È possibile correggere?

          Ciao.
          Ho trovato l’errore \o/
          Si tratta di spazi spuri nella ridefinizione di \tabular.
          Questo errore farebbe molto contento il nostro Enrico visto il suo intervento a Trento 🙂

          Per correggerlo ho semplicemente copiato e incollato il codice nel preambolo del documento ma questa volta mettendo ben 5 simboli percentuali:

          `\makeatletter
          \def\tabular{\def\@halignto{}%
          \def\hline{\noalign{\ifnum0=`}\fi
          \vskip 3pt
          \hrule \@height \arrayrulewidth
          \vskip 3pt
          \futurelet \@tempa\@xhline}%
          \def\fullhline{\noalign{\ifnum0=`}\fi
          \vskip 3pt
          \hrule \@height \arrayrulewidth
          \vskip 3pt
          \futurelet \@tempa\@xhline}%
          \def\@xhline{\ifx\@tempa\hline
          \vskip -6pt
          \vskip \doublerulesep
          \fi
          \ifnum0=`{\fi}}%
          \def\@arrayrule{\@addtopreamble{\hskip -.5\arrayrulewidth
          % \vrule \@width \arrayrulewidth
          \hskip .5\arrayrulewidth}}%
          \@tabular
          }
          \makeatother`

          Un saluto.
          R.

        • #104116
          Up
          0
          Down
          ::

          OldClaudio” post=104131Prova con questo codice.`\documentclass[twocolumn]{mnras}
          \usepackage{lipsum,graphicx}
          \begin{document}
          \begin{table}
          % \centering
          \caption{\protect\lipsum[11]}
          \makebox[\columnwidth]{\resizebox{\linewidth}{!}{%
          \begin{tabular}{llllllll}
          \hline
          uno & due & tre & quattro & cinque & sei & sette & otto \\
          \hline
          \end{tabular}%
          }}
          \end{table}
          \end{document}`

          Grazie, ma non mi sembra che cambi granché: la tabella è sempre allineata a destra, con o senza il [tt]\centering[/tt].

        • #104117
          Up
          0
          Down
          ::

          robitex” post=104132Ciao.
          Ho trovato l’errore \o/
          Si tratta di spazi spuri nella ridefinizione di \tabular.

          Wow, grazie, funziona! Immaginavo fosse un problema di spazi spuri, infatti avevo notato che anche con la classe article non mettendo i due [tt]%[/tt] che ho riportato nell’esempio si hanno problemi.

          Essendo per una rivista penso sia inutile aggiungere questa pezza nel mio documento, ma proverò a segnalare il problema a chi di dovere. Ancora grazie!

          robitex” post=104132Questo errore farebbe molto contento il nostro Enrico visto il suo intervento a Trento 🙂

          Sbaglio o latita da un po’ di tempo su questi lidi? 🙂

        • #104118
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Bravo @robitex! Le lezioni di Enrico ai meeting servono, eccome!

            Ma per mettere in luce gli spazi spuri introdotti dalla definizione di tabular dentro quella classe mnras, non basta sapere che esiste il problema degli spazi spuri, ma bisogna anche saper riconoscere che la cosa dipende dalla classe.

            Chissà perché hanno voluto ridefinire gli \hline, quando sarebbe bastato usare i migliori comandi forniti da booktabs. Gli hline definiti da questa classe non sono di differenti spessori come quelli di booktabs e inseriscono i 3pt di spaziatura sopra e sotto anche prima del primo \hline e dopo l’ultimo.

            Comunque…

            Siccome l’errore è grave io fossi in te o in Elrond manderei un messaggio al maintainer:
            `% The Current Maintainer of this work is: Royal Astronomical Society,
            % MNRAS Editorial Office, who can be contacted on mn@ras.org.uk`

            Benché ci abbiano messo le mani una decina di persone, nessuno si è accorto della cattiva definizione.

            Claudio

          • #104119
            Up
            0
            Down
            ::

            OldClaudio” post=104139Bravo @robitex! Le lezioni di Enrico ai meeting servono, eccome!

            Ma per mettere in luce gli spazi spuri introdotti dalla definizione di tabular dentro quella classe mnras, non basta sapere che esiste il problema degli spazi spuri, ma bisogna anche saper riconoscere che la cosa dipende dalla classe.

            Beh, dai, che fosse un problema della classe non era così difficile, l’avevo capito addirittura io 😀

            OldClaudio” post=104139Siccome l’errore è grave io fossi in te o in Elrond manderei un messaggio al maintainer:
            `% The Current Maintainer of this work is: Royal Astronomical Society,
            % MNRAS Editorial Office, who can be contacted on mn@ras.org.uk`

            Già fatto (ringraziando Roberto!) e mi hanno già risposto 🙂

          • #104120
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::



              @Elrond
              , mi sono spiegato male; “bisogna saper riconoscere che la cosa dipende dalla classe” è un understatement, perché è ovvio che dipende dalla classe, ma da che cosa nella classe? Era il che cosa che era difficile trovare; io ho un po’ di esperienza nel cercare bachi, certo non quella di Enrico, ma a prima vista mi sembrava che il codice di \tabular fosse corretto; avendo capito che si trattava di spazi spuri, avevo guardato con attenzione quel codice, e mi sembrava corretto. Sbagliavo, perché quegli spazi dopo le graffe chiuse erano significativi non durante la definizione, che veniva eseguita in modo verticale, ma durante l’espansione che avviene in modo orizzontale.
              Quindi mi sembra giusto apprezzare l’acume di Roberto che è riuscito ad andare oltre la rima impressione; oppure è giusto riprovare la mia sbadataggine visto che mi sono fermato alla prima impressione.

              Tra l’altro, credo che il trucco che ho usato per verificare la diagnosi e la terapia di Roberto, possa essere utile anche ad altri.

              Il comando \frame nativo dei LaTeX di solito non viene descritto in nessuna guida; tra l’altro, sebben sia nativo di LaTeX, confligge con la definizione dell’ambiente frame di beamer, quindi se viene usato non deve essere usato con beamer.

              \frame mette una cornice attorno al suo contenuto senza lasciare nessuno spazio fra la cornice e il contenuto; nella fattispecie`\frame{\begin{tabular}{…}…\end{tabular}}`Compilando si vede subito che il contenuto è accompagnato da spazi che lo precedono, quindi quegli spazi derivano dall’apertura dell’ambiente. Infatti era proprio quello di apertura il comando che produceva gli spazi spuri, che non potevano nascere altro che dai fine riga dopo le graffe chiuse.
              L’uso di \frame permette di diagnosticare facilmente casi di spazi spuri, ma non solo; è un ottimo strumento diagnostico “di laboratorio’.

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

          Go to top