2009-12-15 99 views
17

这可能最好用一个例子来解释。我有下表,其中“A”单元格跨两行,“B”单元格跨两列。在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| 
|_ _ _ _| _ _ _ |_ _ _ _| 

我想仅将文本居中在“A”单元格中。我想离开列的其余部分左对齐。给:

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

我敢肯定,这一定很容易做,但我似乎无法指责它。

+0

感谢你想完成什么一个明显的例子,顺便! – DMI 2009-12-15 21:26:06

+0

谢谢,Dave :-)我想知道我是否可能会在第二张桌子上说明一点,但我觉得不能说得太清楚。 – Paul 2009-12-15 21:35:28

回答

13

认为你需要做的是用假\multicolumn:从this FAQ

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

启示。

+0

这给出:!错位\省略。 \ multispan - > \ omit \ @multispan。不确定这是什么意思:-S – Paul 2009-12-15 21:29:55

+0

尝试交换多行/多列的嵌套? (所以多列在外面)。对不起,我没有在这里安装LaTeX的工作! – DMI 2009-12-15 21:38:19

+0

天才,谢谢。像魅力一样工作:-) – Paul 2009-12-15 21:44:55

7

我碰到过类似的问题,但不得不使用\multirow{specified width}{}而不是\multirow{*}{}。在这种情况下,多列内嵌多行不起作用。

我找到了\multirow{specified width}{\centering text}来代替。

+0

如果您尝试将文本居中对齐到多行,而其他解决方案只对齐整个块,则此功能特别有效。谢谢:) – jevon 2011-05-25 04:22:41

+0

我认为你有错误的顺序参数。 nrows在宽度之前,对吗? – lindhe 2015-12-30 11:54:31

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

\hfil会自动计算单元的宽度,并插入一个半角空格

要插入全电池宽度的空间,这将右对齐的单电池,使用\hfill。 也有\vfil\vfill类似物。

0

即可能是有人

有用
\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}