将多行与 @ 连接的列组合在一起并保持对齐

将多行与 @ 连接的列组合在一起并保持对齐

想要与-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}

正如您所看到的,我提出的两个想法(BC)在上下文中保持对齐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}

在此处输入图片描述

相关内容