将较大的垂直分隔符(括号)与表格的行对齐?

将较大的垂直分隔符(括号)与表格的行对齐?

我正在尝试排版一个数据表,并}在右侧使用括号(即)来显示行的分类。类似于:

-----------------------
| Aardvark | Armenia  |  \
|----------|----------|  |- things beginning with vowels 
| Elephant | Ethiopia |  /
|----------|----------|
| Platypus | Portugal |  \
|----------|----------|  |- things beginning with consonants
| Zebra    | Zimbabwe |  /
-----------------------

主要数据在tabular环境中。有没有一种好的方法可以将括号像这样放在右侧,并与行正确对齐?

编辑:如果可能的话,我真的更喜欢一种不干扰数据表本身显示方式的方法。

答案1

您可以使用bigdelimfrommultirow来实现这一点:

\documentclass{minimal}
\usepackage{multirow,bigdelim}
\begin{document}
\begin{tabular}{lll}
Aardvark & Armenia & \rdelim\}{2}{3mm}[things beginning with vowels] \\
Elephant & Ethiopia \\
Platypus & Portugal & \rdelim\}{2}{3mm}[things beginning with consonants] \\
Zebra  & Zimbabwe \\
text  & text & \rdelim\}{3}{3mm}[things beginning and ending with t] \\
text  & text \\
text  & text \\
\end{tabular} 
\end{document}

答案2

一个可能的解决方案是tabular嵌套array环境;在下面的例子中,我使用了tabular具有两列的;第一列将包含tabular数据,第二列将包含array可扩展括号和用于行分类的文本。

我还定义了一个命令\MyLBrace(带有两个参数)来排版括号;第一个参数控制括号的高度,第二个参数包含与特定类别相对应的文本;由于属于同一类别的行数是可变的,因此需要进行一些手动计算来调整括号的高度。

举个小例子:

\documentclass{book}
\usepackage{amsmath}

\newcommand\MyLBrace[2]{%
  \left.\rule{0pt}{#1}\right\}\text{#2}}

\begin{document}

\noindent\begin{tabular}{c@{}l}
  \begin{tabular}{ll@{}}
    Aardvark & Armenia \\
    Elephant & Ethiopia \\
    Platypus & Portugal \\
    Zebra  & Zimbabwe \\
    text  & text \\
    text  & text \\
    text  & text \\
  \end{tabular} 
  & 
  $\begin{array}{l}
    \MyLBrace{3ex}{things beginning with vowels} \\ 
    \MyLBrace{3ex}{things beginning with consonants} \\
    \MyLBrace{4.4ex}{things beginning and ending with t} 
  \end{array}$
\end{tabular}

\end{document}

答案3

\documentclass{article}
\usepackage{amsmath}

\begin{document}

\begin{tabular}{@{}l}
  $\left.
  \begin{tabular}{@{}*2{p{1.5cm}}}
    Aardvark & Armenia \\
    Elephant & Ethiopia 
  \end{tabular}
  \right\}\text{things beginning with vowels}$\\[\bigskipamount]
%
  $\left.
  \begin{tabular}{@{}*2{p{1.5cm}}}
    Platypus & Portugal \\
    Zebra  & Zimbabwe
  \end{tabular}
  \right\}\text{things beginning with consonants}$
\end{tabular}

\end{document}

在此处输入图片描述

答案4

以下是使用{NiceTabular}ofnicematrix及其内置命令的解决方案\SubMatrix\CodeAfter

\documentclass{article}
\usepackage{nicematrix}

\begin{document}
\begin{NiceTabular}{lll}
Aardvark & Armenia & \Block{2-1}{things beginning with vowels} \\
Elephant & Ethiopia \\
Platypus & Portugal & \Block{2-1}{things beginning with consonants} \\
Zebra  & Zimbabwe \\
\CodeAfter
  \SubMatrix{.}{1-1}{2-2}{\}}
  \SubMatrix{.}{3-1}{4-2}{\}}
\end{NiceTabular} 
\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

相关内容