Moin moin,
Zitat von
missi
ich will ein bisschen Code in meinem Dokument vorstellen und habe mittels dem lstlisting Paket die Zeilennummerierung aktiviert. Ich will aber, dass mein Code nicht direkt nach der Zeilennummer beginnt, sondern vllt. etwas Abstand ist, also dass der Inhalt des Listings etwas weiter rechts beginnt. Mit \numbersep wird die Zeilennummer zwar verschoben, jedoch weiter nach außen, was nicht schön aussieht. Kennt jemand dazu einen Befehl?
was Du suchst, ist xleftmargin:
Code:
\documentclass[10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{listings,showframe}
\newlength\myxleftmargin
\newlength\mynumbersep
\setlength\mynumbersep{10pt}%<--Abstand Zeilennummer-Code
\settowidth\myxleftmargin{\tiny 88}%<--breiteste Zeilennummer
\addtolength\myxleftmargin{\mynumbersep}
\lstdefinestyle{code}{language=Python, numbers=left, numberstyle=\tiny,
numbersep=\mynumbersep,
xleftmargin=\myxleftmargin,
basicstyle=\ttfamily, keywordstyle=\bfseries, stringstyle=\ttfamily, showstringspaces=false}
\lstset{style=code, captionpos=b, nolol=true, breaklines=true}%, firstline=10, lastline=15<--?
\begin{document}
\begin{lstlisting}[caption={Constructor of the random channel assignment algorithm.}, label=constructor, firstnumber=8]
def main():
if a > b:
a = 2*a
else:
a = a * a
\end{lstlisting}
\noindent foo
\end{document}
BTW: \small ist ein Schalter und erwartet keinen Parameter, also wenn überhaupt, dann {\small ...} statt \small{...}.
BTW2: Was soll Dein firstline im \lstset bewirken?
BTW2a: Du kannst diesen firstline ja mal in das optionale Argument zu lstlisting verschieben ...
BTW2b: ...und wenn das Listing dann leer bleibt, verkleinere firstline z.B. auf 4.
MfG
Lesezeichen