我使用 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 中图形和表格等浮动环境的位置?