2009-12-15 31 views
17

Questo è probabilmente spiegato meglio con un esempio. Ho la seguente tabella, in cui la cella "A" si estende su due righe e la cella "B" si estende su due colonne.Centratura del testo all'interno di una cella a più righe in LaTex

\begin{table}[htdp] 
\begin{tabular}{l|r|r} 
\multirow{2}{*}{A} & \multicolumn{2}{c}{B} \\ 
    & B1 & B2 \\ 
a & b1 & b2 \\ 
a & b1 & b2 \\ 
\end{tabular} 
\end{table} 
_ _ _ _ _ _ _ _ _ _ _ _ 
|A  |_ _ _ _B_ _ _ _| 
|_ _ _ _|_ _B1_ |_ _B2_ | 
|a  |  b1|  b2| 
|a  |  b1|  b2| 
|a  |  b1|  b2| 
|_ _ _ _| _ _ _ |_ _ _ _| 

Vorrei centrare il testo solo nella cella "A". Vorrei lasciare il resto della colonna allineato a sinistra. Dare:

_ _ _ _ _ _ _ _ _ _ _ _ 
| A |_ _ _ _B_ _ _ _| 
|_ _ _ _|_ _B1_ |_ _B2_ | 
|a  |  b1|  b2| 
|a  |  b1|  b2| 
|a  |  b1|  b2| 
|_ _ _ _| _ _ _ |_ _ _ _| 

Sono sicuro che questo deve essere semplice da fare, ma io non riesco a mettere il dito su di esso.

+0

Grazie per un chiaro esempio di ciò che si voleva realizzare, tra l'altro! – DMI

+0

Grazie, Dave :-) Mi stavo chiedendo se potevo affermare l'ovvio un po 'con il secondo tavolo, ma sentivo che non si può rendere le cose troppo chiare. – Paul

risposta

13

io penso è necessario farlo con un falso \multicolumn:

\multicolumn{1}{c}{\multirow{2}{*}{A}} & \multicolumn{2}{c}B} \\ 

ispirazione da this FAQ.

+0

Ciò dà:! In errore \ ometto. \ multispan -> \ omit \ @multispan. Non sei sicuro di cosa significhi: -S – Paul

+0

Prova a scambiare il nidificazione del multirow/multicolumn? (quindi la colonna è all'esterno). Scusa, non ho installato LaTeX qui per giocare! – DMI

+0

Genio, grazie. Funziona come un fascino :-) – Paul

7

Mi sono imbattuto in un problema simile, ma ho dovuto utilizzare \multirow{specified width}{} anziché \multirow{*}{}. Nesting multirow all'interno di una colonna multicolore non funziona in questo caso.

Ho trovato il \multirow{specified width}{\centering text} al posto di lavoro.

+0

Questo funziona particolarmente bene se si sta tentando di allineare il testo su più righe, mentre l'altra soluzione allinea solo l'intero blocco. Grazie :) – jevon

+0

Penso che tu abbia gli argomenti nell'ordine sbagliato. i nrows sono prima della larghezza, giusto? – lindhe

2
\multirow{2}{*}{\hfil A} 

\hfil calcolerà automaticamente la larghezza della cella e inserire una mezza larghezza di spazio

Per inserire uno spazio pieno di cellule larghezza, che sarà destro giustificare una singola cella, utilizzare \hfill. Ci sono anche gli analoghi \vfil e \vfill.

0

Cioè potrebbe essere utile per qualcuno

\begin{tabular}{|c c | c|c|c|} 
\hline 
\multicolumn{2}{|c}{\multirow{2}{*}{Modulation}} & \multicolumn{3}{|c|}{M} \\ 
\cline{3-5} 
& & 2 & 4 & 8 \\ 
\hline 
    \multirow{3}*{\hfil SNR=$\begin{cases} \\ \\ \end{cases}$} & STMA & xx dB & xx dB & xx dB\\ 
     & QTMA & xx dB & xx dB & xx dB \\ 
     & POSTMA & xx dB & xx dB & xx dB\\ 
\hline 
\end{tabular} 
Problemi correlati