Newsgroup: it.comp.software.tex
Titolo: centrare del testo ruotato in una multirow column

Ciao a tutti,
ho googlato un po' ma non ne riesco a venire a capo. Ho una tabella
piuttosto grossa con una colonna che si estende per diverse righe ed il
testo in questa colonna viene ruotato e fin qui ci riesco con questo
pezzo di codice:
       \begin{tabular}{|>{\bf}c|>{\centering\bf}m{3cm}|}
          \multirow{4}{*}{\centering\begin{turn}{90}Wong\end{turn}}
                  & finite, unbounded, discrete   \cr
                  & finite, unbounded, continuous \cr
                  & finite, unbounded, discrete   \cr
                  & finite, unbounded, discrete   \cr
       \end{tabular}
come potrete notare la scritta ruotata non è centrare rispetto alle tre
righe e non riesco a capire come fare a centrarla.
Uso booktabs, rotating e multirow.
Ogni aiuto sarà apprezzato, Grazie
Walter
-- 
Walter Cazzola, PhD - DICo, University of Milano           ICQ UIN: 66633601
email: cazzola (at) 
dico.unimi.it
 (or remove nospam. from the above address)
· · · ---------------------------- · · · ---------------------------- · · ·


- Il mio indirizzo e-mail valido è senza *net*. -


-- 


 Uso booktabs, rotating e multirow.
Non userei rotating, ma semplicemente \rotatebox[origin=c]{90}{Wong}.
Lo "strano" comportamento non dipende affatto dalla rotazione, avresti
lo stesso problema con \multirow{4}{*}{a}; il fatto è che \multirow non
riesce a calcolare l'altezza di quelle celle date con lo specificatore
"m". Il \centering non ha alcun effetto, visto che sei in una cella ad
allineamento al centro.
Ci sono vari argomenti opzionali a \multirow che servono appunto a
correggere il posizionamento.
Naturalmente la stessa tabella può essere composta senza usare 
multirow, ma inserendo una tabella dentro alla tabella; spesso è
più efficiente che fare le lunghe e tediose prove per sistemare
l'argomento di \multirow:
\begin{tabular}{>{\bfseries}cc}
\rotatebox[origin=c]{90}{Wong}&
\begin{tabular}{@{}>{\centering\arraybackslash\bfseries}m{3cm}@{}}
finite, unbounded, discrete   \\
finite, unbounded, continuous \\
finite, unbounded, discrete   \\
finite, unbounded, discrete   \\
\end{tabular}
\end{tabular}
Il trucco di \arraybackslash permette di usare \\ per terminare
la riga di tabella; meglio che usare \cr che non ha gli argomenti
opzionali di \\; \arraybackslash va usato quando si usa \centering,
\raggedright o \raggedleft nello specificatore dell'ultima colonna.
Non usare \bf, ma \bfseries. I comandi come \bf e \it sono obsoleti
e si raccomanda di non usarli più.
Ciao
Enrico

 e si raccomanda di non usarli pi .
dann. lo sapevo, ma continuavo a tentare di mettere \textbf ma il testo
nella colonna non "ubbidiva" al comando, ovviamente mi ero scordato di
\bfseries.
Grazie mille, prezioso come sempre


 uhm, c'è una qualche differenza?
Direi di sì: il comando \rotatebox è molto più flessibile, perché
permette di scegliere il centro di rotazione. Prova a vedere che
succede con
\begin{tabular}{*{3}{>{\bfseries}c}c}
\begin{turn}{90}Wong\end{turn}&
\rotatebox{90}{Wong}&
\rotatebox[origin=c]{90}{Wong}&
\begin{tabular}{@{}>{\centering\arraybackslash\bfseries}m{3cm}@{}}
finite, unbounded, discrete   \\
finite, unbounded, continuous \\
finite, unbounded, discrete   \\
finite, unbounded, discrete   \\
\end{tabular}
\end{tabular}
(caricando rotating e array, ovviamente). Le prime due colonne danno
lo stesso risultato, sbagliato.
Ciao
Enrico