Sign up ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

This question already has an answer here:

In my \lstset I have:

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?

share|improve this question

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

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

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

1 Answer 1

up vote 4 down vote accepted

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


. . .

%or \lstinputlisting{…}

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

share|improve this answer
@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 at 12:39

Not the answer you're looking for? Browse other questions tagged or ask your own question.