PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Flussdiagramm mit pstricks: Breite und Ausrichtung der Boxen



momo
08-11-2009, 10:58
Hallo,

ich möchte mit pstricks Flussdiagramme erstellen. Die Boxen sollen z.B. die gleiche Breite haben und der Text soll ggs. mehrzeilig sein.
Bitte schaut Euch mein Minimalbeispiel an und vielleicht könnt Ihr mir weiterhelfen?

1. Die Rauten für die Abfragen sollen immer gleich groß sein (der Text in der zweiten Raute also ggfs. mehrzeilig). Ich würde dazu gerne eine Raute mit einer festen Breite definieren, die ich dann immer verwende. Ich habe jetzt
gelesen, dass diabox immer die Größe abhängig vom Text macht. Das geht also so nicht, oder?

2. Den Text "..stimmt das denn" hätte ich gern mit Zeilenumbruch, also "stimmt\\das\\denn?"

3. Der Pfeil von der zweiten Raute zum Text "Polstelle" muß natürlich waagerecht sein.

Ich danke Euch für Eure Hilfe!
Grüße
Annette


\documentclass[10pt,a4paper,landscape]{article}
\usepackage{pstricks}
\usepackage{pstricks-add}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage[left=10mm,right=5mm,top=15mm,bottom=0mm]{geometry}
\input {../test_header}
\begin{document}
\begin{psmatrix}[rowsep=0.8,colsep=0.4]
\rnode{11}{Existiert der Funktionswert?}{}
& \dianode{12}{stetig?}
\\
& \rnode{22}{\psframebox{..das muss geprueft werden!}}
\\
& \dianode{32}{Existiert $\lim\limits_{\substack{x \to x_i \\ x < x_i}} f(x)$ und
$\lim\limits_{\substack{x \to x_i \\ x > x_i}} f(x)$?}
& \rnode{33}{Polstelle}
\end{psmatrix}%
\psset{arrows=->,nodesep=0pt}
\ncline{12}{22}
\ncline{22}{32}\nbput{..stimmt das denn? }
\ncline{32}{33}
\end{document}

voss
08-11-2009, 11:22
ich möchte mit pstricks Flussdiagramme erstellen. Die Boxen sollen z.B. die gleiche Breite haben und der Text soll ggs. mehrzeilig sein.
Bitte schaut Euch mein Minimalbeispiel an und vielleicht könnt Ihr mir weiterhelfen?

1. Die Rauten für die Abfragen sollen immer gleich groß sein (der Text in der zweiten Raute also ggfs. mehrzeilig). Ich würde dazu gerne eine Raute mit einer festen Breite definieren, die ich dann immer verwende. Ich habe jetzt
gelesen, dass diabox immer die Größe abhängig vom Text macht. Das geht also so nicht, oder?

2. Den Text "..stimmt das denn" hätte ich gern mit Zeilenumbruch, also "stimmt\\das\\denn?"

3. Der Pfeil von der zweiten Raute zum Text "Polstelle" muß natürlich waagerecht sein.


\documentclass[10pt,a4paper,landscape]{article}
\usepackage{pstricks}
\usepackage{pstricks-add}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage[left=10mm,right=5mm,top=15mm,bottom=0mm]{geometry}
\input {../test_header}


diese Zeile ist für uns sinnlos, wenn du test_header nicht mitlieferst ...


\documentclass[10pt,a4paper,landscape]{article}
\usepackage{pst-node}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage[left=10mm,right=5mm,top=15mm,bottom=0mm]{geometry}
\newcommand\TAB[2][1]{{\def\arraystretch{#1}\tabular{@{}c@{}}#2\endtabu lar}}
\begin{document}

\begin{psmatrix}[rowsep=0.8,colsep=0.4,mnode=dia]
[mnode=r]Existiert der Funktionswert? & stetig?\\
& [mnode=r]\psframebox{..das muss geprueft werden!}\\
& Existiert $\lim\limits_{\substack{x \to x_i \\ x < x_i}} f(x)$ und
$\lim\limits_{\substack{x \to x_i \\ x > x_i}} f(x)$?
& [mnode=r]Polstelle
\end{psmatrix}%
\psset{arrows=->,nodesep=0pt}
\ncline{1,2}{2,2}
\ncline{2,2}{3,2}\nbput{\TAB[0.5]{..stimmt\\ das\\ denn?} }
\ncline{3,2}{3,3}

\end{document}


\TAB[0.5] kennzeichnet einen optionalen geringeren Zeilenabstand. Kannst du
auch weglassen, dann ist es der Standardzeilenabstand.

Herbert

voss
08-11-2009, 11:29
1. Die Rauten für die Abfragen sollen immer gleich groß sein (der Text in der zweiten Raute also ggfs. mehrzeilig). Ich würde dazu gerne eine Raute mit einer festen Breite definieren, die ich dann immer verwende. Ich habe jetzt
gelesen, dass diabox immer die Größe abhängig vom Text macht. Das geht also so nicht, oder?


habe den ersten Punkt vergessen:

\documentclass[10pt,a4paper,landscape]{article}
\usepackage{pst-node}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage{ragged2e}
\usepackage[left=10mm,right=5mm,top=15mm,bottom=0mm]{geometry}
\newcommand\TAB[2][1]{{\def\arraystretch{#1}\tabular{@{}c@{}}#2\endtabu lar}}
\newcommand\RAUTE[2][3cm]{\parbox{#1}{\Centering#2}}
\begin{document}

\begin{psmatrix}[rowsep=0.8,colsep=0.4,mnode=dia]
[mnode=r]Existiert der Funktionswert? & \RAUTE{stetig?}\\
& [mnode=r]\psframebox{..das muss geprueft werden!}\\
& \RAUTE{Existiert $\lim\limits_{\substack{x \to x_i \\ x < x_i}} f(x)$ und
$\lim\limits_{\substack{x \to x_i \\ x > x_i}} f(x)$?}
& [mnode=r]Polstelle
\end{psmatrix}%
\psset{arrows=->,nodesep=0pt}
\ncline{1,2}{2,2}
\ncline{2,2}{3,2}\nbput{\TAB[0.5]{..stimmt\\ das\\ denn?} }
\ncline{3,2}{3,3}

\end{document}


Herbert

momo
08-11-2009, 21:21
Herbert,

vielen, vielen Dank - für Dein korrigiertes und für mich verständliches Beispiel, an dem ich wieder so viel lernen kann (u.a. RAUTE - !) Ist so etwas irgendwo erklärt? .. ich habe natürlich nichts dergleichen gefunden.

Eine Frage noch: Wodurch ist der Pfeil unten rechts nun exakt ausgerichtet?

Annette

P.S. Entschuldige für den test_header, da hast Du natürlich Recht, damit kann keiner was anfangen. (Der war nur versehentlich noch drin, für mich zum Testen, das Minimalbeispiel war lauffähig))
.. und entschuldige meine späte Reaktion, da ich bis eben nicht online war.

voss
08-11-2009, 21:30
Eine Frage noch: Wodurch ist der Pfeil unten rechts nun exakt ausgerichtet?


Annette,
wenn du eine Raute per \rnode einfügst, dann ist die nicht notwendigerweise vertikal zentriert, weil hier der Text als Basis genommen wird, um die die RAute gesetzt wird. Wenn du sie aber gleich als [mnode=dia] einfügst, wird sie von psmatrix vertikal zentriert, sodass der Pfeil dann auch genau in der Spitze beginnt.
Compris?

Der Rest ist eigentlich immer dieselbe Leier: Für gleiche Breiten entweder eine Tabelle oder eine \parbox nehmen, oder makebox für einzeilige Dinge.

Herbert

momo
08-11-2009, 21:42
compris - Herbert. Dann kann ich dem command RAUTE auch sicher eine feste Höhe mitgeben und alle Texte darin werden mit Centering schön positioniert, oder?

Annette

voss
08-11-2009, 22:24
Dann kann ich dem command RAUTE auch sicher eine feste Höhe mitgeben und alle Texte darin werden mit Centering schön positioniert, oder?


ja, das geht

Herbert

momo
08-11-2009, 22:37
... verrätst Du mir auch wie?

Annette

voss
08-11-2009, 22:41
... verrätst Du mir auch wie?


achso, ich dachte, du hattest schon eine Idee:


\newcommand\RAUTE[2][3cm]{\parbox[c][2cm][c]{#1}{\Centering#2}}


2cm ist die Höhe, kannst auch einen Parameter dafür festlegen.

Herbert

momo
08-11-2009, 22:50
..perfekt! (.. ja - ich hatte es mehrfach versucht - aber als Option von RAUTE, was nicht ging)

danke Dir,
Annette