修改表中单行的 arraystretch

修改表中单行的 arraystretch

我需要在表格中显示分数,并且需要设置

\renewcommand{\arraystretch}{2.3}

问题是并非所有行都包含分数,在这种情况下,下方和上方的空白太大。我可以用类似 之类的东西手动调整它\\[-2ex]。这适用于中间情况,虽然有点不方便,但我不知道如何减少绝对顶部空间。

就像是

\vspace{-2ex}

没有效果。

最好的办法是能够更改单个表行的 arraystretch,但之后该命令无效\begin{tabular}。我该如何解决这个问题?

enter image description here

平均能量损失

\documentclass{article}

\usepackage{amsmath}
\usepackage{booktabs}

\begin{document}

\begin{table}
    \renewcommand{\arraystretch}{2.3}

    \begin{tabular}{@{}c|l@{}}
            \bfseries $R_x$ & Symbol\\
            \hline\hline
            $\dfrac{a}{b}$ & $ \dfrac{A}{B} $\\
            $\dfrac{a}{b}$ & $ \dfrac{A}{B} $\\
            $\dfrac{a}{b}$ & $ \dfrac{A}{B} $\\
            \hline
    \end{tabular}
\end{table}

\end{document}

使用 siunitx 的 MWE

\documentclass{article}

\usepackage{amsmath}
\usepackage{booktabs}
%\usepackage{siunitx}
\usepackage{wrapfig}

\usepackage{cellspace}
\setlength\cellspacetoplimit{4pt}
\setlength\cellspacebottomlimit{4pt}

\begin{document}

\begin{wrapfigure}[14]{R}{8.5cm}
    \renewcommand{\arraystretch}{2.3}

    \begin{tabular}{@{}Sc|Sl@{}}
            \bfseries $R_x$ & Symbol\\
            \hline\hline
            $\dfrac{a}{b}$ & $ \dfrac{A}{B} $\\
            some text & some other text \\
            $\dfrac{a}{b}$ & $ \dfrac{A}{B} $\\
            $\dfrac{a}{b}$ & $ \dfrac{A}{B} $\\
            \hline
    \end{tabular}
\end{wrapfigure}

\end{document}

答案1

最好的解决方案是使用cellspace包:它定义了一个可调整的最小单元格周围的垂直填充。为此,您必须在列说明符前加上字母前缀S(或者,C如果您加载siunitx)。

使用\arraystretch,有两个缺点:首先,单元格内容不再垂直居中;其次,您必须通过反复试验来确定拉伸值——对内容的任何修改都可能导致新值,如下所示,其中我修改了一个分数,保留了您给出的值:

\documentclass{article}

\usepackage{amsmath}
\usepackage{booktabs, cellspace, hhline}
\setlength\cellspacetoplimit{4pt}
\setlength\cellspacebottomlimit{4pt}

\begin{document}

\begin{table}
  \renewcommand{\arraystretch}{2.3}
  \begin{tabular}{@{}c|l@{}}
    \bfseries $R_x$ & Symbol \\
    \hline\hline
    $\dfrac{a}{b}$ & $ \dfrac{A}{B} $ \\
    \hline
    $\dfrac{a}{b}$ & $ \dfrac{A}{B + \cfrac{C}{D}} $ \\
    \hline
    $\dfrac{a}{b}$ & $ \dfrac{A}{B} $ \\
    \hline
  \end{tabular}
\hskip2cm
  \begin{tabular}{@{}Sc|Sl@{}}
    \bfseries $R_x$ & Symbol \\
    \hline\hline
    $\dfrac{a}{b}$ & $ \dfrac{A}{B} $ \\
    \hline
    $\dfrac{a}{b}$ & $ \dfrac{A}{B + \cfrac{C}{D}} $ \\
    \hline
    $\dfrac{a}{b}$ & $ \dfrac{A}{B} $ \\
    \hline
  \end{tabular}
\end{table}
\end{document} 

rendered document

答案2

cellspace包类似的结果,正如 Bernard 所建议的,您可以使用makecell包获得:

enter image description here

\documentclass{article}
\usepackage{amsmath}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{wrapfig}

\usepackage{makecell}% <-- for gaped cells

\begin{document}

\begin{wrapfigure}[14]{R}{8.5cm}
\setcellgapes{3pt}
\makegapedcells
    \begin{tabular}{@{}>{$\displaystyle}c<{$}|>{$\displaystyle}l<{$}@{}}
R_x                 &   \text{Symbol}           \\
    \hline\hline
\frac{a}{b}         &   \frac{A}{B}             \\
    \hline
\text{some text}    &   \text{some other text}  \\
    \hline
\frac{a}{b}         &   \frac{A}{B}             \\
    \hline
\frac{a}{b}         &   \frac{A}{B}             \\
    \hline
    \end{tabular}
\end{wrapfigure}
\end{document}

笔记: 也不\makegapedcells是在所有情况下都有效。例如,它阻止使用\colortbl[table]{xcolor}包对行/列进行着色。

答案3

扩展nicematrix为其环境(、、等)提供了键{NiceTabular}和,其名称受包的参数和启发。还有设置和的键。{NiceArray}{pNiceMatrix}cell-space-top-limitcell-space-bottom-limit\cellspacetoplimit\cellspacebottomlimitcellspacecell-space-limitscell-space-top-limitcell-space-bottom-limit

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\NiceMatrixOptions{cell-space-limits=4pt}

\begin{table}
  \begin{NiceTabular}{@{}c|l@{}}
    \RowStyle[bold]{}
    $R_x$ & Symbol \\
    \hline\hline
    $\dfrac{a}{b}$ & $ \dfrac{A}{B} $ \\
    \hline
    $\dfrac{a}{b}$ & $ \dfrac{A}{B + \cfrac{C}{D}} $ \\
    \hline
    $\dfrac{a}{b}$ & $ \dfrac{A}{B} $ \\
    \hline
  \end{NiceTabular}
\end{table}

\end{document} 

Output of the above code

需要注意的是,这些参数也适用于类型的列Ssiunitx而包 cellspace不能对此类列起作用S

相关内容