PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zeilennummer bei Listings MIT führender Null



dippen
20-10-2005, 09:15
hallo zusammen,
das forum hat mir schon in vielen punkten weitergeholfen.

eine sache konnte ich aber leider noch nicht finden.

ich möchte in meinem dokument quellcode angeben. die zeilen sollen durchnummeriert werden. das klappt auch alles!

ABER ich wuerde gerne, dass die zeilennummern eine fuehrende null bekommen.

zb.
001
002
003
...
099
100

mein aktuelles linting



\newcommand{\CODE}[3]{
\begin{minipage}{136mm}
\lstset{language=#1, linewidth=\linewidth}
\lstset{numbers=left,numberstyle=\small}
\lstset{framexleftmargin=6mm, framexrightmargin=-6mm, frame=lines, framerule=0.4pt}
\lstset{basicstyle=\small\ttfamily, columns=fullflexible}
\lstset{breaklines=true, breakatwhitespace=true,, tabsize=2, commentstyle=\textit}
\lstset{caption=#3}
\lstset{label=code:#2}
\lstinputlisting{#2}
\end{minipage}
}

countbela666
20-10-2005, 14:58
Hallöchen,

ist im listings-Paket wohl nicht vorgesehen, aber folgendes Minimalbeispiel demonstriert, wie du das Problem mit dem numprint-Paket lösen kannst:

\documentclass{article}
\usepackage{listings,numprint}
%%%%%%%%%%% Anzahl einzufügender führender Nullen %%%%%%%
\nplpadding{3}
%%%%%%%%%%%%% Zeilenzähler umdefinieren %%%%%%%%%%%%%%%%%
\renewcommand{\thelstnumber}{\cntprint{lstnumber}}
\begin{document}
\begin{lstlisting}[numbers=left]
blabla
blabla
blabla
blabla
blabla
blabla
blabla
blabla
blabla
blabla
blabla
blupp
\end{lstlisting}
\end{document}Grüße,
Marcel

dippen
20-10-2005, 21:53
danke. es funktioniert.

ist wahrscheinlich nicht die beste loesung, aber ich hab nun verschiedene kommandos, abhaengig von den zeilen erstellt.

beispiel fuer ein quellcode mit drei stelligen zaehlen



\newcommand{\CODEthree}[3]{
\begin{minipage}{136mm}
\nplpadding{3}
\lstset{language=#1, linewidth=\linewidth}
\lstset{numbers=left,numberstyle=\small}
\lstset{framexleftmargin=6mm, framexrightmargin=-6mm, frame=lines, framerule=0.4pt}
\lstset{basicstyle=\small\ttfamily, columns=fullflexible,showstringspaces=false}
\lstset{breaklines=true, breakatwhitespace=true,tabsize=2, commentstyle=\textit}
\lstset{caption=#3}
\lstset{label=code:#2}
\lstinputlisting{#2}
\end{minipage}
}

countbela666
20-10-2005, 22:02
Schön, dass es funzt. Du kannst deinem \CODE-Befehl doch die Stellenanzahl noch als vierten Parameter übergeben:

\newcommand{\CODE}[4]{
\begin{minipage}{136mm}
\nplpadding{#4}
\lstset{language=#1, linewidth=\linewidth}
\lstset{numbers=left,numberstyle=\small}
\lstset{framexleftmargin=6mm, framexrightmargin=-6mm, frame=lines, framerule=0.4pt}
\lstset{basicstyle=\small\ttfamily, columns=fullflexible,showstringspaces=false}
\lstset{breaklines=true, breakatwhitespace=true,tabsize=2, commentstyle=\textit}
\lstset{caption=#3}
\lstset{label=code:#2}
\lstinputlisting{#2}
\end{minipage}
}Grüße,
Marcel

dippen
22-10-2005, 14:59
ja, das hatte ich auch zuerst, aber ich verwende in meinem commando feste breiten.



\begin{minipage}{136mm}

...
\lstset{framexleftmargin=6mm, framexrightmargin=-6mm, ...}



wuerde ich die anzahl der stellen mit als parameter uebergeben, wird die darstellung nicht mehr so sauber...