想要与-connected 列tabular
组合并保持对齐。让我用以下 MWE 来解释:multirow
@
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{tabular}{lcr@{--}lc}
T & t & min & max & Column added for edit\\
\hline
A & a & 1 & 2\\[1ex]
\multirow{2}{*}{B} & b1 & \multirow{2}{*}{-2} & \multirow{2}{*}{1}\\
& b2 & & \\[1ex] % spurious --
\multirow{2}{*}{C} & c1 & \multicolumn{2}{c}{\multirow{2}{*}{-1--1000}}\\
& c2 & \multicolumn{2}{c}{}\\ % not aligned
\hline
\multicolumn{5}{c}{Edit: include convoluted vertical alignments}\\
\hline
\multirow{2}{*}{D} & d1 & \multicolumn{2}{c}{\multirow{2}{*}{-1--1000}} & $\delta_1$\\
& d2 & \multicolumn{2}{c}{} & \multirow{2}{*}{$\delta_2$}\\
& d3 & 3 & 20 & \\
\end{tabular}
\end{document}
正如您所看到的,我提出的两个想法(B
和C
)在上下文中保持对齐multirow
,无论是通过multirow
对齐两个列还是使用额外的列multicolumn
都不起作用。
我怎样才能得到我想要的对齐?
编辑:如果可能的话,我还希望能够保持“复杂”的垂直对齐,即保留所有行而不是在单个列中使用换行符来模拟行。
答案1
使用 ,您将获得更简单的代码makecell
:同名命令(以及其他一些命令)旨在允许在标准单元格中使用通用格式和换行符。我添加了booktabs
一些垂直填充以用于水平规则,并用连字符破折号替换了 endash 分隔符,将最后两列设置为数学模式(因此 -2 实际上是minus 2
,而不是dash 2
):
\documentclass{article}
\usepackage{multirow, makecell, booktabs}
\begin{document}
\begin{tabular}{lc >{$}r<{$}@{\,-\,}>{$}l<{$}}
T & t & \min & \max\\
\midrule
A & a & 1 & 2\\
\addlinespace
B & \makecell{b1\\b2} &-2 & 1\\
\addlinespace
C & \makecell{c1\\c2} & -1 & 1000 \\ %
\end{tabular}
\end{document}
答案2
不要使用\multirow
合并多行,而是tabular
将多行放在一个单元格中:
\documentclass{article}
\usepackage{multirow}
\begin{document}
\begin{tabular}{lcr@{--}l}
T & t & min & max\\
\hline
A & a & 1 & 2\\[1ex]
\multirow{2}{*}{B} & b1 & \multirow{2}{*}{-2} & \multirow{2}{*}{1}\\
& b2 & & \\[1ex] % spurious --
\multirow{2}{*}{C} & c1 & \multicolumn{2}{c}{\multirow{2}{*}{-1--1000}}\\ % not aligned
& c2 & \multicolumn{2}{c}{}\\[1ex]
D &
\begin{tabular}[c]{@{}c@{}}
d1\\d2
\end{tabular}
&
-5&500
\end{tabular}
\end{document}
编辑:重现您的复杂示例但具有正确的对齐方式:
\documentclass{article}
\usepackage{multirow}
\newcommand{\onecell}[2][c]{%
\begin{tabular}[c]{@{}#1@{}}%
#2%
\end{tabular}}
\begin{document}
\begin{tabular}{lcr@{--}lc}
T & t & min & max & column added for edit\\
\hline
A & a & 1 & 2\\[1ex]
B & \onecell{b1\\b2} & -2&1\\
\noalign{\vskip1ex}
C & \onecell{c1\\c2} & -1&1000\\
\hline
\multicolumn{5}{c}{Edit: include convoluted vertical alignments}\\
\hline
D & \onecell{d1\\d2} & -1&1000 & \onecell{$\delta_1$\\~}\\
& d3 & 3&20 &\multirow{-2}{*}{$\delta_2$}
\end{tabular}
\end{document}