How to break listing to pages in latex?
Asked Answered
G

1

8

I'm trying to split my listing into several pages, but unfortunately, it doesn't work.

I have read it should work automatically if you set breaklines=true. I can't. Is there another option without creating multiple listings?

    \lstset{numbers=left,
    columns=fullflexible,
    stepnumber=1,
    basicstyle=\footnotesize\ttfamily,
    numberstyle=\color{lineNumberColor}\tiny,
    inputencoding=utf8,
    showtabs=false,
    extendedchars=true,
    showstringspaces=false,
    showspaces=false,
    tabsize=4,
    postbreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\color{pred}\hookrightarrow\space}},
    commentstyle=\slshape\color{commentColor},
    keywordstyle=\color{keywordColor}\bfseries,
    stringstyle=\color{stringColor}\ttfamily,
    breaklines=true,
    breakatwhitespace=true,
}

example

Gendarmerie answered 28/9, 2018 at 7:58 Comment(1)
It's set, but the page doesn't break.Gendarmerie
M
11

Assuming you want to specify where a new page starts in your listing, you can do that using the escapeinside option. The breaklines option ensures line wraps to fit the page horizontally when set to true.

By specifying escapeinside=`` , you can escape the listings context between two backtics (`). To break a line you can insert \newpage between the backticks like so:

\begin{lstlisting}[escapeinside=``]
    page 1

    `\newpage`

    page 2
\end{lstlisting}

The listing should be split up into two pages with page 1 written on one page and page 2 written on the next one.

Mihalco answered 13/11, 2020 at 21:41 Comment(1)
What if you don't know where you want the page break to occur, and you want LaTeX to calculate it automatically?Capers

© 2022 - 2024 — McMap. All rights reserved.