PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : \lstinputlisting Zeilennummerierung funktioniert nicht!



Cinux
30-10-2012, 09:03
Hallo Leute,

also ich bin dabei einen Bericht in LaTeX zu schreiben. Das wäre dann das erste mal das ich etwas in LaTeX erstellt habe und schon stoße ich auf die erste Probleme.
Ich möchte Quellcode einfügen Zeilennummerierung und einen Titel einfügen. Doch leider funktioniert nichts von alle dem. Somit möchte ich erst einmal nur die Zeilennummerierung haben. (schön Schritt für Schritt :) )



\documentclass[a4paper,11pt,parskip]{article}

\usepackage{color}
\usepackage{xcolor}
\usepackage{listings} % Quellcodeerweiterung
\definecolor{DarkGreen}{rgb}{0,0.6,0}
\definecolor{Mauve}{rgb}{0.58,0,0.82}
\definecolor{Gray}{rgb}{0.5,0.5,0.5}
\definecolor{DarkGrey}{rgb}{0.1,0.1,0.1}
\definecolor{LightGrey}{rgb}{0.3,0.3,0.3}
\definecolor{FlexRed}{rgb}{0.65, 0.01, 0.01}

\definecolor{SoftGrey}{RGB}{210,210,210}
\definecolor{CommandGreen}{RGB}{146, 205, 0}
\definecolor{BlueViolet}{RGB}{68,50,102}
\definecolor{LightBlue}{RGB}{33,190,222}
\definecolor{SunYellow}{RGB}{255,204,0}
\definecolor{Fuschia}{RGB}{183, 110, 184}
\definecolor{DarkFuschia}{RGB}{105, 45, 172}
\definecolor{Comments}{RGB}{255,255,102}
\definecolor{Commands}{RGB}{0,153,102}
\definecolor{String}{RGB}{102,51,153}

\lstdefinestyle{Bash}{
language=Bash,
basicstyle=\ttfamily\fontsize{8}{10}\selectfont\co lor{white},
backgroundcolor=\color{DarkGrey},
% keywordstyle=\color{CommandGreen}\bfseries,
% commentstyle=\color{LightBlue},
% stringstyle=\color{DarkGreen},
keywordstyle=\color{Commands},
commentstyle=\color{Comments},
stringstyle=\color{String},
showspaces=false,
showstringspaces=false,
showtabs=false,
frame=single,
numbers=left,
numberstyle=\small,
captionpos=b,
tabsize=2,
breaklines=true,
}

\begin{document}
\lstinputlisting[style=Bash]{sourcecode/bash.sh}

\end{document}

Das ist mein LaTeX Code und hier das Bashscript.


#! /bin/bash

versions=""
for version in $versions
do
for file in ${filelist[@]}
do
done
done

Den gesamten Code habe ich rausgenommen weil es ja keinerlei Einfluss auf LaTeX hat.
Bei mir fehlt nun die Zeilennummerierung und ich habe komische Streifen wenn ich mir das als PDF anschaue.
Hier mal der Link zum Bild damit ihr eine Vorstellung habt.
http://img6.imagebanana.com/img/467362fi/thumb/LaTeX.jpg (http://www.imagebanana.com/view/467362fi/LaTeX.jpg)

Ich hoffe ihr könnt mir da Helfen :)

LG Cinux

Lilliane
30-10-2012, 09:38
Hallo Cinux,

ich bin mir nicht ganz sicher, ob ich Deine Frage verstanden habe.

Für die Zeilennummerierung kannst Du das Paket lineno (http://ctan.org/pkg/lineno) (line-no / Zeilennummer) verwenden.

Um Code einzufügen, der nicht interpretiert werden soll, pack den entsprechenden Teil in eine Verbatim-Umgebung:


\begin{verbatim}
Diese Befehle werden ignoriert.
\end{verbatim}


\begin{verbatim*}
Diese Befehle werden auch ignoriert, zusätzlich werden die Leerzeichen markiert.
\end{verbatim*}


VG

Lilly

Cinux
30-10-2012, 09:46
Mittels Verbatim wäre eine Möglichkeit Sourcecode darzustellen. Eine andere wäre eben über die listing. Was ich erst einmal bevorzugen würde.

Dort gibt es die Möglichkeit mittels "numbers=none/left/right" zu sagen das es Zeilennummern geben soll.
Siehe hier (http://blog.robert-kummer.de/2006/04/latex-quellcode-listing.html)

Doch bei mir werden diese nicht angezeigt. obwoll ich numbers=left nutze.

Ein paar andere komische "Nebeneffekte" sind wie auf dem Bild zu sehen diese Linien, wo ich nicht weiß ob es durch das Skalieren kommt, da sie einfach immer da sind. Primär geht es mir aber erstmal nur um die Zeilennummern.

Lilliane
30-10-2012, 10:00
Hallo Cinux,

laut Paketdoku zu listings (http://www.ctan.org/pkg/listings) (pdf S. 6) werden Nummern links so angezeigt:

\lstset{numbers=left}

\begin{lstlisting}
Code mit Nummer
\end{lstlisting}

Damit wir Dein Problem nachvollziehen können wäre es gut, wenn Du ein Minimalbeispiel (http://www.mrunix.de/forums/showthread.php?t=66921) mit genauer Beschreibung der unerwünschten Nebeneffekte dazu posten könntest.

VG

Lilly

u_fischer
30-10-2012, 10:19
Bei mir fehlt nun die Zeilennummerierung

Die ist schon da. Nur sind weiße Zahlen auf weißen Hintergrund nicht gut lesbar. Ändere entweder die Farbe der Nummern (in numberstyle) oder erweitere den Rahmen z.B. mit framexleftmargin=10mm.


ich habe komische Streifen wenn ich mir das als PDF anschaue.

Kann ich selbst nicht sehen. Aber es wird wahrscheinlich dieses Problem hier sein:

http://tex.stackexchange.com/questions/18303/listings-code-snippet-has-white-horizontal-lines-across-it

hakaze
30-10-2012, 10:21
Du musst dem Numberstyle noch eine Farbe übergeben (z.B. black):

...
numbers=left,
numberstyle=\small\color{black},
...Ansonsten sind die Zeilennummern zwar da, aber nicht lesbar, weil sie nämlich durch deinen basicstyle eben auch in weiß gesetzt werden ;)

EDIT: da war die Ulrike wohl einen Tick schneller...

Cinux
30-10-2012, 10:27
Richtig, dort wird die Formatierung und so bestimmt. Dies mache ich aber bei \lstdefinestyle{Bash} schon. Funktioniert ja auch da es so gefärbt wird wie es dort definiert ist.

In meinen Augen ist das was ich in meinem ersten Post gepostet habe ein Minimalbeispiel. Das einzige was dort zu viel ist, sind die nicht verwendeten Farben. Aber ich glaube nicht das es an dennen liegt.

Aber gerne Poste ich hier nochmal alles Ohne die Farben.



\documentclass[a4paper,11pt,parskip]{article}
\usepackage{lineno}
\usepackage{color}
\usepackage{xcolor}
\usepackage{listings} % Quellcodeerweiterung

\definecolor{DarkGrey}{rgb}{0.1,0.1,0.1}
\definecolor{Comments}{RGB}{255,255,102}
\definecolor{Commands}{RGB}{0,153,102}
\definecolor{String}{RGB}{102,51,153}

\lstdefinestyle{Bash}{
language=Bash,
basicstyle=\ttfamily\fontsize{8}{10}\selectfont\co lor{white},
backgroundcolor=\color{DarkGrey},
keywordstyle=\color{Commands},
commentstyle=\color{Comments},
stringstyle=\color{String},
showspaces=false,
showstringspaces=false,
showtabs=false,
frame=single,
numbers=left,
numberstyle=\small,
captionpos=b,
tabsize=2,
breaklines=true,
}

\begin{document}
\lstinputlisting[style=Bash]{sourcecode/bash.sh}
\end{document}


bash.sh


#! /bin/bash

versions=""
for version in $versions
do
for file in ${filelist[@]}
do
done
done


EDIT:
Ist nicht wahr, ihr habt Recht. Ohh man jetzt komm ich mir gerade etwas doof vor :D Den LInk mit den Streifen schau ich mir an. Danke :)