我正在尝试排版一个数据表,并}
在右侧使用括号(即)来显示行的分类。类似于:
-----------------------
| Aardvark | Armenia | \
|----------|----------| |- things beginning with vowels
| Elephant | Ethiopia | /
|----------|----------|
| Platypus | Portugal | \
|----------|----------| |- things beginning with consonants
| Zebra | Zimbabwe | /
-----------------------
主要数据在tabular
环境中。有没有一种好的方法可以将括号像这样放在右侧,并与行正确对齐?
编辑:如果可能的话,我真的更喜欢一种不干扰数据表本身显示方式的方法。
答案1
您可以使用bigdelim
frommultirow
来实现这一点:
\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 节点)。