Aumente o espaço entre os ambientes de listagens. e texto circundante

Aumente o espaço entre os ambientes de listagens. e texto circundante

Como posso definir o espaço entre uma listagem (lstlisting) e o texto que a rodeia? Existe um parâmetro que eu possa definir no início do meu documento que controle isso? Eu tentei framesep, mas apenas infla a caixa do quadro.

EDITAR:

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

\addvspacefaz o que eu preciso. Como faço para definir isso no início do documento, para não precisar adicioná-lo manualmente a todas as listagens?

EDITAR:

Eu uso listagens assim:

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

Onde cape lblsão legendas/rótulos diferentes, portanto não são constantes para todas as listagens.

Responder1

Use o \lstsetcomando e suas teclas aboveskipe belowskip. Consulte a seção 4.3 do manual para obter detalhes.

\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}

Responder2

Você pode usar um \newcommand:

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

Então use-o no formato:

\myconfiguredlisting{content of listing goes in here}

Ou

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

Em seguida, use o acima como:

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

informação relacionada