Как пропустить нумерацию строк в первой строке с помощью lstlistings

Как пропустить нумерацию строк в первой строке с помощью lstlistings

Мне нужна помощь для lstlistings. У меня есть код, который начинается с:

INPUT: c, m
rest of code...

Я хочу, чтобы первая строка не отображала числовой ряд. Это мой lstset:

\lstset{language=Java,
 numberstyle=\scriptsize,
 numbers=left,
 numbersep=5pt,
 numberblanklines=false,
 captionpos=b,
 basicstyle=\small\sffamily,
        columns=fullflexible,
        xleftmargin=16pt,
        frame=leftline,
 breaklines=true,
 tabsize=2,
 prebreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},
        escapeinside={$}{$}
}

Кто-нибудь может мне помочь?

решение1

Покаlistingsпредоставляет ключ-значение numberfirstline(установленное falseпо умолчанию), похоже, что он не выполняет обещание не нумеровать первую строку. Таким образом, следующее является обходным путем: начать «нумерацию» с 0 и при выводе числа проверить, следует ли его печатать или нет, используя условие.

введите описание изображения здесь

\documentclass{article}
\usepackage{listings}
\lstset{
  basicstyle=\ttfamily,
  numberstyle=\small\ttfamily,
  %numberfirstline=false,
  firstnumber=0,
  numbers=left
}
\makeatletter
\def\lst@PlaceNumber{\ifnum\value{lstnumber}=0\else
  \llap{\normalfont\lst@numberstyle{\thelstnumber}\kern\lst@numbersep}\fi}
\makeatother
\begin{document}
\begin{lstlisting}
INPUT: c, m
rest of code...
\end{lstlisting}
\end{document}

Если размещение числа справа (с использованием ), то требуется numbers=rightследующее переопределение :\lst@PlaceNumber

\makeatletter
\def\lst@PlaceNumber{\ifnum\value{lstnumber}=0\else
  \rlap{\normalfont\kern\linewidth \kern\lst@numbersep\lst@numberstyle{\thelstnumber}}\fi}
\makeatother

Обратите внимание, что эти переопределения\lst@PlaceNumber должны произойтипосленастройка numbersопции.

решение2

Добавьте firstline=2в \lstset.

\lstset{language=Java,
 firstline=2,
 numberstyle=\scriptsize,
 numbers=left,
 numbersep=5pt,
 numberblanklines=false,
 captionpos=b,
 basicstyle=\small\sffamily,
        columns=fullflexible,
        xleftmargin=16pt,
        frame=leftline,
 breaklines=true,
 tabsize=2,
 prebreak=\raisebox{0ex}[0ex][0ex]{\ensuremath{\hookleftarrow}},
        escapeinside={$}{$}
}

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