我想知道您是否可以设置本地范围\textfloatsep
。我发现Google 群组上的一个旧帖子,指出你不能这样做。
现在情况有改变吗?所以我想做的只是将\textfloatsep
一个表设置为零,其余表不受影响。
编辑:我考虑过这个问题,有没有一种手动解决方案,可以在浮动之前将其设置为零,然后将其反转为原始值?
\documentclass[a4paper, 12pt, headsepline, headings=small,]{scrreprt}
\usepackage[onehalfspacing]{setspace}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{booktabs}
\usepackage[pangram]{blindtext}
\begin{document}
\chapter{Tables}
\Blindtext[1][1]
\begin{table}[!t]
\centering
\caption{Table caption}
\fbox{X-Table}
\end{table}
\Blindtext[1][1]
\Blindtext[1][1]
\begin{table}[!t]
\centering
\caption{Table caption}
\fbox{Y-Table}
\end{table}
\Blindtext[1][1]
\end{document}
答案1
您参考了\textfloatsep
与页面顶部/底部的浮动相关的内容(请参阅如何改变图形/表格和文本之间的间距?),但您的示例没有包含类似的东西。但是,在使用时应考虑此长度的设置。如果您手动将其设置为0pt
前一个数字,然后将其重置为默认值后图形,希望它会影响该特定图形,您可能看不到预期的结果。这是因为长度仅在页面上设置图形时使用,此时您可能已恢复默认长度...
解决这个问题的一种方法是(这在很大程度上取决于你的页面/浮动配置)将长度设置为(比如说)0pt
前浮点数,然后使用afterpage
包裹将其重置为默认值。以下是此视图:
\usepackage{afterpage}% http://ctan.org/pkg/afterpage
\newlength{\oldtextfloatsep}\setlength{\oldtextfloatsep}{\textfloatsep}
% ...
\setlength{\textfloatsep}{0pt}% Remove \textfloatsep
\begin{table}[tb]
% <your figure here>
\afterpage{\global\setlength{\textfloatsep}{\oldtextfloatsep}}% Reset \textfloatsep
\end{table}