管理文本、方程式和表格的间距

管理文本、方程式和表格的间距

我用它setspace来改变文本的间距。

\usepackage{setspace}
\setstretch{1.435}

可以通过改变方程中的间距来管理\arraystretch

@egreg 的方法这里

\usepackage{etoolbox}
\pretocmd{\array}{\renewcommand{\arraystretch}{0.69686}}{}{} % 1/1.435=0.69686

或@campa 的方法这里

\usepackage[nodisplayskipstretch]{setspace}
\setstretch{1.435}
\everydisplay=\expandafter{\the\everydisplay\setstretch{1.0}}

\arraystretch然而,无论哪种方式,表中的行间距都是信号间距,不能通过改变或中的值来改变\setstretch

我更愿意稍微增加表格中的行间距而不是信号间距。我该怎么做?

\documentclass{article}
\usepackage{lipsum} % just for this example
\usepackage{amsmath}
\usepackage{booktabs}
\usepackage{setspace}
\setstretch{1.435}

\usepackage{etoolbox}
\pretocmd{\array}{\renewcommand{\arraystretch}{1}}{}{} % increase a little for the row spacing in equations

\begin{document}

\lipsum*[1]

\begin{equation}
    X=\begin{cases}
        \frac{1}{2}, & \text{if $a=1$} \\
        \frac{3}{2} & \text{otherwise}
    \end{cases}
\end{equation}

\begin{table}[htbp]
    \centering
    \caption{Changing the row spacing in the table}
    \begin{tabular}{ c c c }
    \toprule
     cell1 & cell2 & cell3 \\
     \midrule
     cell4 & cell5 & cell6 \\  
     cell7 & cell8 & cell9 \\
     \bottomrule
    \end{tabular}
\end{table}

\end{document}

在此处输入图片描述

答案1

对于多行方程的间距,可以使用 的spreadlines环境mathtools。它不适用于普通cases环境,但您可以使用 引入的此环境的变体mathtools

对于表格,您可以使用cellspace,它定义了以字母为前缀的说明符的列中单元格顶部和底部的最小垂直间距S (或者C如果您加载siunitx)。最后,我建议加载caption包,它使您能够设置标题和浮动之间的跳过。

下面是一个夸张的示例代码:

\documentclass{article}
\usepackage{lipsum} % just for this example
\usepackage{mathtools, empheq, nccmath}
\usepackage{booktabs, caption}
\captionsetup{skip=20pt}
\usepackage[math]{cellspace}
\renewcommand{\cellspacetoplimit}{10pt}
\renewcommand{\cellspacebottomlimit}{10pt}

\usepackage{etoolbox}
\BeforeBeginEnvironment{equation}{\begin{spreadlines}{20pt}}%{\spreadlines{20pt}}%
\AfterEndEnvironment{equation}{\end{spreadlines}}
\BeforeBeginEnvironment{empheq}{\begin{spreadlines}{20pt}}%{\spreadlines{20pt}}%
\AfterEndEnvironment{empheq}{\end{spreadlines}}

\usepackage{setspace}
\setstretch{1.435}
\pretocmd{\array}{\renewcommand{\arraystretch}{1}}{}{} % increase a little for the row spacing in equations

\begin{document}

\lipsum*[1]
\begin{equation}
    X=\begin{cases*}
        \mfrac{1}{2}, & \text{if $a=1$} \\
        \mfrac{3}{2} & \text{otherwise}
    \end{cases*}
\end{equation}

 \begin{empheq}[left ={ X = \empheqlbrace}]{alignat*=2}
     & \mfrac{1}{2}, &\quad & \text{if $a=1$} \\
      & \mfrac{3}{2} & & \text{otherwise}
\end{empheq}

\begin{table}[htbp]
    \centering
    \caption{Changing the row spacing in the table}
    \begin{tabular}{ Sc c c }
    \toprule
     cell1 & cell2 & cell3 \\
     \midrule
     cell4 & cell5 & cell6 \\
     cell7 & cell8 & cell9 \\
     \bottomrule
    \end{tabular}
\end{table}

\end{document} 

在此处输入图片描述

相关内容