\lstnewenvironment mit fehlerhaften Seitenumbrüchen

\lstnewenvironment mit fehlerhaften Seitenumbrüchen

Ich habe die folgende Umgebung eingerichtet:

\lstdefinelanguage{prompt}{}
\lstnewenvironment{prompt}{%
  \lstset{language=prompt,
    frame=none,
    aboveskip=1.5mm,
    belowskip=1.5mm,
    showstringspaces=false,
    columns=fullflexible,
    basicstyle={\scriptsize\ttfamily},
    numbers=none,
    %numbers=left,
    %firstnumber=0,
    numberstyle=\scriptsize\color{gray},
    keywordstyle=\color{black},
    commentstyle=\color{black},
    stringstyle=\color{black},
    breaklines=true,
    breakatwhitespace=true,
    postbreak={\mbox{$\hookrightarrow\space$}},
    tabsize=2,
    xleftmargin=1em,
    xrightmargin=0pt,
    breakindent=0pt,
    resetmargins=true,
    breakautoindent=false
  }
  \mdframed[%
  innertopmargin=5pt,
  middlelinewidth=1pt,
  outerlinewidth=9pt,outerlinecolor=white,
  innerleftmargin=3pt,
  innerrightmargin=3pt,
  leftmargin=-9pt,rightmargin=-10pt,
  skipabove=\topskip,
  skipbelow=\topskip,
  roundcorner=3pt,
  singleextra={\node[draw, fill=white,anchor=west, xshift=10pt+1pt,font=\bfseries] at (O|-P) {Prompt};},
  firstextra={\node[draw, fill=white,anchor=west, xshift=10pt+1pt,font=\bfseries] at (O|-P) {Prompt};}
  ]%
}{\endmdframed}

Dies funktioniert und lässt sich gut drucken, wenn der Textblock innerhalb einer Instanz klein genug ist, um auf eine Seite zu passen:

Arbeitsbeispiel

Wenn es jedoch in zwei Teile aufgeteilt werden muss, bleibt die Kopfzeile auf eine Art und Weise übrig, die seltsam aussieht, und wenn es in drei Teile aufgeteilt wird, wird nur eine Zeile pro Seite gedruckt, bis zur letzten:

2 Seiten:

2 Seitenbeispiel

3 oder mehr Seiten:

3 Seitenbeispiel

Ich habe an den Umgebungseinstellungen herumgespielt, aber keine Möglichkeit gefunden, sinnvolle Umbrüche zwischen den Seiten einzufügen. Ich frage mich, wie ich das beheben kann.

verwandte Informationen