13

I am trying to get only the actual code to be line numbered rather than both code and comments. Example:

\lstset{basicstyle=\footnotesize, xleftmargin=40pt, frame =
single, numbers = left,caption = Test, label = list:Test} 
\begin{lstlisting}[language = java,mathescape]
//Test comment
if( this = test)
print;
\end{lstlisting}
\vspace{2 mm}

Prints all line numbers for the comment as well.

Thanks for your help.

1 Answer 1

10

I don't think it is possible to do what you want with the "listings" package. However, if it is worth your time you can break it up in sections and use a style for numbers and another for no-numbers. See the example below for one way of doing this.

\documentclass{article}
\usepackage{listings}
\begin{document}
\lstdefinestyle{numbers}
{numbers=left, stepnumber=1, numberstyle=\tiny, numbersep=10pt}
\lstdefinestyle{nonumbers}
{numbers=none}
\begin{lstlisting}[style=nonumbers]
// this is comments
// and more
\end{lstlisting}
\begin{lstlisting}[style=numbers]
for i:=maxint to 0 do
begin
  {do some code}
end;
\end{lstlisting}
\begin{lstlisting}[style=nonumbers]
// this is comments
// and more
\end{lstlisting}
\end{document}

Personally, I avoid typesetting code with comments, as it looks very ugly. Since you describing your code it is preferable - instead of comments to provide your own commentary in words (like the documentation in most packages).

You can also try the 'fancyvrb" which I believe provides such a facility as you specified.

1
  • Thanks a lot for your well laid out answer. However, one question remains; is it going to be possible to extend the frame of the code from one listing to the other? I both agree and disagree with your opinion of comments though. I do want to explain my code, however, there are subtle things that I want to write within the listing.
    – arin
    Commented Jan 18, 2011 at 19:01

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .