[gelöst] Flussdiagramm mit tikz - Pfeil will nicht wie ich

Tabellen und Grafiken erstellen und anordnen


mgoe
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Fr 22. Mai 2009, 10:50

[gelöst] Flussdiagramm mit tikz - Pfeil will nicht wie ich

Beitrag von mgoe »

Hallo,

ich bin noch relativ neu in latex und schreibe gerade an meiner Projektdokumentation und wollte ein kleines Flussdiagramm erstellen.

Doch ich schaffe es nicht, das der Pfeil nach oben recht an den Elementen vorbei und nicht durch sie geht.

Hat irgendjemand eine Idee was ich falsch mache?

Hier mein kleiner Code - und im Anhang einen Screenshot, wie es jetzt aussieht.
\documentclass{scrreprt}
\usepackage{tikz}
\usepackage{pgflibraryshapes}
\usetikzlibrary{trees,arrows}

\begin{document}
 
\begin{tikzpicture}
[auto,
decision/.style={diamond, draw=blue, thick, fill=blue!20, text width=5em, text badly centered, inner sep=1pt},
block/.style ={rectangle, draw=blue, thick, fill=blue!20, text width=10em, text centered, rounded corners, minimum height=4em},
line/.style ={draw, thick, -latex',shorten >=0pt},
cloud/.style ={draw=red, thick, ellipse, fill=red!20, minimum height=4em}]
\matrix [column sep=5mm,row sep=7mm]
{
& \node [block] (write) {A}; & \\
& \node [decision] (write-done) {B}; & \\
& \node [block] (review) {D}; & \\
& \node [decision] (review-done) {E}; & \\
& \node [block] (send) {F}; & \\
};
\begin{scope}[every path/.style=line]
\path (write) -- (write-done);
\path (write-done) |- node [right] {nein} (write); % TODO fix
\path (write-done) -- node [midway] {ja} (review);
\path (review) -- (review-done);
\path (review-done) |- node [right] {nein} (write); % TODO fix
\path (review-done) -- node [midway] {ja} (send);

\end{scope}
\end{tikzpicture}

\end{document}
Ich bin für jeden Tipp sehr dankbar.

gruß
mgoe
Dateianhänge
so sieht es momentan aus
so sieht es momentan aus
doku.jpg (12.91 KiB) 3535 mal betrachtet
Zuletzt geändert von mgoe am Mo 25. Mai 2009, 10:09, insgesamt 1-mal geändert.

Benutzeravatar
Stefan Kottwitz
Admin
Admin
Beiträge: 2525
Registriert: Di 8. Jul 2008, 00:39
Kontaktdaten:

Nodes und Anker

Beitrag von Stefan Kottwitz »

Hallo mgoe,

willkommen im Forum!
Du könntest Anker verwenden:
\path (write.south) -- (write-done.north);
\path (write-done.south) -- node [midway] {ja} (review.north);
Viele Grüße,

Stefan

mgoe
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Fr 22. Mai 2009, 10:50

Beitrag von mgoe »

Hallo Stefan,

vielen Dank für deine Antwort.
habe deinen Vorschlag eingearbeitet - sieht schon fast perfekt aus.

kann ich den horizontalen Teil des Pfeiles etwas verlängern, so das sie nicht übereinander liegen?

Hier der aktualisierte Code:
\documentclass{scrreprt}
\usepackage{tikz}
\usepackage{pgflibraryshapes}
\usetikzlibrary{trees,arrows}

\begin{document}
 
\begin{tikzpicture}
[auto,
decision/.style={diamond, draw=blue, thick, fill=blue!20, text width=5em, text badly centered, inner sep=1pt},
block/.style ={rectangle, draw=blue, thick, fill=blue!20, text width=10em, text centered, rounded corners, minimum height=4em},
line/.style ={draw, thick, -latex',shorten >=0pt},
cloud/.style ={draw=red, thick, ellipse, fill=red!20, minimum height=4em}]
\matrix [column sep=5mm,row sep=7mm]
{
& \node [block] (write) {A}; & \\
& \node [decision] (write-done) {B}; & \\
& \node [block] (review) {D}; & \\
& \node [decision] (review-done) {E}; & \\
& \node [block] (send) {F}; & \\
};
\begin{scope}[every path/.style=line]
\path (write) -- (write-done);
\path (write-done.east) -| node [right] {nein} (write.east);  % TODO fix
\path (write-done) -- node [midway] {ja} (review);
\path (review) -- (review-done);
\path (review-done.east) -| node [right] {nein} (write.east); % TODO fix
\path (review-done) -- node [midway] {ja} (send);


\end{scope}
\end{tikzpicture}

\end{document}
gruß
mgoe
Dateianhänge
neue version
neue version
test.jpg (17.29 KiB) 3520 mal betrachtet

mgoe
Forum-Newbie
Forum-Newbie
Beiträge: 3
Registriert: Fr 22. Mai 2009, 10:50

Beitrag von mgoe »

habe jetzt die Lösung:
\documentclass{scrreprt}
\usepackage{tikz}
\usepackage{pgflibraryshapes}
\usetikzlibrary{trees,arrows}

\begin{document}
 
\begin{tikzpicture}
[auto,
decision/.style={diamond, draw=blue, thick, fill=blue!20, text width=5em, text badly centered, inner sep=1pt},
block/.style ={rectangle, draw=blue, thick, fill=blue!20, text width=10em, text centered, rounded corners, minimum height=4em},
line/.style ={draw, thick, -latex',shorten >=0pt},
cloud/.style ={draw=red, thick, ellipse, fill=red!20, minimum height=4em}]
\matrix [column sep=5mm,row sep=7mm]
{
& \node [block] (write) {A}; & \coordinate (dummy-write);\\
& \node [decision] (write-done) {B}; & \coordinate (dummy-write-done);\\
& \node [block] (review) {D}; & \\
& \node [decision] (review-done) {E}; & \coordinate (dummy-review-done);\\
& \node [block] (send) {F}; & \\
};
\begin{scope}[every path/.style=line, rounded corners]
\path (write) -- (write-done);
\path (write-done.east) -> node[above] {nein} (dummy-write-done.east);
\path (write-done) -- node [midway] {ja} (review);
\path (review) -- (review-done);
\path (review-done.east) -- node[above] {nein} (dummy-review-done) -- (dummy-write-done) -- (dummy-write) -- (write.east);
\path (review-done) -- node [midway] {ja} (send);
\end{scope}
\end{tikzpicture}
\end{document}
vielen dank nochmal

Antworten