我想在我的文档中包含图形和列表,并且希望它们与文本和标题具有相同的间距。
\documentclass[a4paper,12pt,openany,parskip,oneside,ngerman,headsepline]{scrbook}
\usepackage{float}
\usepackage{graphicx}
\usepackage{caption}
\captionsetup{font=small,labelfont=bf}
\usepackage{listings}
\lstset{captionpos=b,frame=single}
\begin{document}
Some text
\begin{lstlisting}[caption={Some caption}]
Some code
\end{lstlisting}
Some text
\begin{figure}[H]
\includegraphics[width=\textwidth]{image.png}
\caption{Some caption}
\label{fig:test}
\end{figure}
Some rext
\end{document}
结果如下(我添加了框来显示间距)。
如您所见,红色框的间距相同。如何让间距从框架上方/下方开始?
图下方的间距比列表大。我怎样才能使它们相同?
答案1
当标题位于浮动内容下方时,您可以通过 调整以下标题参数\captionsetup
:
aboveskip
(浮动内容和标题之间的空间)belowskip
(标题后的空格)
scrbook
对于类,默认值为aboveskip=10pt
和belowskip=0pt
。此外,默认情况下,在浮动对象之前和之后\baselineskip
添加一个,IIRC。1.2\baselineskip
上述设置不适用于列表。但您可以通过以下方式为列表设置这些参数\lstset
:
abovecaptionskip
(浮动内容和标题之间的空间)belowcaptionskip
(标题后的空格)aboveskip
(浮动内容与前一个文本之间的空格)belowskip
(浮动内容与以下文本之间的空格)
因此,保持figure
参数不变,并添加\lstset
类似
abovecaptionskip=10pt,belowcaptionskip=0pt,aboveskip=\baselineskip,belowskip=1.2\baselineskip
应该做你想做的事。
完整代码
\documentclass[a4paper,12pt,parskip]{scrbook}
\usepackage{float}
\usepackage[demo]{graphicx} %option demo only for the example
\usepackage{caption}
\captionsetup{font=small,labelfont=bf}
\usepackage{listings}
\lstset{
captionpos=b,
frame=single,
abovecaptionskip=10pt,
belowcaptionskip=0pt,
aboveskip=\baselineskip,
belowskip=1.2\baselineskip
}
\begin{document}
Some text
\begin{lstlisting}[caption={Some caption}]
Some code
\end{lstlisting}
Some text
\begin{figure}[H]
\includegraphics[width=\textwidth]{image.png}
\caption{Some caption}
\label{fig:test}
\end{figure}
Some rext
\end{document}
输出
如果您认为这些值不能满足您的需求,您可以调整这些值。