Как мне установить пробел между списком (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}