Избыточное пространство в lstinline после использования Reactivatenumber

Избыточное пространство в lstinline после использования Reactivatenumber

Я использую код, представленныйэтот ответ(который сам по себе основан наэтот) для подавления номеров строк в некоторых строках в lstlisting. Это работает, но после того, как я его использую, интервалы в lstinlineсбиваются:

испорченный интервал между строками

Кажется, это из-за |\Reactivatenumber{12}|. Почему так и как это исправить?

МВЭ:

\documentclass{article}
\usepackage{listings}
\lstset{numbers=left,escapeinside=||, basicstyle=\ttfamily\footnotesize}

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

\newcommand*\Reactivatenumber[1]{%
  \setcounter{lstnumber}{\numexpr#1-1\relax}
  \lst@AddToHook{OnNewLine}{%
   \let\thelstnumber\origthelstnumber%
   \refstepcounter{lstnumber}
  }%
}
\makeatother

\begin{document}
This looks fine: \lstinline!some-words-with-minus! more text\dots
\begin{lstlisting}[firstnumber=1]
var myFunc = function() {|\Suppressnumber|
    //my function does many great things
    //and it's only 10 lines long!|\Reactivatenumber{12}|
}
\end{lstlisting}

This looks awful: \lstinline!some-words-with-minus! some more text
\end{document}

решение1

ОК, нашел: Мне нужно было добавить %после \refstepcounter{lstnumber}.

Полный фрагмент:

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

\newcommand*\Reactivatenumber[1]{%
  \setcounter{lstnumber}{\numexpr#1-1\relax}
  \lst@AddToHook{OnNewLine}{%
   \let\thelstnumber\origthelstnumber%
   \refstepcounter{lstnumber}%
  }%
}
\makeatother

Связанный контент