I use the listings package for source-code and have read all documentation. However, it appears that leading zeros for line numbers are not implemented as standard option yet. How can I redefine the line numbering so that it uses additional zeros?
Given: 1 ... 10 ... 100 ... 1000 ....
Want: 01 ... 10 ... 99 (if largest printed number <100)
Want: 001 ... 010 ... 100 ... 999 (if largest printed number <1000) etc.
Alternatively: How can I redefine the alignment after the number with the most digits?
Given: Want:
1 1
... ...
10 10
... ...
100 100
Added Latex sample:
\documentclass{article}
\usepackage{listings}
\lstset{language=Ruby,
basicstyle=\ttfamily,
numbers=right,
numberstyle=\ttfamily,
% solution for right alignment:
% numberstyle=\ttfamily\makebox[3em][r],
showstringspaces=false}
\begin{document}
\begin{lstlisting}
#!/usr/bin/env ruby
# test of latex listings package
# uses line numbering with 1-12.
# should be using leading zeros, like 01-12.
puts "line number 05."
puts "line number 06."
puts "line number 07."
puts "line number 08."
puts "line number 09."
puts "line number 10."
puts "line number 11."
puts "line number 12."
\end{lstlisting}
\begin{lstlisting}[firstnumber=98]
puts "line number 098."
puts "line number 099."
puts "line number 100."
puts "line number 101."
puts "line number 102."
\end{lstlisting}
\begin{lstlisting}[firstnumber=998]
puts "line number 0998."
puts "line number 0999."
puts "line number 1000."
puts "line number 1001."
puts "line number 1002."
\end{lstlisting}
\begin{lstlisting}[firstnumber=9998]
puts "line number 09998."
puts "line number 09999."
puts "line number 10000."
puts "line number 10001."
puts "line number 10002."
\end{lstlisting}
\begin{lstlisting}[firstnumber=8]
puts "line number 08."
puts "line number 09."
puts "line number 10."
puts "line number 11."
puts "line number 12."
\end{lstlisting}
\end{document}

It would be helpful if you composed a fully compilable MWE including
\documentclassand the appropriate packages that sets up the problem.While solving problems is fun, setting them up is not. Then those trying to help can simply cut and paste your MWE and get started on solving problem.
– Peter Grill Jan 22 '13 at 18:54\renewcommand*\thelstnumber{\makebox[3em][r]{\the\value{lstnumber}}}should do the job. – Peter Grill Jan 22 '13 at 18:57numberstyle=\ttfamily\makebox[3em][r]instead of redefining\thelstnumberas doing the latter will cause problems with referencing (eg to determine the last line number in the listing). – cyberSingularity Jan 22 '13 at 20:40