2009-12-15 59 views
17

Điều này có lẽ được giải thích tốt nhất với một ví dụ. Tôi có bảng sau đây, trong đó ô "A" kéo dài hai hàng và ô "B" kéo dài hai cột.Căn giữa văn bản trong một ô Multirow ở 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| 
|_ _ _ _| _ _ _ |_ _ _ _| 

Tôi chỉ muốn căn giữa văn bản trong ô "A". Tôi muốn để phần còn lại của cột được căn trái. Giving:

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

Tôi chắc chắn điều này phải đơn giản để làm, nhưng dường như tôi không thể đặt ngón tay lên đó.

+0

Cảm ơn cho một ví dụ rõ ràng về những gì bạn muốn đạt được, bằng cách này! – DMI

+0

Cảm ơn, Dave :-) Tôi đã tự hỏi liệu tôi có thể nói rõ ràng một chút với bảng thứ hai, nhưng tôi cảm thấy người ta không thể làm cho mọi thứ quá rõ ràng. – Paul

Trả lời

13

tôi nghĩ bạn cần phải làm điều đó với một giả \multicolumn:

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

Inspiration từ this FAQ.

+0

Điều đó cho:! Đã bị bỏ qua \ bỏ qua. \ multispan -> \ omit \ @multispan. Bạn không chắc chắn điều đó có nghĩa là gì: -S – Paul

+0

Hãy thử hoán đổi tổ hợp của multirow/multicolumn? (vì vậy các cột đa tinh thể ở bên ngoài). Xin lỗi, tôi chưa cài đặt LaTeX hoạt động ở đây để chơi! – DMI

+0

Thiên tài, cảm ơn. Hoạt động như một nét duyên dáng :-) – Paul

7

Tôi gặp phải sự cố tương tự nhưng phải sử dụng \multirow{specified width}{} thay vì \multirow{*}{}. Nesting multirow bên trong một multicolumn không hoạt động trong trường hợp này.

Tôi đã tìm thấy \multirow{specified width}{\centering text} để làm việc thay thế.

+0

Điều này hoạt động đặc biệt tốt nếu bạn đang cố căn giữa văn bản trên nhiều hàng, trong khi giải pháp khác chỉ căn chỉnh toàn bộ khối. Cảm ơn :) – jevon

+0

Tôi nghĩ bạn có các đối số theo thứ tự sai. nrows là trước khi chiều rộng, phải không? – lindhe

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

\hfil sẽ tự động tính toán độ rộng của tế bào và chèn một nửa chiều rộng không gian

Để chèn một không gian tế bào toàn bộ chiều rộng, mà sẽ phải biện minh cho một tế bào duy nhất, sử dụng \hfill. Ngoài ra còn có \vfil\vfill các chất tương tự.

0

Đó là có thể có ích cho một ai đó

\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} 
Các vấn đề liên quan