Ich brauche Hilfe bei Listeneinträgen. Ich habe einen Code, der mit Folgendem beginnt:
INPUT: c, m
rest of code...
Ich möchte, dass die erste Zeile nicht die Zahlenreihe anzeigt. Das ist mein Listensatz:
\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={$}{$}
}
Kann mir bitte jemand helfen?
Antwort1
Währendlistings
stellt den Schlüsselwert bereit numberfirstline
( false
standardmäßig auf eingestellt), scheint aber das Versprechen, die erste Zeile nicht zu nummerieren, nicht zu erfüllen. Daher gibt es folgende Problemumgehung: Beginnen Sie mit der „Nummerierung“ bei 0 und prüfen Sie beim Drucken der Nummer, ob sie gedruckt werden soll oder nicht, indem Sie eine Bedingung verwenden.
\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}
Wenn die Platzierung der Zahl rechts erfolgt (mit numbers=right
), ist die folgende Neudefinition von \lst@PlaceNumber
erforderlich:
\makeatletter
\def\lst@PlaceNumber{\ifnum\value{lstnumber}=0\else
\rlap{\normalfont\kern\linewidth \kern\lst@numbersep\lst@numberstyle{\thelstnumber}}\fi}
\makeatother
Beachten Sie, dass diese Neudefinitionen \lst@PlaceNumber
erfolgen solltennachFestlegen der numbers
Option.
Antwort2
Fügen Sie firstline=2
hinzu \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={$}{$}
}