- Questo topic ha 9 risposte, 3 partecipanti ed è stato aggiornato l'ultima volta 7 anni, 12 mesi fa da
OldClaudio.
-
CreatoreTopic
-
14 Settembre 2018 alle 8:38 #113882::
Ciao a tutti! Spero di aver inserito questo nuova discussione nella giusta categoria 🙂
Ho quasi finito di elaborare la tesi, ma ho un problema con l’allineamento di tabelle. Ho cercato e ricercato, ma non sono ancora riuscita a risolvere.
Ho provato ad utilizzare l’ambiente minitable e il comando \subtable, ma le tabelle, anziché venire allineate orizzontalmente, vengono inserite una sotto l’altra.
Non è da tanto che utilizzo latex, ma non mi sembra che il comando \subtable sia molto complicato.
Questo è il codice che ho utilizzato:
`\begin{table}[H]\subtable[Simulazione]{
\begin{tabular}{ l | c | c | c }
\diagbox{a}{p} & $0.3$ & $0.5$ & $0.7$ \\
\hline
10 & 100 & 89 & 0 \\
50 & 100 & 46 & 0 \\
90 & 100 & 5 & 0 \\
\end{tabular}
}\qquad\qquad\subtable[Percentuali]{
\begin{tabular}{ l | c | c | c }
\diagbox{a}{p} & $0.3$ & $0.5$ & $0.7$ \\
\hline
10 & 100 \% & 89 \% & 0 \% \\
50 & 100 \% & 46 \% & 0 \% \\
90 & 100 \% & 5 \% & 0 \% \\
\end{tabular}
}\end{table}`
Qualcuno riesce a trovare l’errore?
-
CreatoreTopic
-
AutoreRisposte
-
-
14 Settembre 2018 alle 9:14 #113883::
Benvenuta nel forumpeccato che come primo messaggio invii un codice che a prima vista contiene un solo errore, quello di usare il codice di posizionamento [H] che non dive usare mai, mai e poi mai perché è tipograficamente scorretto.
Per il resto è difficile dirti che cosa ci sia che non vada se non metti un minimo di preambolo per sapere quali pacchetti usi che classe usi, eccetera.
Ci vuole un esempio minimo compilabile vale a dire dovresti allegar un codice che cominci con \documentclass e finisca con \end{document}; questo lo rendo “compilabile”; poi dovrebbe contenere nel preambolo il minimo di pacchetti necessari per replicare il tuo problema.
Posso trare ad indovinare; non posso indovinare la classe, no posso indivinare se hai caricato caption con i suoi annessi e connessi; posso capire che hai caricato il pacchetto float (che puoi tranquillamente togliere del tutto, perché NON devi usare i codice H); non posso indovinare la giustezza della tua pagina senza conoscere la classe; non posso indovinare il corpo che usi come corpo predefinto nella tua classe.
Perciò, per favore crea l’esempio minimo compilabile e usa quello come codice da far esaminare ai frequentatori del forum che potrebbero darti una mano, o almeno perché ti succede quello che lamenti; Io propenderei a pensare che le due tabelline siano troppo larghe per la giustezza della tua clsse, ma evidentemente si tratta di un’ipotesi non sostenuta da nessun indizio.,
-
14 Settembre 2018 alle 11:16 #113884::
Mi dispiace non aver inserito abbastanza informazioni, ma è da poco che mi muovo in questo ambiente.
Questo è parte di ciò che ho inserito nel preambolo:`\documentclass[a4paper,11pt]{report}
\usepackage[italian]{babel}
\usepackage[utf8]{inputenc}
.
.
.
\usepackage{graphicx}
\usepackage{float}
\usepackage{caption}
\usepackage{diagbox}
\usepackage{subfigure}
.
.
.`Spero che quanto riportato basti, ma intanto ti ringrazio per l’ipotesi fatta, proverò a cambiare le dimensioni delle tabelle.
-
14 Settembre 2018 alle 11:42 #113885::
@iretex, non mi sono spiegato bene: cucire quello che hai postato ora con quello che hai postato nel tuo primo messaggio è compito tuo; chi ti vuole aiutare deve poter copiare dalla finestra contente il tuo codice un file completo da \documentclass a \end{document}, non parti da assemblare, col rischio di commettere errori o dimenticanze nell’assemblaggio. Se l’assemblaggio lo fai tu e tu stessa collaudi che l’EMC replica esattamente il tuo problema, sei sicura che incolandolo tutto tra i tag del codice, chi lo riceve lo riceve completo.Ti prego, assembla l’EMC, collaudalo e postalo.
-
14 Settembre 2018 alle 12:01 #113886::
Ecco il programma, è quello che succede esattamente a me:`\documentclass[a4paper,11pt]{report}
\usepackage[italian]{babel}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{float}
\usepackage{caption}
\usepackage{diagbox}
\usepackage{subfigure}
\setlength{\parindent}{0pt}\begin{document}
\begin{table}[H]
\subtable[Simulazione]{
\begin{tabular}{ l | c | c | c }
\diagbox{a}{p} & $0.3$ & $0.5$ & $0.7$ \\
\hline
10 & 100 & 89 & 0 \\
50 & 100 & 46 & 0 \\
90 & 100 & 5 & 0 \\
\end{tabular}
}\qquad\qquad\subtable[Percentuali]{
\begin{tabular}{ l | c | c | c }
\diagbox{a}{p} & $0.3$ & $0.5$ & $0.7$ \\
\hline
10 & 100 \% & 89 \% & 0 \% \\
50 & 100 \% & 46 \% & 0 \% \\
90 & 100 \% & 5 \% & 0 \% \\
\end{tabular}
}\end{table}
\end{document}`
-
14 Settembre 2018 alle 12:18 #113887::
Perfetto, grazie.1) Ho tolto [H] e le due minitabelle appaiono regolarmente affiancate.
2) con la casella in alto a sinistra che contiene la riga diagonale, non si capisce bene a cosa si riferiscano a e p; p si irferisce ai valori inferiori a 1 nella prima riga di dati numerici e a è l’intestazione della prima colonna? Non è chiaro. ma ammesso che sia così, allora si va al punto 3.
3) le tabelle ben fatte non contengono per niente i filetti verticali, ma contengono solo pochissimi filetti orizzontali; uno spesso sopra la prima riga di intestazione e uno spesso dopo l’ultima riga della tabella[ uno sottile attraverso tutta la tabella; se alcune colonne sono intestate su due righe è consentito in filetto sottile e parziale che separi le loro intestazioni dalla tabella vera e propria. Ciò si ottiene usando il pacchetto booktabs.
Nel codice che segue ho ridotto il preamboloai soli pacchetti necessari per l’EMC, ma come vedi ora vi compare anche booktabs; sono spariti graphicx (che non serve epr l’EMC, ma che probabilmente serve per il resto della tesi), float e diagbox. Ho cambiato gli allineamenti delle colonne.
`% !TEX encoding = UTF-8 Unicode
% !TEX TS-program = pdflatex
\documentclass[a4paper,11pt]{report}
\usepackage[italian]{babel}
\usepackage[utf8]{inputenc}
%
\usepackage{caption}
\usepackage{subfigure}
\usepackage{booktabs}
%
\begin{document}
\begin{table}[!h]\centering
\subtable[Simulazione]{
\begin{tabular}{ l r r r }
\toprule
$a$ & \multicolumn3c{$p$}\\
\cmidrule{2-4}
& 0.3 & 0.5 & 0.7 \\
\midrule
10 & 100 & 89 & 0 \\
50 & 100 & 46 & 0 \\
90 & 100 & 5 & 0 \\
\bottomrule
\end{tabular}
}
%
\qquad\qquad
%
\subtable[Percentuali]{
\begin{tabular}{ l r r r }
\toprule
$a$ & \multicolumn3c{$p$}\\
\cmidrule{2-4}
& 0.3 & 0.5 & 0.7 \\
\midrule
10 & 100 \% & 89 \% & 0 \% \\
50 & 100 \% & 46 \% & 0 \% \\
90 & 100 \% & 5 \% & 0 \% \\
\bottomrule
\end{tabular}
}
\end{table}\end{document}`
4) Se a e p sono simboli che indicano grandezze numeriche le devi comporre in corsivo matematico.
5) Se p indica una percentuale, puoi togliere tutti i segni \% dalla tabella e al posto di $p$ puoi scrivere $p (\%)$ e hai l’indicazione che tutti i valori indicati nelle tre colonne sotto p sono in centesimi (in percentuale).
-
14 Settembre 2018 alle 12:42 #113888
-
15 Settembre 2018 alle 5:24 #113889::
@OldClaudio ha già risolto in modo eccellente il tuo problema e ti ha già dato degli ottimi consigli; credo, tuttavia, che sia comunque il caso di aggiungere qualcosa.- Il motivo per cui le due tabelle non venivano collocate sulla stessa riga è che, nel tuo codice, esse erano separate da una riga vuota: come certamente sai, in (La)TeX una riga vuota nel codice sorgente causa l’inzio di un nuovo capoverso, e quindi implica un «ritorno a capo» forzato. Tanto per capirci, esattamente come il codice
`
Pippo\qquad
Pluto
`
produce le parole «Pippo» e «Pluto» sulla stessa riga, mentre
`
Pippo\qquadPluto
`
produce «Pippo» su una riga e «Pluto» sulla seguente, così la riga vuota che, nel tuo codice, era lasciata dopo [tt]\qquad\qquad[/tt] mandava a capo la seconda tabella. Noterai che nel codice affisso da @OldClaudio le righe vuote sono neutralizzate trasformandole in righe di commento (con [tt]%[/tt]). - Da almeno una quindicina d’anni, al pacchetto subfigure si dovrebbe preferire il suo più moderno sostituto subfig, scritto dallo stesso autore ma meglio integrato con i vari altri pacchetti che si occupano della gestione degli oggetti mobili.
- Personalmente, non sono così categorico nel colpire di anatema l’uso dell’opzione di posizionamento [tt][H][/tt] (attenzione: da non confondere con [tt][h][/tt]!), anche se resta vero che uno deve pensarci quattro volte prima di usarla, e, in più, deve essere sufficientemente addentro negli arcani del LaTeX da sapere bene quello che sta facendo; tuttavia, esso non ha nulla a che vedere con il problema che lamentavi.
- Ho notato che fra i vari pacchetti, anche irrilevanti ai fini del problema in discussione, elencati nell’EMC che avevi affisso non figurava il pacchetto fontenc; figurava però inputenc, dal che deduco che il “motore” di tipocomposizione da te usato sia pdfTeX. Ebbene, ricordati che, dovendo scrivere in italiano, l’uso di [tt]\usepackage[T1]{fontenc}[/tt] è praticamente obbligatorio. Le prime righe del tuo codice sorgente dovrebbero quindi essere
`
\documentclass[a4paper,11pt]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
`
Del resto, durante la compilazione, non ti comparivano forse degli avvertimenti emessi dal codice di definizione della lingua [tt]italian[/tt] di babel?
Ciao.
—
Gustavo
- Il motivo per cui le due tabelle non venivano collocate sulla stessa riga è che, nel tuo codice, esse erano separate da una riga vuota: come certamente sai, in (La)TeX una riga vuota nel codice sorgente causa l’inzio di un nuovo capoverso, e quindi implica un «ritorno a capo» forzato. Tanto per capirci, esattamente come il codice
-
15 Settembre 2018 alle 13:16 #113890::
Si, ho notato che @OldClaudio ha inserito delle % nei punti in cui comparivano righe vuote. Purtroppo non pensavo che lasciare una linea vuota mi potesse creare quel problema 😥
Ho inserito il pacchetto che hai suggerito, ma non mi sembra che durante la compilazione mi comparissero degli avvertimenti 😕 .
Grazie comunque per i consigli! Mi hai aiutato a capire meglio gli errori commessi 🙂
-
15 Settembre 2018 alle 13:51 #113891::
No, non ti appaiono certamante degli avveritmenti nel codice minimo su cui abbiamolavorato tuti, ma tieni presente che se non specifichi la codifica T! per i font con cuoi compilare, la codifica di default usata è la vecchia codifica OT1.
Qual’è la differenza?
La codifica OT1 si riferisca a font conteneti 128 caratteri (sostanzialmente solo i caratteri ASCII, cioè l’alfabeto latino minuscolo e maiuscolo, i caratteri anlfabetici come le cifre e le parentesi (e altri), e la collezione di accenti da mettere sopra o sotto i caratteri latini mediante le macro di \TeX; per esempio \`a, \c{c}, eccetera.La codifica T1 a 256 caratteri contiene i glifi ASCII ma contiene tutti i caratteri della codifica OT!, pi¡u le lettere minuscole e maiuscole accentate valide per la quasi totalità delle lingue europee occidentali più altri caratteri analfabetici, per esempio le virgolette alte (o inglesi) “ e ”, e i caporali (o virgolette uncinate o europee continentali) « e ».
Scrivendo conl a codifica OT! in generale non ricevi avvisi a meno che tu non voglia usare qualche carattere diverso da quelli ASCII. Usando babel e la lingua italian ricevi degli avvisi che ti dicono che i caporali saranno presi da altri font, oltre ad altri avvisi dello stesso genere. Puoi ingora quegli avvisi, ma devi ricordarti che con la codifica OT!, gli accenti sono messi in posizione con delle macro, quindi queste macro possono in parte ridurre le capacità di cesura in fin di riga, quindi la composizione con caratteri Computer Modern OT1 (quelli di default) risulta meno bella di quella che si può ottenre con i font codificati con la codifica T1. Tenuto conto dei moltissimi pregi e dei pochissimi difetti, io consiglio sempre di usare i font Latin Modern per tanti motivi che non sto qui a descrivere; se vuoi approfondire scarica e leggi la guida tematica sulle codifiche; la trovi nella sezione Documentazione di questo forum.
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.