PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Abstand zu Quelltext



stefan.jaeschke
01-08-2007, 23:14
Hallo liebe Experten,
ich versuche (bisher erfolgreich) meinen Quellcode zukünftig mit LaTeX zu dokumentieren.

Leider komme ich bei zwei Schönheitsfehlern nicht mehr weiter. Zum einen würde ich gerne den Abstand zwischen Text und Quellcode vergrößern. Zum anderen möchte ich den Namen (= caption) des Quellcodes gerne unter dem Quellcode darstellen.

Habt ihr eventuell einen Tipp für mich.

Danke und Gruß

Stefan




\documentclass{article}
\usepackage{courier}

\usepackage{listings}
\lstset{
basicstyle=\ttfamily %
,showstringspaces=false % Strings im Code ohne Kenntlichmachung von Leerzeichen
,commentstyle=\textit %
,stringstyle=\upshape %
,numbers=left %
,float=hbt %
,frame=tlRB %
,breaklines=true %
}

%% Dokument Beginn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%
\begin{document}

\section{Quellcode im *.tex-Dokument}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

\lstset{language=SQL}
\begin{lstlisting}[caption={tabelle\_anlegen.sql}]
DROP TABLE test_tab;

CREATE TABLE test_tab
(id NUMBER
,name VARCHAR2(30)
,deptno NUMBER(2)
);

-- TESTKOMMENTAR

INSERT INTO test_tab
VALUES (1, 'HANS MEIER', 20);
\end{lstlisting}

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

%% Dokument ENDE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%
\end{document}

mat69
02-08-2007, 15:53
Ich habe nicht genau verstanden, was du willst.
Aber wenn du Text vom Quellcode, und da vor allem den \usepackage Zeilen "lösen" willst kannst du ja \include verwenden.

Dein Hauptdokument würde dann so ausehen:


\documentclass{article}
\usepackage{courier}

\usepackage{listings}
\lstset{
basicstyle=\ttfamily %
,showstringspaces=false % Strings im Code ohne Kenntlichmachung von Leerzeichen
,commentstyle=\textit %
,stringstyle=\upshape %
,numbers=left %
,float=hbt %
,frame=tlRB %
,breaklines=true %
}

%% Dokument Beginn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%
\begin{document}

\include{text}

%% Dokument ENDE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%
\end{document}


In einer Datei names Text.tex hast du dann:


Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.


Wenn du die Beschriftung unten haben willst, schreibe sie einfach unten hin.
Hier zwei Beispiele für eine Grafik:



%#####Beschriftung oben:#####
\begin{figure}
\centering
\caption{Die beiden Blickrichtungen des Mitarbeitergespr"achs
\includegraphics[width=0.9\textwidth]{Einleitung/Grafik1}
\cite[14]{Nagel:1999}}
\end{figure}

%#####Beschriftung unten:#####
\begin{figure}
\centering
\includegraphics[width=0.9\textwidth]{Einleitung/Grafik1}
\caption{Die beiden Blickrichtungen des Mitarbeitergespr"achs \cite[14]{Nagel:1999}}
\end{figure}

stefan.jaeschke
02-08-2007, 22:45
Hallo mat69,
vielen Dank für deine Antwort. Offensichtlich habe ich mich etwas ungeschickt ausgedrückt. Daher ein zweiter Versuch:

Ich würde gerne einen größeren Abstand zwischen dem Text des Dokuments ("Lorem ipsum dolor sit amet, consetetur ...") und meinem SQL-Quellcode ("DROP TABLE test_tab; ...") in der Ausgabedatei haben (die "Vermischung" im *.tex-Code ist nicht mein Problem).

Vielleicht kannst du mir bei dieser Problematik weiterhelfen.


Zum Thema Caption:
Wie du die Beschriftung einer Grafik verschiebst, habe ich verstanden. Leider kann ich diesen Tipp nicht auf das Package listings anwenden. Ich vermute daher, dass ich etwas an der Parametrisierung ändern muss, um die Beschriftung unter dem Quellcode darzustellen. Aber was .... ?

Nochmals vielen Dank.

Gruß Stefan

mat69
02-08-2007, 23:09
Achso.

Da würde ich \vspace{XYZ} (XYZ ist dabei eine Maßangabe z.B. "1cm", "10pt", "4ex" ... ohne "") empfehlen, wenn du möglichst genau einstellen möchtest, wieviel Abstand vorhanden sein soll (\hspace{} für horizontales).

Möchtest du dich aber nicht mit Werten herumschlagen kannst du \smallskip{}, \medskip{} oder \bigskip{} verwenden.

Falls dir diese Standardeinstellungen nicht passen kannst du sie auch einfach anpassen: z.B. "\setlength{\largeskipamount}{1.5cm}".

Ein weiterer Befehl ist \vfill (ergibt das selbe wie \vspace{fill}), der einen variablen Platz einfügt - gleich wie \hfill --> h steht für horizontal, v für vertikal.


Reichen dir diese Möglichkeiten immer noch nicht, kannst du die Abstands-Prozedur noch etwas genauer bestimmen.
Willst du etwa, dass zw. Text und dem Quellcode mindestens 1.5cm Abstand ist, der aber bei Bedarf - für besseres Seitenbild ... - vergrößert werden darf schreibst du:
\vspace{1.5cm plus 1fil minus 0cm}
d.h. der Abstand ist 1.5cm, darf bei Bedarf beliebig vergrößert werden (fil ist eine Unendlichkeitseinheit, so kommst du etwa sofort an das Ende einer Seite), aber nur um 0cm also gar nicht verkleinert werden.

rais
03-08-2007, 00:33
Moin moin,


Da würde ich \vspace{XYZ} (XYZ ist dabei eine Maßangabe z.B. "1cm", "10pt", "4ex" ... ohne "") empfehlen, wenn du möglichst genau einstellen möchtest, wieviel Abstand vorhanden sein soll (\hspace{} für horizontales).

ich würde hier eher zu den listings-eigenen Optionen `aboveskip´ und `belowskip´ tendieren, schließlich lassen sich diese auch global per \lstset fürs gesamte Dokument definieren.


Zum anderen möchte ich den Namen (= caption) des Quellcodes gerne unter dem Quellcode darstellen.
dafür gibt es die captionpos-Option beim listings-Paket.
BTW: wozu den zweiten \lstset? Gib die Sprache doch einfach dem Ersten schon mit.;)

MfG,

stefan.jaeschke
07-08-2007, 21:55
Hallo zusammen,
vielen Dank für Eure Hilfe.

Ich bin zur Zeit unterwegs und werde eure Tipps am Wochenende umsetzen.

Danke und Gruß Stefan

stefan.jaeschke
11-08-2007, 22:21
Hallo zusammen,
vielen Dank nochmals für eure Tipps. Jetzt funktioniert es so, wie ich es wollte.

PS: Das zweiten \lstset brauche ich, weil ich in meinem Dokument eventuell zwischen als die SQL-Skripte auch einmal einen Java-Quellcode einfügen will. So wie ich es getestet habe, müsste ich diesem Java-Quellcode mit language=JAVA kennzeichnen und anschließend das nächste SQL-Skript mit language=SQL markieren. Um dies nicht zu vergessen, hatte ich das zweite (und alle anderen) \lstset gesetzt. Ich werde es aber in Zukunft weglassen.

Gruß Stefan