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 种预定义样式之外,您还可以使用t
、l
、r
和的组合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}