如何在“minted”中的某些行之间添加额外的间距?

如何在“minted”中的某些行之间添加额外的间距?

为了便于阅读,我想在某些代码行之间添加一些分隔。考虑这个 MWE:

\documentclass{article}

\usepackage{minted}

\begin{document}

\begin{minted}[linenos]{python}
foo(1)
bar(1)
foofoo(1)
foobar(1)
\end{minted}

\end{document}

产生的输出当然看起来像

1 foo(1)
2 bar(1)
3 foobar(1)
4 foobaz(1)

我希望看到的是

1 foo(1)
2 bar(1)

3 foobar(1)
4 foobaz(1)

(第 2 行和第 3 行之间不一定有整行的间距,但有一些额外的空间。)


我首先尝试使用 minted 选项[escapeinside=]\\[2ex],但它什么也没做。我的意思是\\被识别为 TeX 命令,因为它没有显示在输出中,但没有2ex添加空格。

然后我偶然发现了 David 的(精心设计的☺)答案这里,但该解决方案仍然会在下一行增加行计数器。

\renewcommand\theFancyVerbLine{%
    \ifnum\value{FancyVerbLine}=3
        \setcounter{FancyVerbLine}3
    \else
        {\scriptsize\arabic{FancyVerbLine}}
    \fi
}

我不能\setcounter{FancyVerbLine}2这样做,因为那样会导致无限循环,将每一行号设置为2从第 3 行开始并且不打印任何内容。

答案1

您可以使用具有适当深度的隐形规则。

\documentclass{article}

\usepackage{minted}

\newcommand\spacer[1]{\rule[-#1]{0pt}{#1}}

\begin{document}

\begin{minted}[linenos,escapeinside=||]{python}
foo(1)
bar(1)|\spacer{3ex}|
foofoo(1)
foobar(1)
\end{minted}

\end{document}

在此处输入图片描述

相关内容