当代码长度超过一页时,列表上的框架在底部打开

当代码长度超过一页时,列表上的框架在底部打开

在我的\lstset我有:

\lstset{
language=Java,                    % the language of the code
basicstyle=\sffamily\large,        % the size of the fonts that are used for the code
%numbers=left,                      % where to put the line-numbers
%numberstyle=\footnotesize,         % the size of the fonts that are used for the line-numbers
%stepnumber=1,                      % the step between two line-numbers. If it's 1, each line 
                                    % will be numbered
%numbersep=10pt,                      % how far the line-numbers are from the code
%backgroundcolor=\color{white},      % choose the background color. You must add \usepackage{color}
showspaces=false,                   % show spaces adding particular underscores
showstringspaces=false,           % underline spaces within strings
showtabs=false,                   % show tabs within strings adding particular underscores
frame=single,                      % adds a frame around the code
tabsize=2,                        % sets default tabsize to 2 spaces
captionpos=t,                     % sets the caption-position to bottom
breaklines=true,                  % sets automatic line breaking
breakatwhitespace=false,           % sets if automatic breaks should only happen at whitespace
%title=\lstname,                   % show the filename of files included with \lstinputlisting;
caption=grail.sablecc,             % also try caption instead of title
escapeinside={\%*}{*)},            % if you want to add a comment within your code
morekeywords={*,...}               % if you want to add more keywords to the set
}   

摘自维基百科。问题是,当源代码很长并且需要 2 页或更多页时,我希望框架在每一页上都关闭,而不是打开列表的底部。这可能吗?

答案1

listings文档在第 54 页对此进行了描述。总之,listings它本身不支持此类框架。framed建议改用以下软件包:

\usepackage{framed}

. . .

\begin{framed}
\begin{lstlisting}
%or \lstinputlisting{…}
\end{lstlisting}
\end{framed}

还有一种类似的、更新的mdframed您可能感兴趣的包。

相关内容