- Questo topic ha 9 risposte, 4 partecipanti ed è stato aggiornato l'ultima volta 10 anni, 4 mesi fa da
Emmanuele.
-
CreatoreTopic
-
14 Settembre 2012 alle 15:01 #78582::
Ciao a tutti!Mi rendo conto che questo problema è ampiamente discusso su molti Forum, ma leggo sempre risposte abbastanza complicate, e sempre con la necessità di installare nuovi pacchetti ad hoc! Mi chiedo quindi se esiste una soluzione semplice al mio problema.
A partire da una tabella semplice come questa…
`\begin{table}[ht]
\centering
\begin{tabular}{|c|c|}
\hline
a&bbb\\
\hline
a&bbb\\
a&bbb\\
\hline
\end{tabular}
\end{table}`
…vorrei decidere la larghezza delle colonne. Una soluzione potrebbe essere questa…
`\begin{table}[ht]
\centering
\begin{tabular}{|p{1cm}|p{1cm}|}
\hline
a&bbb\\
\hline
a&bbb\\
a&bbb\\
\hline
\end{tabular}
\end{table}`
…con la quale però l’allineamento delle celle è a sinistra! Come posso impostare la larghezza delle colonne, tenendo l’allineamento centrato?Grazie mille!!
-
CreatoreTopic
-
AutoreRisposte
-
-
14 Settembre 2012 alle 15:41 #78583::
Definisci un nuovo tipo di colonna con [tt]\necolumntype[/tt] (comando fornito dal pacchetti array di cui è bene leggere al documentazione prima di usare nuovo comandi).Supponiamo che tu abbia defnito la nuova colonna di larghezza specificata identificandola con la lettera C allora il tuo preambolo diventerà [tt]\begin{tabular}{CC}[/tt].
Tra l’altro, come vedi non ho inserto i filetti verticali; usa booktabs che definisce gli unici filetti orizzontali che si possono usare in una tabella professionale e dimentica l’esistenza dei filetti verticali. I filetti orizzontali vanno messi prima della riga dei titolo delle colonne, dopo al riga dei suddetti titoli, alla fine della tabella. Nessun altro filetto, solo talvolta un filetto parziale alla fine della tabella, invece di un filetto completo, quando si debbano mostrare dei totali di certe colonne.
-
14 Settembre 2012 alle 17:28 #78584
-
14 Settembre 2012 alle 17:53 #78585::
Marcello” post=77657Non credo di aver capito del tutto la risposta… Riusciresti ad abbozzarmi come si fa a definire il nuovo comando?
Altrimenti la domanda è sempre la stessa, non esiste un modo semplice per impostare la larghezza delle colonne??
Il primo consiglio che ti do è di non impostare le colonne a una certa larghezza uguale per tutte. In certi casi può anche andare, ma in generale no, perché rischi di lasciare ampi vuoti.
Se proprio vuoi, devi caricare il pacchetto array e usare le sue funzioni. Per esempio,
`\usepackage{array}
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}`
e così potrai dire
`\begin{tabular}{C{2cm}C{2cm}}`
Ognuno è libero di comporre tabelle brutte a piacere. 🙂 Dimenticavo! Non riquadrare le tue tabelle! Non stai usando un worksheet, ma stai componendo un testo.Ciao
Enrico
-
14 Settembre 2012 alle 17:54 #78586::
`% !TEX TS-program = pdflatex
% !TEX encoding = UTF-8 Unicode
\documentclass{article}
\usepackage{booktabs,array}\newcolumntype{C}[1]{>{\centering}p{#1}}
% oppure senza argomento
% \newcolumntype{C}{>{\centering}p{20mm}}\begin{document}
\begin{center}
\begin{tabular}{*5{C{20mm}}}
% oppure
%\begin{tabular}{*5C}
\toprule
\multicolumn5c{Nomi dei paperi}\\
\midrule
pippo & pluto & paperino & topolino & minnie \tabularnewline
paperone & paperoga & qui & quo & qua \tabularnewline
\bottomrule
\end{tabular}\end{center}
\end{document}`
Eccoti un esempio minimo ottenuto applicando quanto c’è scritto nelle pagine 2 e 3, e in particolare ne §1.1 della documentazione di array da leggere dando da terminale il comando texdoc array .
Non mi sembra tanto complicato.
L’esempio che ti ho fatto consente di avere la definizine della nuova colonna con la larghezza da specificare, oppure di averla già fissata nella definizione.
L’artificio di scrivere [tt]*{N}{descrittori}[/tt] (omettendo le graffe quando N o i descrittori sono fatti di un solo token) è assolutamente standard: vedi la stessa tabella 1 di array nella pagina 2, ma questa non è una delle descrizioni nuove aggiunte da array, ma è sempre stata presente; vedi anche guida tematica (qui sopra in Documentazione) LaTeX Handbook commentato.
-
15 Settembre 2012 alle 12:15 #78587
-
20 Aprile 2016 alle 13:59 #78588::
Salve ragazzi, ho un problema molto simile all’autore del topic.
In sostanza vorrei riprodurre la tabella in allegato, cioè dare una larghezza alle colonne e scriverci dentro con un testo centrato.[attachment=1592]IMG_6835.JPG[/attachment]
Mi sembrava semplice la cosa, ma non ci sto riuscendo. Ne ho provate così tante che neanche mi ricordo più quante, il risultato o non è soddisfacente perchè il testo si allinea a sinistra oppure mi danno errori. Ho provato con i codici che avete dato al ragazzo ma quando vado a dare il comando \newcolumntype per la prima riga tutto ok, alla seconda mi da errore.
Questo è il mio codice:
`
\documentclass[a4paper, 12pt, twoside, openright]{book}
\usepackage{booktabs,array}
\newcolumntype{C}[1]{>{\centering}p{#1}}\begin{document}
\begin{center}
\small
\begin{tabular} {*4{C{20mm}}}
\toprule
\multicolumn{4}{l}{\normalsize \textbf{Figure 1 bla bla bla} } \\
\toprule
A & B & f & D = C – A \\
Spot Rate & bla & bla & bla \\\end{tabular}
\end{center}\end{document}
`
Se riusciste a darmi una mano ve ne sarei grato 🙂
Attachments:
You must be logged in to view attached files. -
20 Aprile 2016 alle 17:24 #78589::
Ragazzi ho decisamente migliorato la cosa, al limite da poter essere quasi soddisfatto.
Ho caricato anche il pacchetto tabularx e ho copiato questo codice per il nuovo tipo di colonna e sembra andare.`
\usepackage{booktabs}
\usepackage{array}
\usepackage{siunitx} %needed for column of numbers in tabs
\sisetup{output-decimal-marker={.}}
\usepackage{tabularx}
\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}\begin{center}
\small
\begin{tabular} {C{0.2\textwidth}C{0.2\textwidth}C{0.2\textwidth}C{0.2\textwidth}}
\toprule
\multicolumn{4}{l}{\normalsize \textbf{Figure 1 bla bla bla} } \\
\toprule
A & B & C & D = C – A \\
Spot Rate & One-year & Implied Spot Rate & Implied Change \\
Today & Forward Rate & One Year Forward & in the Spot Rate \\
\midrule
$r_{1}$ \,\,\, 6.00\% & $f_{1,0}$ \,\,\, 6.00\% & $f_{2,1}$ \,\,\, 8.01\% & $ \Delta f_{1}$ \,\,\, 2.01\% \\$r_{2}$ \,\,\, 7.00 & $f_{2,1}$ \,\,\, 8.01. & $f_{3,1}$ \,\,\, 8.64 & $ \Delta f_{2}$ \,\,\, 1.64 \\
`E’ ancora molto rozzo…troppo però mi sta fumando il cervello considerando che sto usando Latex per la tesi da meno di una settimana

-
20 Aprile 2016 alle 19:14 #78590::
È molto utile che tu ti sia trovato una soluzione da solo; hi imparato un mucchio di cose.
Se posso permettermi una “critica”, una tabella non è una figura. La didascalia della tabella va eseguito con il comando \caption, all’interno di una ambiente flottante tabular; diventa utile usare le funzionalità del pacchetto caption, per poter eventualmente usare il comando \captionof se vuoi mantenere la tua tabella dentro l’ambiente center. Invece se lo metti in un ambiente table, allora il pacchetto caption ti permette di specificare che vuoi la didascalia sopra la tabella, e non sotto, come verrebbe di default.Se vuoi migliore ulteriormente la tabella puoi sempre analizzarla meglio; non si tratta di una tabella di 4 colonne, ma una tabella di 8 colonne raggruppate a due a due; le due colonne associate sotto la medesima intestazione sono larghe quanto occorre, ma quella di sinistra ha il contenuto allineato a destra, mentre quella di destra ha il contento allineato a sinistra.
Se hai letto L’Arte di scrivere con LaTeX (liberamente scaricabile dal link contenuto nella sezione Documentazione di questo sito) vedi esattamente come fare.
-
21 Aprile 2016 alle 7:41 #78591::
Giuste osservazioni. Per il caption ci avevo pensato e dopo aver ordinato un po’ penso proprio di adottare questa tecnica. Per il fatto delle 8 colonne, inizialmente avevo proprio impostato così ma mi si incasinava il codice. Non avevo pensato però a risolvere con l’allineamento per far venire vicino le scritte, grazie della dritta!Per la guida, ce l’ho sempre aperta e già la seguo passo passo!
-
-
AutoreRisposte
- Devi essere connesso per rispondere a questo topic.