У меня настроена следующая среда:
\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 или более страниц:
Я повозился с настройками среды, но не нашел способа сделать разумные перерывы между страницами. Мне интересно, как это исправить.