删除列表周围的顶部和底部边距

删除列表周围的顶部和底部边距

当使用lstlisting环境或listings包中的类似环境时,实际文本上方和下方会有段落式边距。这在论文中是有意义的,但如果你试图将代码放入 Tikz 节点中(例如,对于 Beamer 演示文稿),就会出现问题:

 \node[inner sep=1mm, text width=6cm, draw=green, line width=2pt, rounded corners]
  {%
    \lstinputlisting[basicstyle=\tiny\ttfamily, columns=fullflexible]{alt1.java} 
  };   

带边距列表

(请忽略我为什么将这段混乱的代码放在节点中的问题……)

如您所见,顶部和底部的边距为节点添加了额外的冗余空间。

我该如何删除这些边距?我想这是某个lstset选项,但我找不到它。

答案1

列表上方和下方的空间可以用aboveskip和来设置belowskip。默认值为\medskipamount

\documentclass{article}

\usepackage{tikz}
\usepackage{listings}


\begin{document}
\tikz \node[inner sep=1mm, text width=6cm, draw=green, line width=2pt, rounded corners]
  {%
    \lstinputlisting[basicstyle=\tiny\ttfamily, columns=fullflexible, breaklines=true,aboveskip=0pt,belowskip=0pt]{data.txt} 
  };   
\end{document}

相关内容