Увеличить расстояние между окрестностями листинга и окружающим текстом

Увеличить расстояние между окрестностями листинга и окружающим текстом

Как мне установить пробел между списком (lstlisting) и текстом, который его окружает? Есть ли параметр, который я могу установить в начале моего документа, который управляет этим? Я пробовал framesep, но он просто раздувает рамку.

РЕДАКТИРОВАТЬ:

text
\addvspace\medskipamount
\begin{lstlisting}
...
\end{lstlisting}

\addvspaceделает то, что мне нужно. Как мне установить это в начале документа, чтобы мне не пришлось добавлять это вручную в каждый листинг?

РЕДАКТИРОВАТЬ:

Я использую такие списки:

\begin{lstlisting}[caption={cap},label=lbl]
 ... 
\end{lstlisting}

Где capи lbl— разные подписи/метки, поэтому они не являются постоянными для всех списков.

решение1

Используйте \lstsetкоманду и ее клавиши aboveskipи belowskip. Подробности см. в разделе 4.3 руководства.

\documentclass{article}

\usepackage{listings}

\lstset{aboveskip=20pt,belowskip=20pt}

\usepackage{lipsum}

\begin{document}

\lipsum[1]

\begin{lstlisting}[caption={A listing}]
(Listing contents)
\end{lstlisting}

\lipsum[2]

\end{document}

решение2

Вы можете использовать \newcommand:

\newcommand{\myconfiguredlisting}[1]{%
\addvspace\medskipamount %
\begin{lstlisting}[caption={cap},label=lbl] 
{#1} 
\end{lstlisting}}

Затем используйте его в форме:

\myconfiguredlisting{content of listing goes in here}

Или

\newenvironment{mylst}
  {\addvspace\medskipamount %
    \begin{lstlisting}[caption={cap},label=lbl]}
  {\end{lstlisting}}

Затем используйте вышеизложенное как:

\begin{mylst}
....... % lst content goes here.
\end{mylst}

Связанный контент