图表和列表间距相等

图表和列表间距相等

我想在我的文档中包含图形和列表,并且希望它们与文本和标题具有相同的间距。

\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. 如您所见,红色框的间距相同。如何让间距从框架上方/下方开始?

  2. 图下方的间距比列表大。我怎样才能使它们相同?

答案1

当标题位于浮动内容下方时,您可以通过 调整以下标题参数\captionsetup

  • aboveskip(浮动内容和标题之间的空间)
  • belowskip(标题后的空格)

scrbook对于类,默认值为aboveskip=10ptbelowskip=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} 

输出

在此处输入图片描述

如果您认为这些值不能满足您的需求,您可以调整这些值。

相关内容