如何在 lstset 的顶部和底部添加边框

如何在 lstset 的顶部和底部添加边框

lstset我想在代码的顶部和底部添加边框。我尝试按如下方式设置:

\lstset{frame=topline|bottomline}

但是它只是移除了右侧边框,并保持所有边框完好无损。当我尝试时:

\lstset{frame=topline}

它正确地保留了顶部边框,删除了所有其他边框。

同样,当我尝试时:

\lstset{frame=bottomline}

它正确地保留了底部边框,移除了所有其他边框。

我怎样才能将两者结合起来?

答案1

根据文档,该frame密钥接受以下值:

none

leftline

topline

bottomline

lines(顶部和底部),

single对于单帧,

shadowbox

(请参阅文档版本 1.8d 第 18 页的“2.7 布局元素”部分listings。)

为了获得顶线和底线,您可以按lines如下方式使用内置键:

\lstset{frame=lines}

除了前面提到的 7 种预定义样式之外,您还可以使用tlr和的组合b (用于单行)或大写版本(用于双行)来微调列表周围的线条。

因此,列表上方和下方的一行对应:

\lstset{frame=tb}

答案2

根据手册(第 36 页)您必须用单个字符指定多个选项:

\documentclass{article}
\usepackage{listings}

\begin{document}
\lstset{language=Pascal}

\begin{lstlisting}[frame=tb] 
  for i:=maxint to 0 do
  begin
    { do nothing } 
  end;
\end{lstlisting}
\end{document}

在此处输入图片描述

相关内容