列表跳过行号导致已定义警告

列表跳过行号导致已定义警告

我在项目中使用 listings 和 hyperref,我想跳过某些列表的行号。我使用\Suppressnumber-command a \Reactivatenumber-command(来自列表:跳过当前行的行号)。但是,\Suppressnumber-command 会产生以下错误

pdfTeX warning (ext4): destination with the same identifier (name{lstnumber.-1.\\thelstnumber\040}) has been already used, duplicate ignored 

它还会为所有后续列表(包括输入和内联列表)生成此警告。对于我的项目,这意味着日志中有 60000 行(共 63000 行)。我该怎么做才能修复它?

平均能量损失

\documentclass{article}

\usepackage{listings}
\lstset{language=[Sharp]C,escapeinside={(*@}{@*)}}

\let\origthelstnumber\thelstnumber
\makeatletter
\newcommand*\Suppressnumber{%
    \lst@AddToHook{OnNewLine}{%
        \let\thelstnumber\relax%
        \advance\c@lstnumber-\@ne\relax%
    }%
}
\makeatother

\usepackage{hyperref}

\begin{document}
   \begin{lstlisting}
       public void Main(){
           (*@ \Suppressnumber @*)
           int i = 0;
       }
   \end{lstlisting}
\end{document}

相关内容