使用“setspace”和“etoolbox”调整表格间距

使用“setspace”和“etoolbox”调整表格间距

我使用 set Spacing 包,为了避免表格过于紧凑,我还使用 etoolbox 包来定义表格环境。但是,在一个特定的表中,1.5 倍的间距太大了,我想减小它。我尝试了 groups 和 array stretch,但无法真正弄清楚如何覆盖单个表的间距?任何建议都值得赞赏。

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{setspace}
\usepackage{etoolbox}

\AtBeginEnvironment{tabular}{\onehalfspacing}

\begin{document}

\section{Introduction}

\begin{table}[h]
    \begin{tabular}{c|c}
       aa  & bb \\
       cc  & dd
    \end{tabular}
\end{table}


\end{document}

答案1

我不会用setspace它。重新定义 的值会更方便\arraystretch,或者如果您希望单元格看起来更垂直居中,请加载cellspace包,该包定义列中单元格顶部和底部的最小垂直间距,并使用以字母为前缀的说明符S(或者C如果您还加载siunitx,或任何您喜欢的字母column= )。

演示,添加水平线以帮助更好地可视化:

\documentclass{article}
\usepackage{cellspace}
\setlength{\cellspacetoplimit}{2pt}
\setlength{\cellspacebottomlimit}{2pt}
\usepackage{setspace}

\begin{document}

\section{Introduction}

\begin{table}[h]
{\onehalfspacing
    \begin{tabular}{c|c}
\hline
       aa & bb \\
\hline
       cc & dd \\
\hline
    \end{tabular}}
\qquad
{ \renewcommand{\arraystretch}{1.1}
\begin{tabular}{c|c}
\hline
       aa & bb \\
\hline
       cc & dd \\
\hline
    \end{tabular}}
\qquad
    \begin{tabular}{Sc|Sc}
\hline
       aa & bb \\
\hline
       cc & dd \\
\hline
    \end{tabular}
\end{table}

\end{document} 

在此处输入图片描述

答案2

使用当前的乳胶,您可以添加\singlespacing钩子以供下次使用:

\documentclass{article}
\usepackage{setspace}
\usepackage{etoolbox}

\AtBeginEnvironment{tabular}{\onehalfspacing}

\begin{document}

\section{Introduction}

\begin{table}
    \begin{tabular}{c|c}
       aa  & bb \\
       cc  & dd
    \end{tabular}
\end{table}

\begin{table}
\AddToHookNext{env/tabular/begin}{\singlespacing}
    \begin{tabular}{c|c}
       aa  & bb \\
       cc  & dd
    \end{tabular}
\end{table}

\begin{table}
    \begin{tabular}{c|c}
       aa  & bb \\
       cc  & dd
    \end{tabular}
\end{table}


\end{document}

附注:不要到处都使用 [h]。如果你运气不好,你的表格就放不下,然后它们就会堆积在文档末尾。参见如何影响 LaTeX 中图形和表格等浮动环境的位置?

相关内容