PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LISTING in Kombination mit PSTRICKS und MINIPAGES



W2K
28-02-2007, 20:50
Hallo,

ich habe einige Fragen/Probleme zu LISTLISTING, die ich nicht alleine lösen konnte:

1. Warum erscheint der Text des Listing NICHT in der Typewriter-Schriftart?
2. Ich möchte, dass die Leerzeichen etwas kleiner/dezenter dargestellt werden und die Zahlen/der Text ein wenig größer. Small als Schriftgröße ist mir insgesamt zu groß! Es geht einzig darum die Zahlenwerte klarer von den Leerzeichen abzuheben.
3. Auf der rechten Seite, also in der dritten Minipage, möchte ich einige Zahlen-Kolonnen erklären. Dazu stelle ich mir vor, bestimmte Werte einzukreisen, um mit einem Pfeil nach rechts zur Beschreibung (in der Minipage3) zu zeigen. Da ich das für viele Zeichen machen muss, möchte ich die Koordinaten möglichst nicht einzeln suchen.
Meine Idee: PSTRICKS bietet doch Nodes an, um Objektgruppen mit Pfeilen zu verbinden. Ist das in diesem Fall (in einer LISTING-Umgebung und über mehrere Minipages hinweg) überhaupt möglich? Wenn ja, wäre ich für ein kleines Beispiel sehr dankbar, da ich es nicht hinbekommen habe.



%------------------------------------------------------------------------------
%
%------------------------------------------------------------------------------
\documentclass[a4paper, % DINA4-Papier
oneside, % Einseitiger Druck
onecolumn, % Text in einer Spalte
titlepage, % Titelseite
nochapterprefix,%
normalheadings, % Normale Kopfzeilen-Schrift
halfparskip, %
headsepline, %
footsepline, %
1.0headlines, %
headinclude, %
footexclude, %
DIV15, % Seitenformat
liststotoc, % Listen --> Inhaltsverzeichnis
bibtotoc] % Literaturverzeichnis --> Inhaltsverzeichnis
{scrbook}
%------------------------------------------------------------------------------
%
%------------------------------------------------------------------------------
%
% Zustzliche Paktete einbinden
%
%------------------------------------------------------------------------------
\usepackage[ngerman]{babel} % Neue deutsche Rechtschreibung
\usepackage[T1]{fontenc} %
\usepackage[latin1]{inputenc} % Dateicodierung
\usepackage{scrpage2} % Seitenstil
\usepackage{color} % Farben
\usepackage{graphicx} % Einbindung von Grafiken
\usepackage{wrapfig} % Textumflossene Grafiken
\usepackage{multicol} % Paket fr mehrspaltige Dokumente
\usepackage{pdflscape} % Einzelne Seiten auf Landscape-Format drehen
\usepackage[table]{pstricks} % PSTricks-Zeichnungen
\usepackage{pst-vue3d} % PSTricks-3D-Umgebungen
\usepackage{pst-plot} % PSTricks-Plot-Umgebungen
\usepackage{subfig} % Bilder untereinander
\usepackage{amsmath} % Erweiterungen fr mathematische Umgebungen
\usepackage{amsfonts} %
\usepackage{amssymb}
\usepackage{accents} % Akzente auf Variablen setzen
\usepackage{fancyvrb} %
\usepackage{cancel} % Durchstreichen mathematischer Ausdrcke
\usepackage{setspace} % Zeilenabstand setzen
\usepackage{nonfloat} % Nicht-flieende Umgebung fr Bilder
\usepackage{caption} % Bildunterschriften
\usepackage{listings} % Darstellung von Quellcode
\usepackage{ltxtable} % GTabellen
\usepackage{longtable} % Lange Tabellen fr Symbolverzeichnis, etc.
\usepackage{natbib} % Paket, um BibTex einzubinden
\usepackage{footnpag}[1] % Paket, um BibTex einzubinden
\usepackage{lmodern} % Latin Modern Schriften verwenden
%\usepackage{times} % Bookman Schriften verwenden
%\usepackage{times} % Times Schriften verwenden
\usepackage[colorlinks=true, %
citecolor=red, %
linkcolor=blue, %
pdfpagelabels=true, %
breaklinks=true] %
{hyperref} % Hyperlinks, Verweise farbig abheben
%------------------------------------------------------------------------------
%
%------------------------------------------------------------------------------
\hyphenation{Chien} %
\sloppy %
%------------------------------------------------------------------------------
\pagestyle{scrheadings} % Seitenstil scrheadings setzen
\cfoot{\pagemark} %
\flushbottom % Flle die Seite von oben bis unten
\linespread{1.25} % Zeilenabstand um 25% erhhen
%------------------------------------------------------------------------------
%
%------------------------------------------------------------------------------
\renewcommand{\captionlabelfont}{\bfseries}
\renewcommand{\captionfont}{}
\renewcommand{\sectionmark}[1]{\markright{\thesection. #1}}
%------------------------------------------------------------------------------
%
%------------------------------------------------------------------------------
\lstset{showspaces=true, % Leerzeichen darstellen
showtabs=true, % Tabulatoren darstellen
showstringspaces=false % keine Leerzeilen anzeigen
tab=rightarrowfill} % Tabulatorzeichen definieren
\lstset{basicstyle =\tiny, % Kleinen Schriftsatz verwenden
keywordstyle=\color{blue},%
% Keyword-Stil definieren
commentstyle=\color{gray},%
% Kommentar-Farbe
backgroundcolor=\color{white},%
stringstyle=\ttfamily, %
extendedchars=true, %
captionpos=b, %
float, %
inputencoding={latin1}, %
xleftmargin=5pt, %
xrightmargin=12pt, %
columns=flexible, %
fancyvrb=true, %
frame=lines} %
\lstset{numbers=right, % Ausrichtung der Zeilennummern
numberfirstline=true, % 1.Zeilen-Nummer immer anzeigen
numbersep=5pt, %
stepnumber=2, %
tabsize=3, % TAB-Breite
numberstyle=\tiny, %
numbersep=5pt, %
language=Fortran, % Sprache
breaklines=true, % Zeilenumbr~che
prebreak={\mbox{
\ensuremath{
\hookleftarrow}}} % Zeichen am Zeilenende (Umbruch)
}
%------------------------------------------------------------------------------
\newpsobject{showgrid}{psgrid}{subgriddiv=2,griddo ts=10,gridlabels=0pt}
%------------------------------------------------------------------------------
%
%------------------------------------------------------------------------------
% Hauptdokument
%------------------------------------------------------------------------------
%
\begin{document}
\begin{nofloat}{figure}
\begin{minipage}{0.65\textwidth}
\begin{lstlisting}
2 517.06.04 11:09:08 3 0
143 1 21 1 1 1 21 1
0.3290054E-01
1 1 301 1 13 1 41 9
1 6 12 12 1 40 2 7
25 1 1 1 2 3 5 0.0000000E+00
7 294 12 12 1 40 2 7
1 1 1 1 2 3 3 0.0000000E+00
295 300 12 12 1 40 2 7
19 1 1 1 2 3 5 0.0000000E+00
300 300 1 12 1 40 1 7
1 1 1 1 2 3 1 0.0000000E+00
1 1 1 12 1 40 -1 7
300 1 1 1 2 3 1 0.0000000E+00
1 300 1 1 1 30 -2 3
1 300 1 1 31 40 -2 7
1 10 1 1 2 3 2 0.0000000E+00
1 300 1 12 1 1 -3 3
1 300 1 12 40 40 3 3
\end{lstlisting}
\end{minipage}
\begin{minipage}{0.015\textwidth}
\hfill
\end{minipage}
\begin{minipage}{0.345\textwidth}
zweite minipage auf der seite...Dieser text sollte eigentlich oben
ausgerichtete werden. Warum geht das noch nicht inder Minipage?
\end{minipage}
\end{nofloat}
\end{document}

W2K
28-02-2007, 23:46
Hallo,

also, ich habe festgestellt, dass ich genau die Schrifttype erhalte, die ich suche, wenn ich die Umgebung Verbatim benutze. Allerdings hat diese andere Nachteile:

1. Mir fehlt beispielsweise ein Pfeil, der einen Zeilenumbruch andetet
2. Kann man das Zeichen für Leerzeichen ändern? Ich hätte gerne, dass dessen senkrechte Linien links und rechts kleiner sind. Das Symbol soll quasi einem Unterstrich _ ähneln.
3. Wie bekommt man die Zeilennummern dichter an den Code (links)

Vielen Dank für die Hilfe.

voss
01-03-2007, 09:06
Hallo,

also, ich habe festgestellt, dass ich genau die Schrifttype erhalte, die ich suche, wenn ich die Umgebung Verbatim benutze. Allerdings hat diese andere Nachteile:

1. Mir fehlt beispielsweise ein Pfeil, der einen Zeilenumbruch andetet
2. Kann man das Zeichen für Leerzeichen ändern? Ich hätte gerne, dass dessen senkrechte Linien links und rechts kleiner sind. Das Symbol soll quasi einem Unterstrich _ ähneln.
3. Wie bekommt man die Zeilennummern dichter an den Code (links)


-- es gibt nichts besseres als die listings-Umgebung!
-- solange du listings nicht sagst, dass du \ttfamily willst, wird es
auch keine geben.
-- gibt es reichlich Beispiele in der Doku ...

Herbert

edico
01-03-2007, 09:27
Naja - ich fange mal an ...

[0]
alles ziemlich unübersichtlich, brauchst Du wirklich die 'vielen' Formate?
[1] Schrifttype
...
\lstset{%basicstyle =\tiny, % Kleinen Schriftsatz verwenden
basicstyle=\tiny\ttfamily,%<--- musst du auch angeben, wenn Du ihn willst
...
[2] Zeilenumbruchpfeil ist doch da
[3] Abstand Number-Code - ist bei Dir auch doppelt!
...
numbersep=5pt, % Abstand Number-Text ... auch negative Zahlen ;-)
...
[4] was hat das Bsp mit PSTricks zu tun?
[5] Layout der 3 minipages, nonfloat ... - verstehe ich nicht, wieso denn 3 davon, ausserdem grösser 100% ...
vielleicht eher so:
...
\begin{document}
\chapter{Test}
%\begin{nofloat}{figure}
%\begin{minipage}{0.65\textwidth}
\begin{minipage}[t]{0.6\textwidth}
\begin{lstlisting}
1 1 301 1 13 1 41 9
1 6 12 12 1 40 2 7
25 1 1 1 2 3 5 0.0000000E+00
7 294 12 12 1 40 2 7
1 1 1 1 2 3 3 0.0000000E+00
295 300 12 12 1 40 2 7
19 1 1 1 2 3 5 0.0000000E+00
300 300 1 12 1 40 1 7
1 1 1 1 2 3 1 0.0000000E+00
1 1 1 12 1 40 -1 7
300 1 1 1 2 3 1 0.0000000E+00
1 300 1 1 1 30 -2 3
1 300 1 1 31 40 -2 7
1 10 1 1 2 3 2 0.0000000E+00
1 300 1 12 1 1 -3 3
1 300 1 12 40 40 3 3
\end{lstlisting}
\end{minipage} \hfill
%\begin{minipage}{0.015\textwidth}
% \hfill
%\end{minipage}
%\begin{minipage}{0.345\textwidth}
\begin{minipage}[t]{0.3\textwidth}
zweite minipage auf der seite...Dieser text sollte eigentlich oben
ausgerichtete werden. Warum geht das noch nicht inder Minipage?
\end{minipage}
\captionof*{table}{Test \protect\label{fig:eintest}}
%\end{nofloat}

\newpage
s. Abb.\,\ref{fig:eintest}
\end{document}
...

Reduktion auf das Wesentliche für ein Minimalbeispiel angezeigt!

edico

P.S. ha, nun bin gar nicht ich, sondern ist der Herbert, der Fuchs, angefangen ;-)

sofa-surfer
01-03-2007, 09:54
3. Auf der rechten Seite, also in der dritten Minipage, möchte ich einige Zahlen-Kolonnen erklären. Dazu stelle ich mir vor, bestimmte Werte einzukreisen, um mit einem Pfeil nach rechts zur Beschreibung (in der Minipage3) zu zeigen. Da ich das für viele Zeichen machen muss, möchte ich die Koordinaten möglichst nicht einzeln suchen.
Meine Idee: PSTRICKS bietet doch Nodes an, um Objektgruppen mit Pfeilen zu verbinden. Ist das in diesem Fall (in einer LISTING-Umgebung und über mehrere Minipages hinweg) überhaupt möglich? Wenn ja, wäre ich für ein kleines Beispiel sehr dankbar, da ich es nicht hinbekommen habe.


Wie die anderen beiden schon erwähnt haben, ist dein Codebeispiel viel zu lang, um deine Probleme/Fragen zu verdeutlichen. Hier noch ein Ansatz für die Nodes im Listing. (Aufgrund deines umfangreichen Beispiels habe ich mir ein eigenes kleines Beispiel gebaut.) Ich sage dazu: Ich bin bei weitem kein Experte im Umgang mit pstricks, aber es scheint erst mal in die Richtung zu gehen, die du dir vorgestellt hast.


\documentclass{article}
%\usepackage[applemac]{inputenc}
\usepackage{listings}
\usepackage{pst-node}

\begin{document}

\psset{framesep=2pt,linewidth=0.4pt}

\begin{minipage}{.5\textwidth}
\begin{lstlisting}[basicstyle=\ttfamily,escapechar={|}]
1 |\circlenode[boxsep=false]{A}{2}| 3 4
\end{lstlisting}
\end{minipage}
%
\hfill
%
\begin{minipage}{.3\textwidth}
Das ist eine \rnode{B}{Zwei}
\end{minipage}

\ncbar[angle=90]{->}{A}{B}

\end{document}

Matthias

W2K
01-03-2007, 11:24
Vielen Dank!!!!!!!!!!!

Beide Antworten haben mir sehr viel geholfen!!! SUPER! Ich bin begeistert.

Noch eine abschließende Frage:
Ist es möglich die Leerzeichen ggf. mit einem selbstdefinierten Symbol (z.B.: "_" und dunkelgrau) darzustellen?