\깨진 페이지 나누기가 있는 Lstnew환경

\깨진 페이지 나누기가 있는 Lstnew환경

다음과 같은 환경이 설정되어 있습니다.

\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개로 분할되면 마지막 행까지 페이지당 한 줄만 인쇄됩니다.

2페이지:

2페이지 예시

3페이지 이상:

3페이지 예시

환경 설정을 만지작거렸지만 페이지 사이에 적절한 간격을 두는 방법을 찾지 못했습니다. 이 문제를 해결하는 방법이 궁금합니다.

관련 정보