![bigdelim 不尊重 arraystretch](https://linux22.com/image/351277/bigdelim%20%E4%B8%8D%E5%B0%8A%E9%87%8D%20arraystretch.png)
我使用 bigdelim 在表格列的右侧创建一个花括号。到目前为止,这种方法有效。但是,当我将 arraystretch 设置为非 1 值时,花括号的垂直范围不遵循表格的垂直缩放:
\documentclass{article}
\usepackage[active]{srcltx}
\usepackage{tabulary}
\usepackage{booktabs}
\usepackage{bigdelim}
\usepackage{multirow}
\usepackage[onehalfspacing]{setspace}
\begin{document}
{\renewcommand{\arraystretch}{1.0}%
\begin{tabulary}{.9\textwidth}{LLL}
\hline
A & \rdelim\}{4}{3mm} & \multirow{4}{*}{X} \\
B & & \\
C & & \\
D & & \\
E & & Y \\
\hline
\end{tabulary}
}
Curly brace too long with arraystretch \textless{} 1
{\renewcommand{\arraystretch}{0.8}%
\begin{tabulary}{.9\textwidth}{LLL}
\hline
A & \rdelim\}{4}{3mm} & \multirow{4}{*}{X} \\
B & & \\
C & & \\
D & & \\
E & & Y \\
\hline
\end{tabulary}
}
\end{document}
以下是我得到的结果:
我该如何解决这个问题?由于空间原因,我需要将表格中的行距设置得更小一些。
答案1
\strut
虽然可以尝试通过在后添加来增加第一行的行高A
,但更简单的方法是在后插入一个小的空白行,如第二个示例中\hline
所示。\hline\\[-9pt]
\documentclass{article}
\usepackage[active]{srcltx}
\usepackage{tabulary}
\usepackage{booktabs}
\usepackage{bigdelim}
\usepackage{multirow}
\usepackage[onehalfspacing]{setspace}
\begin{document}
{\renewcommand{\arraystretch}{1.0}%
\begin{tabulary}{.9\textwidth}{LLL}
\hline\\[-12pt]
A & \rdelim\}{4}{3mm} & \multirow{4}{*}{X} \\
B & & \\
C & & \\
D & & \\
E & & Y \\
\hline
\end{tabulary}
}
Curly brace too long with arraystretch \textless{} 1
{\renewcommand{\arraystretch}{0.8}%
\begin{tabulary}{.9\textwidth}{LLL}
\hline\\[-9pt]
A & \rdelim\}{4}{3mm} & \multirow{4}{*}{X} \\
B & & \\
C & & \\
D & & \\
E & & Y \\
\hline
\end{tabulary}
}
\end{document}
答案2
我使用间距环境而不是 arraystretch 获得了所需的缩放比例:
\begin{spacing}{.8}
\begin{tabulary}{.9\textwidth}{LLL}
\hline
A & \rdelim\}{4}{3mm} & \multirow{4}{*}{X} \\
B & & \\
C & & \\
D & & \\
E & & Y \\
\hline
\end{tabulary}
\end{spacing}