在 minted 环境中自动标记行号

在 minted 环境中自动标记行号

我最近将我的代码清单从包换listing成了minted包。当我使用 lstlistings 时,我能够重新定义以自动在每个行号\lst@Key处放置格式标签。\lst@label:\arabic{lstnumber}

然而,在浏览mintedfancyvrb源代码之后,我还是找不到对这个minted包执行此操作的方法。

重新定义\theFancyVerbLine似乎是显而易见的解决方案,但我无法访问那里铸造的标签。

对于如何实现这一点,您有什么想法吗?

答案1

我最终minted在一个新的环境中完成了包装,它允许我制作\theFancyVerbLine具有格式的位置标签<label> : <linenum>,并跳转到精确的行。

\newcounter{lstlinenum}
\newenvironment{lst}[4][]
{
    \setcounter{lstlinenum}{0}
    \def\theFancyVerbLine{
        \rmfamily\tiny\arabic{FancyVerbLine}
        \refstepcounter{lstlinenum}
        \label{#4:\arabic{lstlinenum}}
    }
    \VerbatimEnvironment
    \begin{listing}[htp]
    \caption{#3}\label{#4}
    \begin{minted}[#1]{#2}%
}{
    \end{minted}
    \end{listing}
    \def\theFancyVerbLine{\rmfamily\tiny\arabic{FancyVerbLine}}%
}

相关内容