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}
\addvspace
faz 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 cap
e lbl
são legendas/rótulos diferentes, portanto não são constantes para todas as listagens.
Responder1
Use o \lstset
comando e suas teclas aboveskip
e 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}