Pagina 1 di 1

table e allineamento all'interno delle celle

Inviato: 07 lug 2010, 15:29
da vgsangiuliano
Ciao a tutti sto utilizzando il seguente codice

Codice: Seleziona tutto

\begin{longtable}{|p{2cm}|p{2cm}|p{2cm}|p{4cm}|p{3cm}|} 
\caption{11$^{th}$ Generation International Geomagnetic Reference Field Schmidt semi-normalised spherical harmonic coefficients, degree n=1,13\\Units nanoTesla for IGRF and definitive DGRF main-field models (degree n=1,8 nanoTesla/year for secular variation (SV))}
\label{tab:longtable} \\
\toprule
\multicolumn{1}{c}{g/h} & \multicolumn{1}{c}{degree n} & \multicolumn{1}{c}{order m} & \multicolumn{1}{c}{IGRF 2010} & \multicolumn{1}{c}{SV 2010--2015}\\
\midrule
\endfirsthead
\multicolumn{5}{l}{\footnotesize\itshape\tablename~\thetable: continua dalla pagina precedente} \\
\toprule
\multicolumn{1}{c}{g/h} & \multicolumn{1}{c}{degree n} & \multicolumn{1}{c}{order m} & \multicolumn{1}{c}{IGRF 2010} & \multicolumn{1}{c}{SV 2010--2015}\\
\midrule
\endhead
\midrule
\multicolumn{5}{r}{\footnotesize\itshape\tablename~\thetable: continua nella prossima pagina} \\
\endfoot
\bottomrule
\multicolumn{5}{r}{\footnotesize\itshape\tablename~\thetable: si conclude dalla pagina precedente} \\
\endlastfoot
\hline
.
.
.
\end{longtable}
Ottengo però in ciascuna colonna il testo allineato a sinistra. Vorrei allineare al centro le prime 3 colonne che contengono del testo ed a destra le ultime due che contengono numeri.
Come è possibile farlo per ciascuna colonna senza dover intevenire con \centering et similia su ogni singolo elemento?

Grazie
Mirko

Inviato: 07 lug 2010, 19:42
da SkZ
\begin{longtable}{|c|c|c|r|r|}

p{} e' per testo giustificato

datti una letta ad un manuale

Inviato: 07 lug 2010, 21:22
da vgsangiuliano
Hai ragione, ma il mio scopo è ottenere l'allineamento voluto ed anche la larghezza delle colonne non uguale, ma come ho impostato. Nei manuali non ho trovato nulla che consenta di impostare una larghezza personalizzata per ciascuna colonna e contemporaneamente settare l'allineamento di tutta la colonna. Sicuramente è possibile intervenire con \centering in ogni cella della tabella, ma essendo una tabella molto lunga speravo esistesse un modo per allineare tutta la colonna.
Grazie
Mirko

Inviato: 07 lug 2010, 21:55
da SkZ
puoi fare in modo di impostare la larghezza della prima cella e in automatico si propaga

Inviato: 08 lug 2010, 10:34
da vgsangiuliano
Grazie all'aiuto di SkZ ho trovato la soluzione che qui riporto per chi ne avesse bisogno:

Ho caricato il pacchetto array con :

Codice: Seleziona tutto

\usepackage{array}
nel preambolo dopo il caricamento di tale pacchetto ho utilizzato i comandi:

Codice: Seleziona tutto

\newcolumntype{x}[1]{>{\raggedleft\hspace{0pt}}p{#1}}
\newcolumntype{y}[1]{>{\centering\hspace{0pt}}p{#1}}
ed ora la definizione della tabella è:

Codice: Seleziona tutto

\begin{longtable}{|y{2cm}|y{2cm}|y{2cm}|x{4cm}|x{3cm}|} 
così le prime tre colonne sono centrate e di larghezza 2 cm, mentre le ultime due sono allineate a destra con le dimensioni specificate.

Grazie.
Mirko.