我想[H]
用一些垂直空间来修补我的浮动,因为它看起来与[h]
其他类型的浮动不一致。我正在使用KOMAscript
是否有一个好的方法,仅当传递了参数时,才能将代码放在环境之前/之后[H]
?我可以通过手动放置来实现效果\vspace{}
,但显然我宁愿每次都不这样做。
我还想避免创建新环境;我觉得拥有本机浮点声明将使我的 .tex 文件可用/可与其他格式一起传输。
或者,如果您知道使间距一致的好方法,那也会有所帮助。
编辑:添加 MWE
\documentclass[parskip=full,captions=tableheading]{scrartcl}
\usepackage{mwe}
\usepackage{float}
\usepackage[tableposition=top,labelfont=bf,skip=0pt]{caption}
\setlength\belowcaptionskip{0pt}
\setlength\abovecaptionskip{0pt}
\setlength{\intextsep}{\baselineskip}
\newcommand{\blah}{Here are some random words. Blah, blah blah blah blah blah blah blah.}
\begin{document}
\blah
\begin{figure}[h]
\centering
\noindent\includegraphics[height=5cm]{example-image-b}
\caption{h type figure, see the space below}
\end{figure}
\blah
\begin{figure}[H]
\centering
\noindent\includegraphics[height=5cm]{example-image-b}
\caption{H type figure, see the extra space below}
\end{figure}
\blah
\end{document}
答案1
您可以尝试修补结束命令以添加负数 \parskip:
\documentclass[parskip=full,captions=tableheading]{scrartcl}
\usepackage{mwe}
\usepackage{float}
\usepackage{etoolbox}
\makeatletter
\patchcmd\float@endH{\relax}{\vskip-\parskip\relax}{}{\fail}
\makeatother
\usepackage[tableposition=top,labelfont=bf,skip=0pt]{caption}
\setlength\belowcaptionskip{0pt}
\setlength\abovecaptionskip{0pt}
\setlength{\intextsep}{\baselineskip}
\newcommand{\blah}{Here are some random words. Blah, blah blah blah blah blah blah blah.}
\begin{document}
\blah
\begin{figure}[h]
\centering
\noindent\includegraphics[height=5cm]{example-image-b}
\caption{h type figure, see the space below}
\end{figure}
\blah
\begin{figure}[H]
\centering
\noindent\includegraphics[height=5cm]{example-image-b}
\caption{H type figure, see the extra space below}
\end{figure}
\blah
\end{document}