\documentclass{mwrep}
\usepackage{minted}
\usepackage{lipsum}
% question regarding this code
\setlength{\belowcaptionskip}{-10pt}
% end
\begin{document}
\lipsum[1]
\begin{listing}[h]
\begin{verbatim}
1
2
3
4
\end{verbatim}
\caption{test}
\label{lst}
\end{listing}
\lipsum[2]
\begin{figure}[h]
\begin{verbatim}
1
2
3
4
\end{verbatim}
\caption{test}
\label{ver}
\end{figure}
\lipsum[3]
\end{document}
为什么\listing
忽略 的更改\belowcaptionskip
?我可以更改什么来使其listing
受到影响,就像 的情况一样figure
?
我怎样才能使 的标题在各个方面listing
与 的标题相同figure
(例如字体大小,在我的示例中 中的字体较小figure
)。
答案1
文档类重新定义了标准浮点数(即和)的行为mwrep
方式;包使用包提供的功能定义其环境;因此, 的重新定义并不适用于环境;解决该问题的一种方法是让浮点数使用 的设置(特别是);下面是一个例子,使用包定义的浮动样式的修改版本来说明这种方法:\caption
table
figure
minted
listing
float
mwrep
listings
\restyle
listing
mwrep
\captionsettings
plain
float
\documentclass{mwrep}
\usepackage{minted}
\usepackage{lipsum}
\setlength{\belowcaptionskip}{-10pt}
\makeatletter
\renewcommand\floatc@plain[2]{\setbox\@tempboxa\hbox{\captionsettings{\@fs@cfont #1:} #2}%
\ifdim\wd\@tempboxa>\hsize \captionsettings{\@fs@cfont #1:} #2\par
\else\hbox to\hsize{\hfil\box\@tempboxa\hfil}\fi\vskip\belowcaptionskip}
\makeatother
\floatstyle{plain}
\restylefloat{listing}
\begin{document}
\lipsum[1]
\begin{listing}[h]
\begin{verbatim}
1
2
3
4
\end{verbatim}
\caption{test}
\label{lst}
\end{listing}
\lipsum[2]
\begin{figure}[h]
\begin{verbatim}
1
2
3
4
\end{verbatim}
\caption{test}
\label{ver}
\end{figure}
\lipsum[3]
\end{document}