使用 tabu 包对某些行禁用 \tabulinesep

使用 tabu 包对某些行禁用 \tabulinesep

\tabulinesep带有包的参数为tabu不同高度的表格提供了良好的填充。但是当与diagbox包一起使用时,填充会引起问题。

\documentclass{article}
\usepackage{amsmath,diagbox,tabu}
\begin{document}
tabulinesep
{\setlength{\tabulinesep}{3pt}
\begin{tabu}{|c|c|c|}
\hline
\diagbox{X}{Y} & Z & Z\\
\hline
$\dfrac12$ & $\dfrac34$ & $\dfrac56$ \\
\hline
$A$ & $B$ & $C$ \\
\hline
\end{tabu}}
%
extrarowsep
{\setlength{\extrarowsep}{3pt}
\begin{tabu}{|c|c|c|}
\hline
\diagbox{X}{Y} & Z & Z\\
\hline
$\dfrac12$ & $\dfrac34$ & $\dfrac56$ \\
\hline
$A$ & $B$ & $C$ \\
\hline
\end{tabu}}
\end{document}

我怎样才能\tabulinesep仅禁用表格第一行的填充?

正如您在上例中看到的,\extrarowsep没有提供所需的填充。因此,我想坚持\tabulinesep解决方案。

在此处输入图片描述

答案1

作为替代方案,我建议\addstackgap使用stackengine包,它只需要应用于超大行中最高的单元格。在这里我将其与 结合使用\extrarowsep,但根据 OP 寻求的外观,这不是必需的。

\documentclass{article}
\usepackage{amsmath,diagbox,tabu,stackengine}
\begin{document}
tabulinesep
{\setlength{\tabulinesep}{3pt}
\begin{tabu}{|c|c|c|}
\hline
\diagbox{X}{Y} & Z & Z\\
\hline
$\dfrac12$ & $\dfrac34$ & $\dfrac56$ \\
\hline
$A$ & $B$ & $C$ \\
\hline
\end{tabu}}
%
\Centerstack{addstackgap + extrarowsep}
{\setlength{\extrarowsep}{1pt}
\begin{tabu}{|c|c|c|}
\hline
\diagbox{X}{Y} & Z & Z\\
\hline
\addstackgap[4pt]{$\dfrac12$} & $\dfrac34$ & $\dfrac56$ \\
\hline
$A$ & $B$ & $C$ \\
\hline
\end{tabu}}
\end{document}

在此处输入图片描述

答案2

一种方法是放大\extrarowsep,例如放大到 8pt:

\setlength{\extrarowsep}{8pt}
\begin{tabu}{|c|c|c|}
\hline
\diagbox{X}{Y} & Z & Z\\
\hline
$\dfrac{1}{2}$ & $\dfrac{3}{4}$ & $\dfrac{5}{6}$ \\
\hline
$A$ & $B$ & $C$ \\
\hline
\end{tabu}

在这种情况下,所有行都更高,但看起来与右图所示的相似...... 编辑: 扩大行高(针对您的特定问题)的另一种方法是将规则放在一行单元格中:

\begin{tabu}{|c|c|c|}
\hline
\diagbox{X}{Y} & Z & Z\\
\hline
$\dfrac12$\rule[-2.4ex]{0pt}{6ex} & $\dfrac34$ & $\dfrac56$ \\
\hline
$A$ & $B$ & $C$ \\
\hline
\end{tabu}

当然,这不是通用的解决方案。

相关内容