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