改ページが壊れた \lstnewenvironment

改ページが壊れた \lstnewenvironment

次のような環境を設定しています。

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

インスタンス内のテキスト ブロックがページ内に収まるほど小さい場合、これは機能し、適切に印刷されます。

動作例

ただし、2 つに分割する必要がある場合、ヘッダーは見た目が不自然な形で残され、3 つに分割する場合は、最後の行まで 1 ページに 1 行のみが印刷されます。

2ページ:

2 ページの例

3ページ以上:

3 ページの例

環境設定をいじってみましたが、ページ間に適切な区切りを入れる方法が見つかりませんでした。これをどのように修正すればよいか知りたいです。

関連情報