web-dev-qa-db-ja.com

LaTexの複数行セル内のテキストの中央揃え

これは、おそらく例で最もよく説明されます。 「A」セルが2つの行にまたがる「B」セルが2つの列にまたがる次の表があります。

\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|
|_ _ _ _| _ _ _ |_ _ _ _|

これは簡単なことだと思いますが、指をかけるようには見えません。

20
Paul

私は考えるあなたは偽物\multicolumn

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

this FAQ からのインスピレーション。

16
DMI

同様の問題に遭遇しましたが、\multirow{specified width}{}ではなく\multirow{*}{}を使用する必要がありました。この場合、複数列内の複数行のネストは機能しません。

代わりに\multirow{specified width}{\centering text}が機能することがわかりました。

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

\hfilはセルの幅を自動的に計算し、半角スペースを挿入します

単一のセルを右揃えにする完全なセル幅のスペースを挿入するには、\hfillを使用します。 \vfil\vfillの類似体もあります。

3
user1189728

それは誰かのために役立つかもしれません

\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}
0