使用 minted 突出显示标记的代码行

使用 minted 突出显示标记的代码行

我想知道我是否可以使用标签机制解释这里获取我想要使用的行号通过高亮显示代码highlightlines铸造。

我正在想象这样的事情(修改后的例子来自https://tex.stackexchange.com/a/483714/85983):

\begin{minted}[linenos=true, escapeinside=!!, highlightlines=\ref{myline}]{c++}
    i = i + 1 ;  
    j = j + 1 ; !\label{myline}!
    k = k + 1 ;
\end{minted}
The important line is line \ref{myline}.

在结果输出中,该行j = j + 1 ;应该被突出显示。

答案1

\ref和都不\pageref是完全可扩展的,但是refcount包裹提供一个\getrefnumber{<label name>},它完全扩展到该链接的计数器值<label name>。因此,您的要求可以通过以下方式实现:

\documentclass{article}
\usepackage{minted}
\usepackage{refcount}

\makeatletter
% expand value of key "highlightlines"
\define@key{FV}{highlightlines}{\edef\FV@HighlightLinesList{#1}}
\makeatother

\begin{document}
\begin{minted}[
    linenos=true, 
    escapeinside=!!, 
    highlightlines={\getrefnumber{myline}, \getrefnumber{yourline}}
  ]{c++}
    i = i + 1 ;  
    j = j + 1 ; !\label{myline}!
    k = k + 1 ;
    l = l + 1 ; !\label{yourline}!
\end{minted}
The important lines are line~\ref{myline} and line\ref{yourline}.

\end{document}

在此处输入图片描述

相关内容