- Questo topic ha 7 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 10 anni, 9 mesi fa da
OldClaudio.
-
CreatoreTopic
-
17 Novembre 2015 alle 9:33 #104113::
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?
-
CreatoreTopic
-
AutoreRisposte
-
-
17 Novembre 2015 alle 12:52 #104114::
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}`
-
17 Novembre 2015 alle 12:55 #104115::
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.
-
17 Novembre 2015 alle 13:18 #104116::
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].
-
17 Novembre 2015 alle 13:23 #104117::
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? 🙂
-
17 Novembre 2015 alle 15:12 #104118::
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
-
17 Novembre 2015 alle 17:06 #104119::
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 🙂
-
17 Novembre 2015 alle 22:24 #104120::
@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’.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.