忽略 \cases 中的 \extrarowheight

忽略 \cases 中的 \extrarowheight

我正在使用\extrarowheight(与 结合使用booktabs)来使论文中的表格更具可读性。但是,这也影响了环境的布局cases,现在看起来很奇怪;在下面的示例中,X现在 的位置太靠后了。

\documentclass{article}

\usepackage{amsmath}
\usepackage{tabularx}
\usepackage{booktabs}

\setlength{\extrarowheight}{4pt}
\setlength{\belowrulesep}{0pt}

\begin{document}
    \[
    a = \begin{cases}
            X \\
            Y
        \end{cases}
    \]

    \begin{tabular}{llll}\toprule
    $a^b$ & $a_b$ & $a$ & $b$ \\ \midrule
    a & b & c & d \\
    \bottomrule 
    \end{tabular}
\end{document}

在此处输入图片描述

有没有什么办法可以忽略环境\extrarowheight中的cases

我想一定有某种\renewcommand魔法可以做到这一点,但我不知道这是否是正确的方法,更不用说我应该从哪里开始......我也意识到我可以在之前重置\extrarowheight0然后\cases再重新设置,但我的 DRY 警报告诉我不要这样做;)

答案1

这是一个重新定义的答案tabular

\documentclass{article}
\usepackage{amsmath}
\usepackage{tabularx}
\usepackage{booktabs}
\newenvironment{airytabular}{\setlength{\extrarowheight}{4pt}\setlength{\belowrulesep}{0pt}%
  \begin{tabular}}{\end{tabular}}
\begin{document}
\[
a = \begin{cases}
        X \\
        Y
    \end{cases}
\]

\begin{airytabular}{llll}\toprule
$a^b$ & $a_b$ & $a$ & $b$ \\ \midrule
a & b & c & d \\
\bottomrule 
\end{airytabular}
\end{document}

在此处输入图片描述

像这样设置一个新环境通常是最好的方法,因为其他包,甚至标准类文件可能会使用tabular正常行为。但是如果你真的想要重新定义它,你可以,但你必须捕捉之前的行为,以避免回归到循环中。这里有一种方法可以做到这一点。

\let\ltxtab\tabular
\let\ltxendtab\endtabular
\renewenvironment{tabular}{\setlength{\extrarowheight}{4pt}\setlength{\belowrulesep}{0pt}%
\ltxtab}{\ltxendtab}

通过这种重新定义,您的tabular环境将具有改变的空间,但是其他任何事物都不会受到影响,正如您所希望的那样。

这个问题已经出现顺便一提。

答案2

您只能使用 在环境内定义\extrarowheight。它\belowrulesep提供了一个钩子。您必须在序言中添加以下几行:tabularetoolbox\AtBeginEnvironment

\AtBeginEnvironment{tabular}{%
\setlength{\extrarowheight}{4pt}
\setlength{\belowrulesep}{0pt}
}%

沒有任何事。

完整代码:

\documentclass{article}

\usepackage{amsmath}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{etoolbox}
\AtBeginEnvironment{tabular}{%
    \setlength{\extrarowheight}{4pt}
    \setlength{\belowrulesep}{0pt}
    }%

\begin{document}
    \[
    a = \begin{cases}
            X \\ 
            Y
        \end{cases}
    \]

    \begin{tabular}{llll}\toprule
    $a^b$ & $a_b$ & $a$ & $b$ \\ \midrule
    a & b & c & d \\
    \bottomrule
    \end{tabular}
\end{document}

在此处输入图片描述

相关内容