2009-12-15 92 views
17

Esto probablemente se explica mejor con un ejemplo. Tengo la siguiente tabla, donde la celda "A" ocupa dos filas, y la celda "B" abarca dos columnas.Centrado de texto dentro de una celda Multirow en 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| 
|_ _ _ _| _ _ _ |_ _ _ _| 

Me gustaría centrar solo el texto en la celda "A". Me gustaría dejar el resto de la columna alineado a la izquierda. Dando:

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

Estoy seguro que esto debe ser fácil de hacer, pero me parece que no puede poner mi dedo en la llaga.

+0

Gracias por un claro ejemplo de lo que quería lograr, por cierto! – DMI

+0

Gracias, Dave :-) Me preguntaba si podría estar diciendo lo obvio un poco con la segunda mesa, pero sentí que uno no puede dejar las cosas muy claras. – Paul

Respuesta

13

I piensan que tiene que hacer eso con una falsa \multicolumn:

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

Inspiración de this FAQ.

+0

Eso da:! Misplaced \ omit. \ multispan -> \ omit \ @multispan. No estoy seguro de lo que eso significa: -S – Paul

+0

¿Intenta intercambiar el anidamiento de multirradio/multicolumna? (por lo que la multicolumna está en el exterior). Lo siento, no tengo una instalación de LaTeX que funcione aquí para jugar! – DMI

+0

Genio, gracias. Funciona como un encanto :-) – Paul

7

Me encontré con un problema similar, pero tuve que usar \multirow{specified width}{} en lugar de \multirow{*}{}. Anidar multirres dentro de una columna múltiple no funciona en este caso.

Encontré \multirow{specified width}{\centering text} para que funcione.

+0

Esto funciona especialmente bien si está intentando alinear el centro de texto en varias filas, mientras que la otra solución solo alinea todo el bloque. Gracias :) – jevon

+0

Creo que tienes los argumentos en el orden incorrecto. nrows es antes del ancho, ¿verdad? – lindhe

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

\hfil calculará automáticamente el ancho de la celda e inserte un medio de anchura de espacio

Para insertar un espacio de células de ancho total, que se haga justificar una sola célula, utilizar \hfill. También hay \vfil y \vfill análogos.

0

Eso es puedan ser de utilidad para alguien

\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} 
Cuestiones relacionadas