PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe mit lstlistings



freerider21
09-11-2004, 15:24
Hallo

ich verwende das Packat listings, damit ich meine Beispielcode einbinden kann.
Ich gehe wie folgt vor

\usepackage {listings}

\lstset{numbers=left, numberstyle=true}
\lstloadlanguages{}

\lstset{language= Java, frameround= fttt, breaklines = true, tabsize=2}
\begin{lstlistings}[frame=trBL]

Code

\end{lstlistings}

Allerdings wenn ich die Sache Compiliere kommt folgender Fehler.

environment lstlistings undefined

Ich verstehe aber sein problem nicht, da ich doch alles eingebunden habe oder sieht jemand meinen Fehler.

Vielen Dank für eure Hilfe. :confused:

blubb
09-11-2004, 15:27
lstlistings oder lstlisting?

\lstloadlanguages{}
\lstset{language= Java, frameround= fttt, breaklines = true, tabsize=2}

Bin mir jetzt nicht sicher, du stellst Java ein, ohne es vorher geladen zu haben?
Korrekt: \lstloadlanguages{Java}

Bitte nächstesmal ein Minimalbeispiel.

freerider21
09-11-2004, 15:31
Ich habe es falsch gemacht mit lstlsiting funktioniert alles.

Danke

blubb
09-11-2004, 15:42
Ich habe es falsch gemacht mit lstlsiting funktioniert alles. Glaub ich nicht, Listings laufen normalerweise, sie sitzen nicht ;)

bischi
09-11-2004, 17:44
Bitte nächstesmal ein Minimalbeispiel.

Ist ja da...

MfG Bischi

blubb
10-11-2004, 08:44
Ist ja da...
Ok, dann versuchen wir mal dein "Minimalbeispiel".

1. Fehler:
! LaTeX Error: \usepackage before \documentclass.

Korrektur:
\documentclass{scrartcl} einfügen.

2. Fehler:
! LaTeX Error: Environment lstlistings undefined.

Korrektur:
lstlistings mit lstlisting ersetzen.

3. Fehler:
! LaTeX Error: Missing \begin{document}.

-> \begin{document} einsetzen (und \end{document auch gleich}

So, jetzt gibt es keine LaTeX-Fehlermeldung mehr. Zumindest 2 von den drei Fehlern liegen daran, das du kein Minimalbeispiel gesendet hast.

Das Minimalbeipsiel sieht jetzt so aus:

\documentclass{scrartcl}
\usepackage {listings}

\lstset{numbers=left,
numberstyle=true
}
\lstloadlanguages{}

\lstset{language= Java, frameround= fttt, breaklines = true, tabsize=2}

\begin{document}

\begin{lstlisting}[frame=trBL]

Code

\end{lstlisting}

\end{document}

Wie kann ein Minimalbeispiel erzeugt werden:
http://www-users.rwth-aachen.de/Christian.Faulhammer/

Und wenn du dir jetzt noch die Doku zu listings ansiehst, kannst du auch sehen warum \numberstyle=true unsinnig ist, und warum dein Output auf einmal ein "true" enthält wenn du es verwendest.

freerider21
10-11-2004, 09:25
Danke für eure Hilfe.

Ich verwende momentan folgnede Befehle:



documentclass{scrreprt}
\usepackage{listings}

\begin{document}

\lstset{framexleftmargin=5mm,frame=single,numbers= left, numberstyle= \tiny}
\lstloadlanguages{Java,XML}


\lstset{language= Java, frameround= tttt, breaklines = true, tabsize=2}
\begin{lstlistings}


\end{lstlistings}
\end{document}


Allerdings wird dir rechte Linie sowie die untere Linie stärker gezeichent als die beiden anderen. Wo liegt mein Fehler???

Danke

blubb
10-11-2004, 10:49
Die Umgebung heist lstlisting!

Ansonsten sieht es bei mir gleich aus.
Was siehtst du dir an?

DVI (mein Test)
PS
PDF
Ausdruck
Manchmal habe ich im Acrobat auch so "Störungen", die beim vergrösseren verschwinden. Sprich: Anzeigeproblem des Acrobat Readers.

freerider21
10-11-2004, 11:01
Ich schau mir ein pdf Dokument an.

Ich habe es bis jetzt noch nicht ausgedruckt, daher kann es durchaus sein, das es beim Drucken verschwindet.

Danke für die Unterstützung

bischi
10-11-2004, 13:54
Ok, dann versuchen wir mal dein "Minimalbeispiel".

1. Fehler:
! LaTeX Error: \usepackage before \documentclass.

Korrektur:
\documentclass{scrartcl} einfügen.

2. Fehler:
! LaTeX Error: Environment lstlistings undefined.

Korrektur:
lstlistings mit lstlisting ersetzen.

3. Fehler:
! LaTeX Error: Missing \begin{document}.

-> \begin{document} einsetzen (und \end{document auch gleich}

So, jetzt gibt es keine LaTeX-Fehlermeldung mehr. Zumindest 2 von den drei Fehlern liegen daran, das du kein Minimalbeispiel gesendet hast.


Entweder weisst du, wie der Code um den Listings-Bereich herum aussieht und kannst ihm vielleicht helfen - oder du hast absolut keine Ahnung und dann nützt es auch nichts, wenn dus kompilieren kannst... (Du gehörst ja zum ersten Teil, da du die Fehler gefunden hast - jedoch würd ich noch ein Befehl fürs Schriftzeichen-Encoding angeben, sonst kanns wüst werden...). Ich persönlich bin der Meinung, dass es grundsätzlich gut ist, Code möglichst ausführlich anzugeben, jedoch sind immer die gleichen Standard-Codezeilen auch etwas mühsam und verlängern die Posts unnötig (da will heissen: Machen sie unübersichtlich).

MfG Bischi :)

PS: Zumindest 2 von den drei Fehlern liegen daran, das du kein Minimalbeispiel gesendet hast.
Also ich hab überhaupt keinen Code gepostet... :D

blubb
10-11-2004, 14:10
Also ich hab überhaupt keinen Code gepostet...
Ohh, sorry,
fiel mir gar nicht auf das da ein Autoren-Wechsel war.

Naja,
nächstesmal schweige ich, ausser ich kann es sicher eingrenzen oder ohne Aufwand kurz ausprobieren.

freerider21
24-11-2004, 13:44
Ich habe jetzt alles soweit hinbekommen, was die Fehlermeldungen betrifft.

Verwende jetzt folgenden Code.



\documentclass{scrreport}
\begin {document}

\lstset{framexleftmargin=5mm,framexrightmargin=-5mm,frame=single,numbers=left,numberstyle=\tiny, framerule=0.4pt,}
\lstloadlanguages{Java,XML,HTML}

\lstset{language=HTML,frameround=tttt,breaklines=t rue,tabsize=2}
\begin{lstlisting}
JavaCode
\end{lstlisting}
\end{document}


Die Frame angaben wollte ich verwenden, damit die Zeilennummern ebenfalls innerhalb des Frames sichtbar werden. Das hat mit den Angaben zwar funktioniert, das Beispiel ist jetzt aber größer als der Text, was ja shlecht aussieht.

Ein weiteres Problem ich wollte meine Beispiele in ein seperates Verzeichnis Anzeigen, so als Beispielverzeichnis. Und unterhalb des Listings sollte
"Codebeispiel 1: Text" stehen. Hat jemand eine Idee dies zu realisieren.

Danke

blubb
24-11-2004, 13:57
\lstlistoflistings
\begin{lstlisting}[caption={aa}]
...

Es gibt eine Option für lstset, die die caption nach unten setzt. Finde ich gerade nicht.

Ansonsten funktioniert dein Minimalbeispiel nicht.

freerider21
24-11-2004, 14:56
Ich habe jetzt alles soweit hinbekommen, was die Fehlermeldungen betrifft.

Verwende jetzt folgenden Code.



\documentclass{scrreport}
\begin {document}

\lstset{framexleftmargin=5mm,framexrightmargin=-5mm,frame=single,numbers=left,numberstyle=\tiny, framerule=0.4pt,}
\lstloadlanguages{Java,XML,HTML}

\lstset{language=HTML,frameround=tttt,breaklines=t rue,tabsize=2}
\begin{lstlisting}
JavaCode
\end{lstlisting}
\end{document}


Die Frame angaben wollte ich verwenden, damit die Zeilennummern ebenfalls innerhalb des Frames sichtbar werden. Das hat mit den Angaben zwar funktioniert, das Beispiel ist jetzt aber größer als der Text, was ja shlecht aussieht.


Mein einziges Problem liegt jetzt noch bei der Größe des Frames??
Ich möchte gerne Nummern ebenfalls innerhalb des Frames sehen. Allerdings wird jetzt mein ganzes Frame verschoben.

freerider21
26-11-2004, 10:18
Hallo zusammen,

ich werde noch verrückt mit diesem blöden Listings package. Das macht einfah nicht was ich will.

Ich möchte gerne Line Numbers haben, was auch nicht das Problem ist, aber die werden außerhalb meiner Textgrenze gedruckt. Das Problem ist das meine Liste ganz links beginnt und irgendwie bin ich zu dämlich dies so zu verändern das die Nummern ganz links stehen.

Bitte um dringende Hilfe.



\documentclass{scrreport}
\begin {document}

\lstset{framexleftmargin=5mm,xleftmargin0-5mm,frame=single,numbers=left,numberstyle=\tiny, framerule=0.4pt,}
\lstloadlanguages{Java,XML,HTML}

\lstset{language=HTML,frameround=tttt,breaklines=t rue,tabsize=2}
\begin{lstlisting}
JavaCode
\end{lstlisting}
\end{document}


Ich verstehe einfach sein Problem nicht, da eigentlich wenn ich line numbers haben möchte müsste er doch erst die Line Numbers ganz links setzen und nicht ausserhalb meiner Textgrenze.

edico
26-11-2004, 14:18
... die line numbers werden nach margin gesetzt.
Um das zu umgehen, z.B. listing in eine minipage einbinden. Das könnte so aussehen:
\documentclass{scrreprt}
\usepackage[latin1]{inputenc}
\usepackage[german]{babel}
\usepackage{listings}
\begin {document}
%Copying a Directory

\lstset{labelstep=1}
\lstset{language=Java}
\lstset{commentstyle=\textit}

%\begin{center}
\hspace{2mm} % anzupassen
\begin{minipage}{150mm}

\begin{lstlisting}{}
// Copies all files under srcDir to dstDir.
// If dstDir does not exist, it will be created.
public void copyDirectory(File srcDir, File dstDir) throws IOException {
if (srcDir.isDirectory()) {
if (!dstDir.exists()) {
dstDir.mkdir();
}

String[] children = srcDir.list();
for (int i=0; i<children.length; i++) {
copyDirectory(new File(srcDir, children[i]),
new File(dstDir, children[i]));
}
} else {
// This method is implemented in e1071 Copying a File
copyFile(srcDir, dstDir);
}
}
\end{lstlisting}

\end{minipage}
%\end{center}

\noindent
... und nun kommt die grosse Überraschung ... es funktioniert
\end{document}
edico