根据浮动位置有条件地 \captionsetup

根据浮动位置有条件地 \captionsetup

是否可能\captionsetup根据表格最终的浮动位置而产生不同的效果?

在以下 MWE 中,我希望\captionsetup{belowskip=0pt}自动将所有最终放置在页面顶部的表格删除红色箭头标记的空间:

在此处输入图片描述

\documentclass{book}

\usepackage{graphicx}
\usepackage{lipsum}

\usepackage{caption}
\captionsetup*[table]{position=above, belowskip=\baselineskip}

\usepackage[showframe]{geometry}

\begin{document}

\lipsum[2]
\begin{table}[htbp]
\caption{test}
\end{table}
\lipsum[2-6]
\begin{table}[htbp]
%\captionsetup{belowskip=0pt}
\caption{test}
\end{table}
\lipsum[2]

\end{document}

答案1

评论@Ulrike Fischers 评论让我找到解决方法。基本思路是修改,\intextsep而不是尝试通过 caption 包来实现。

关于浮动空间的一个很好的概述可以在这里找到删除图形后和文本前的空格

\documentclass{book}

\usepackage{graphicx}
\usepackage{lipsum}

\usepackage{caption}
\captionsetup*[table]{position=above, 
belowskip=0pt,
}
\setlength{\intextsep}{\baselineskip}

\usepackage[showframe]{geometry}

\begin{document}

\lipsum[2]
\begin{table}[htbp]
\caption{test}
\centering
\includegraphics[width=1cm]{example-image}
\end{table}
\lipsum[2-6]
\begin{table}[t]
\caption{test}
\centering
\includegraphics[width=1cm]{example-image}
\end{table}
\lipsum[2]

\clearpage
\lipsum[2]
\begin{figure}[htbp]
\centering
\includegraphics[width=1cm]{example-image}
\caption{test}
\end{figure}
\lipsum[2-6]
\begin{figure}[t]
\centering
\includegraphics[width=1cm]{example-image}
\caption{test}
\end{figure}
\lipsum[2]

\end{document}

相关内容