减少“ruled”“newfloat”底部的垂直空间

减少“ruled”“newfloat”底部的垂直空间

newfloat我使用包中的命令定义了一个自定义浮点数float。我的自定义浮点数使用在同一个包中定义的规则样式。这是我正在做的事情的一个最小示例:

\documentclass{article}

\usepackage{float}

\floatstyle{ruled}
\newfloat{Foo}{thp}{lop}
\floatname{Foo}{Foobar}

\begin{document}

\begin{Foo}
\begin{verbatim}
public void foo(int bar) {
  foo();
  bar();
}
\end{verbatim}
\caption{An example of a foobar program}
\end{Foo}

\end{document}

我不喜欢的是内容最后一行和浮动底部之间的垂直空间。有没有什么方法可以减少这个空间?

答案1

您可以重新定义内部\fs@ruled宏以在底部规则之前添加负垂直跳过;将以下几行添加到文档的前言中(-0.7\baselineskip根据您的需要进行更改):

\makeatletter
\renewcommand\fs@ruled{\def\@fs@cfont{\bfseries}\let\@fs@capt\floatc@ruled
  \def\@fs@pre{\hrule height.8pt depth0pt \kern2pt}%
  \def\@fs@post{\vskip-0.7\baselineskip\kern2pt\hrule\relax}%
  \def\@fs@mid{\kern2pt\hrule\kern2pt}%
  \let\@fs@iftopcapt\iftrue}
\makeatother

相关内容