table e allineamento all'interno delle celle

Cos'è il LaTeX e come usarlo al meglio.
Rispondi
vgsangiuliano
Messaggi: 12
Iscritto il: 22 giu 2010, 09:42

table e allineamento all'interno delle celle

Messaggio 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
Avatar utente
SkZ
Messaggi: 3333
Iscritto il: 03 ago 2006, 21:02
Località: Concepcion, Chile
Contatta:

Messaggio da SkZ »

\begin{longtable}{|c|c|c|r|r|}

p{} e' per testo giustificato

datti una letta ad un manuale
impara il [tex]~\LaTeX[/tex] e mettilo da par[tex]\TeX~[/tex]

Software is like sex: it's better when it's free (Linus T.)
membro: Club Nostalgici
Non essere egoista, dona anche tu! http://fpv.hacknight.org/a8.php
vgsangiuliano
Messaggi: 12
Iscritto il: 22 giu 2010, 09:42

Messaggio 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
Avatar utente
SkZ
Messaggi: 3333
Iscritto il: 03 ago 2006, 21:02
Località: Concepcion, Chile
Contatta:

Messaggio da SkZ »

puoi fare in modo di impostare la larghezza della prima cella e in automatico si propaga
impara il [tex]~\LaTeX[/tex] e mettilo da par[tex]\TeX~[/tex]

Software is like sex: it's better when it's free (Linus T.)
membro: Club Nostalgici
Non essere egoista, dona anche tu! http://fpv.hacknight.org/a8.php
vgsangiuliano
Messaggi: 12
Iscritto il: 22 giu 2010, 09:42

Messaggio 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.
Rispondi