Zeilennummerierung wie in Quelldatei

Tabellen und Grafiken erstellen und anordnen


esage1611
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: So 6. Jul 2014, 13:55

Zeilennummerierung wie in Quelldatei

Beitrag von esage1611 »

Hallo zusammen,

trotz langer Suche und erfolglosem Rumprobieren muss ich nun doch mal fragen.
Ich möchte Quellcode in meine BA aufnehmen und möchte, dass bei diesem links von der Box um den Quellcode auch die richtige Zeilennummer steht.
Geplant ist, dass ich ein paar zeilen code angebe, dann was dazu schreibe(a la: Hier in zeile xy passiert dies und das), danach wieder code und dann wieder was an text usw.
Im Anhang soll der vollständige Quellcode stehen. Natürlich auch richtig nummeriert.
Aktuell fängt jede Box mit Code bei 1 zu zählen an, ganz egal ob ich den quellcode von zeile 10 bis 20 anzeige. Ich mein, wenn ich schon in die Optionen
firstline=10, lastline=18
reinschreibe, warum nimmt der das nicht als nummerierung?

Und wie bekomme ich dieses "Listing x:" weg? Ich will da einfach nur die Überschrift stehen haben.

Ich hoffe es ist annähernd klar geworden, was ich möchte.
Hab versucht mich an alles zu halten, was euch die Hilfe erleichtert. Falls doch was falsch ist, bitte ich dies zu entschuldigen.



\documentclass[                     %
	a4paper,                        % DIN-A4 Papier
	12pt,                           % Schriftgröße im normalen Text
	toc=bibliography,               % Literaturverzeichnis wird im Inhaltsverzeichnis aufgeführt
	oneside                         % Einseitig
]{scrreprt}                         % Verwendung von KOMA-Script
\usepackage{lmodern}		    	% Schriftart
\usepackage[T1]{fontenc}	    	% Umlaute in PDF, aber Probleme bei �
\usepackage[utf8]{inputenc}		    % LaTeX-Dateien sind in UTF-8 codiert
\usepackage[ngerman]{babel}		    % neue deutsche Trennung
\usepackage{graphicx}               % Zum Bilder einbinden
\usepackage{pdfpages}               % Zum Einbinden von PDF-Dateien
\usepackage{blindtext}              % Erzeugt Blindtexte
\usepackage{bibgerm}                % deutsches Literaturverzeichnis	        
\usepackage{amsmath,amsfonts,amssymb,amstext,amsthm}       
                                    % integriert die mathematischen Befehle 
\bibliographystyle{unsrt}
\usepackage[onehalfspacing]{setspace}
                                    %1,5facher Zeilenabstand
\usepackage{textcomp}			    % weitere Symbole
\usepackage{scrhack}
\usepackage{listings}			    % Paket fuer Quellcode-Listings
\setlength\parindent{0pt}
\theoremstyle{plain}
\newtheorem{theorem}{Theorem}
\numberwithin{theorem}{chapter} 
\newtheorem{beweis}{Beweis}

\clubpenalty = 10000				% Keine einzelnen Zeilen beim Anfang eines Abschnitts (Schusterjungen)
\widowpenalty = 10000 \displaywidowpenalty = 10000
									% Keine einzelnen Zeilen am Ende eines Abschnitts (Hurenkinder)

\definecolor{MyDarkGreen}{rgb}{0.0,0.4,0.0}
\lstset{language=Matlab, 
        numbers=left, 
        numberstyle=\tiny, 
		basicstyle=\footnotesize,showstringspaces=false,
		numberblanklines=false, 
		frame=single, 
		backgroundcolor=\color{white},
		xleftmargin=0cm, 
		linewidth=\linewidth,
		commentstyle=\usefont{T1}{pcr}{m}{sl}\color{MyDarkGreen}\small,
		keywordstyle=[1]\color{blue}\bfseries, 		% MATLAB functions bold and blue
		keywordstyle=[2]\color{purple}, 			% MATLAB function arguments purple
		keywordstyle=[3]\color{blue}\underbar,		% User functions underlined and blue
		identifierstyle=, 							% Nothing special about identifiers
													% Comments small dark green courier
		commentstyle=\usefont{T1}{pcr}{m}{sl}\color{MyDarkGreen}\small,
		stringstyle=\color{purple}, % Strings are purple
		showstringspaces=false, % Don't put marks in string spaces
		tabsize=5, % 5 spaces per tab
		%
		%%% Put standard MATLAB functions not included in the default
		%%% language here
		morekeywords={xlim,ylim,var,alpha,factorial,poissrnd,normpdf,normcdf},
		%
		%%% Put MATLAB function parameters here
		morekeywords=[2]{on, off, interp},
		%
		%%% Put user defined functions here
		morekeywords=[3]{FindESS, homework_example},
		%
		morecomment=[l][\color{blue}]{...}, 		% Line continuation (...) like blue comment
		numbers=left, 								% Line numbers on left
		firstnumber=1, 								% Line numbers start with line 1
		numberstyle=\tiny\color{blue},				% Line numbers are blue
		stepnumber=1 								% Line numbers go in steps of 1
}

\lstset{literate=%
    {Ö}{{\"O}}1
    {Ä}{{\"A}}1
    {Ü}{{\"U}}1
    {ß}{{\ss}}1
    {ü}{{\"u}}1
    {ä}{{\"a}}1
    {ö}{{\"o}}1
    {~}{{\textasciitilde}}1
}




\begin{document}
Hier steht der Quellcode von Zeile 1 bis 33. Vor der Box um den Quellcode soll dann auch 1 bis 33 stehen. 
\lstinputlisting[caption=Der Quellcode 1,firstline=1, lastline=37]{Quellcode.m}

Hier wird ein Abschnitt gesondert betrachtet. Vor der Box sollte die Nummerierung mit 10 anfangen und mit Zeile 18 aufhören. Tut sie aber NOCH nicht, sie beginnt bei 1 und endet bei 9.
\lstinputlisting[caption={Der Quellcode 2},firstline=10, lastline=18]{Quellcode.m}

Hier wird ein weiterer Abschnitt gesondert betrachtet. Vor der Box sollte die Nummerierung mit 19 anfangen und mit Zeile 25 aufhören. Tut sie aber NOCH nicht, sie beginnt bei 1 und endet bei 7.
\lstinputlisting[caption={Der Quellcode 3},firstline=19, lastline=25]{Quellcode.m}


\end{document}

 

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

firstline und lastline wählen die Zeilen aus deinem Quellcode aus, haben aber keinen Einfluss auf die Nummerierung. Den Beginn der Nummerierung musst du mit firstnumber angeben. Dafür kannst du in der Präambel firstnumber=1 in \lstset{language=Matlab,...} weglassen.


Wenn du einen Titel ohne zusätzliche Beschriftung und Nummerierung möchtest, dann gib title statt caption an.

Ändere also deinen Code zum Bespiel für das zweite Listing zu
\lstinputlisting[title={Der Quellcode 2},firstline=10,firstnumber=10, lastline=18]{Quellcode.m} 
Gruß
Elke

esage1611
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: So 6. Jul 2014, 13:55

Beitrag von esage1611 »

Also einfach jedesmal einfach
...firstline=X,firstnumber=X,...
eingaben und dann passts? Hätte man auch iwie drauf kommen können.
Naja, mit Wald und Bäumen ist das so eine Sache ;-)
Hatte die Hoffnung das er das iwei automatisch hinbekommt, aber so ist dann auch gut.


Ach, und wie ist das mit den "Listing x:", wie bekomme ich dieweg?

Vielen Dank

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

esage1611 hat geschrieben:Ach, und wie ist das mit den "Listing x:", wie bekomme ich dieweg?
Wie ich schon geschrieben und in der einen Codezeile angegeben habe: nimm title statt caption.

Gruß
Elke

esage1611
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: So 6. Jul 2014, 13:55

Beitrag von esage1611 »

Ohh, wer lesen kann ist klar im Vorteil.

Danke für die Infos.

Antworten