# Frame on lstlisting opened on the bottom when code longer than one page [duplicate]

In my \lstset I have:

\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
}


taken from a wikibook. The problem is that when the source code is really long and requires 2 or more pages, I would like that the frame would close on every page instead of having the bottom of the listing open. Is that possibile?

-

## marked as duplicate by Jubobs, Peter Jansson, barbara beeton, Malipivo, RubenApr 11 '14 at 21:01

You would have to manually break the listing by only showing enough lines (using, say, lastline=<n>). Then you can post the exact same listing on a subsequent page using a combination of firstline=<n+1>,lastline=<m>, etc. Browsing under the tag combination {listings} and {page-breaking} also provides some good ideas. – Werner Nov 12 '11 at 9:01
Such an open box indicates that the listing will continue on the next page. As alternative you could choose a colored background instead of the frame. – Thorsten Donig Nov 12 '11 at 10:42

The listings documentation describes this on page 54. In summary, listings does not support such frames by itself. The framed package is recommended instead:

\usepackage{framed}

. . .

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


There is also a similar, newer mdframed package which might be of interest.

-
@Andrew: mdframed doesn't support this feature yet. – Marco Daniel Nov 12 '11 at 10:57
@MarcoDaniel: Nice to know but odd. Isn't mdframed itself a modification of framed? – Andrey Vihrov Nov 12 '11 at 11:09
it is but my motivation to write the package was the missing support of opened environment on page breaks. That is the difference. – Marco Daniel Nov 12 '11 at 11:12
This adds an ugly black border around the listing. Not what I wanted… – mirabilos Jul 27 '15 at 12:39