删除 minted 中的空白行

删除 minted 中的空白行

是否可以删除中的空白行minted,并吞噬指定数量的多个空白行,就像emptylines中的选项一样listings

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{minted}
\usepackage{listings}
% I want something like the emptylines option
\lstset{language=[Visual]{C++},emptylines=1}
\begin{document}
\begin{minted}[frame=single]{cpp}
int i = 0;


i++;
\end{minted}
\begin{lstlisting}
int i = 0;


i++;
\end{lstlisting}
\end{document}

答案1

minted包在后台使用fancyvrb。此包没有内置跳过空白行的功能。可以添加测试以跳过空白行,例如

\begingroup
\makeatletter
\catcode`\^^M=\active
\gdef\FancyVerbGetLine#1^^M{%
  \@nil
  \FV@CheckEnd{#1}%
  \ifx\@tempa\FV@EnvironName
    \ifx\@tempb\FV@@@CheckEnd\else\FV@BadEndError\fi
    \let\next\FV@EndScanning
  \else
    \def\FV@Line{#1}%
    \ifx\FV@Line\@empty % Test added here
      \def\next{\FV@GetLine}%
    \else
      \def\next{\FV@PreProcessLine\FV@GetLine}%
    \fi
  \fi
  \next}%
\endgroup

处理选择特定数量的空白行更加棘手:我会倾向于直接去listings编辑代码源,而不是尝试改变它。

相关内容