在 minted 环境中,是否可以通过双行换行来分页?

在 minted 环境中,是否可以通过双行换行来分页?

对于一个项目,我使用 Minted 打印了大量源代码。某些块(例如 CSS 块)相当短,但分散在多个页面上,这意味着它们不太易读。能否让 Minted 仅在代码中有双行换行符的地方插入分页符?

答案1

这里的计划是首先将 interlinepenalty 设置为 10000,以便正常情况下不会发生换行,然后修改底层 fancyverb 以检测空白行,如果是则鼓励分页。

示例使用了非常小的页面,只是为了展示效果。

前:

在此处输入图片描述

后:

在此处输入图片描述

\documentclass{article}

\usepackage{minted}

\setlength\topskip{\baselineskip}
\setlength\textheight{12\baselineskip}


\makeatletter
%\showoutput

\def\@wasblank{\PYG {err}{BLANK}}
\def\foo{\aftergroup\ffoo}
\def\ffoo{\goodbreak}% or \clearpage or whatever
\let\zzzz\FV@PreProcessLine
\def\FV@PreProcessLine{%
  \ifx\FV@Line\@empty
    \def\FV@Line{BLANK}%
  \fi
  \ifx\FV@Line\@wasblank
    \def\FV@Line{\aftergroup\aftergroup\aftergroup\foo}%
  \fi
  \zzzz}

\begin{document}

%\showoutput
\noindent x1\\x2\\x3\\x4\\x5\\x6\\x7\\x8\\x9\\x10\\x11\\x12
%\tracingall

{
\interlinepenalty10000 %
\begin{minted}{json}
[
  {
    "type": "Room"
    "type1": "Room"
    "typesad": "Room"
    "typde": "Room"
    "tydpe": "Room"
  },

  1111,
  "aaaaa", 
  "aaaasda", 
  "aaaaa", 

  2222,
  "2aaaaa" ,

  333,
  "zzzz" 
]
\end{minted}
}



\end{document}

相关内容