tikz plot - pfade ohne kurven

Tabellen und Grafiken erstellen und anordnen


pospiech
Moderator
Moderator
Beiträge: 247
Registriert: Do 3. Jul 2008, 11:40
Wohnort: Hannover
Kontaktdaten:

tikz plot - pfade ohne kurven

Beitrag von pospiech »

Ich habe folgenden Code, der an das Diagramm im LaTeX Companion angelehnt ist (englische Ausgabe, S. 688).

Nun möchte ich aber das alle Linien unter rechten Winkeln verlaufen und nicht abgerundet werden.
Zudem funktioniert das anschließen von Kurven über einen dummy node nicht richtig. Ich wüsste daher gerne auch wie man pfade an andere pfade mittig anbindet.

Hier der Code:

Code: Alles auswählen

\documentclass[]{beamer}[2007/03/11] % 

\usepackage[latin1]{inputenc}

\usepackage{pgf}
\usepackage{tikz}
\usepgflibrary{arrows}  

\usetikzlibrary{arrows,automata}
\usetikzlibrary{positioning}

\tikzset{ >=triangle 45}
\tikzset{
    tool/.style={
           rectangle,
           rounded corners,
           draw=black, very thick,
           minimum height=2em,
           inner sep=10pt,
           text centered,           
           },
}

\tikzset{
    file/.style={
           minimum height=1em,
           inner sep=3pt,
           text centered,           
           },
}

\begin{document}
\begin{frame}
	\frametitle{Programmaufrufe - Skizze}	

\begin{tikzpicture}[->]

% tex
\node[file] (TEX) {tex};

% LaTeX 1
\node[tool, right of=TEX, node distance=2.5cm, anchor=center]%
(LATEXA) {LaTeX};

% dummy
\node[below of=LATEXA, node distance=1.5cm] (dummy) {};

% Bibtex
\node[tool, right of=dummy, node distance=4cm, anchor=center]% 
(BIBTEX) {BiBTeX};


\node[file, above of=BIBTEX, node distance=1.5cm, anchor=center]%
(BIB) {bib};

% bst
\node[file, right of=BIBTEX, node distance=2.5cm, anchor=east]%
(BST) {bst};

% LaTeX 2
\node[tool, below of=dummy, node distance=1.5cm, anchor=center]%
(LATEXB) {LaTeX};

% LaTeX 3
\node[tool, below of=LATEXB, node distance=3cm, anchor=center]%
(LATEXC) {LaTeX};

% PDF
\node[file, right of=LATEXC, node distance=4.5cm, anchor=east]%
(PDF) {pdf};

% tex -> LaTeX
\path (TEX) edge[bend left=0]  (LATEXA);

% dummy -> Bibtex
\path (dummy) edge[bend left=0]  
	node[anchor=left,above]{aux} (BIBTEX);

% bib -> Bibtex 
\path (BIB) edge[bend left=0]  (BIBTEX);

% bst -> Bibtex
\path (BST) edge[bend left=0]  (BIBTEX);

% Bibtex -> LaTeX
\path (BIBTEX) edge[out=270, in=0] node[anchor=right,below]{bbl} 
	(LATEXB);

% LaTeX -> LaTeX 
\path (LATEXA) edge[bend left=0]  (LATEXB);
 
% LaTeX -> LaTeX 
\path (LATEXB)     edge[bend left=0] 
	node[anchor=right,right]{aux} (LATEXC);

% tex -> LaTeX 
\path (TEX) edge[out=270, in=180] (LATEXB);
\path (TEX) edge[out=270, in=180] (LATEXC);

% LaTeX -> pdf
\path (LATEXC) edge[out=0, in=180] (PDF);
	
\end{tikzpicture}
\end{frame}  
\end{document}

skater
Forum-Guru
Forum-Guru
Beiträge: 356
Registriert: Do 12. Mär 2009, 14:34
Wohnort: Berlin

Beitrag von skater »

Da ich ktikz benutze, hier mal ein Vorschlag für den wichtigen Teil:

Code: Alles auswählen

\usepgflibrary{arrows}
\usetikzlibrary{arrows,automata}
\usetikzlibrary{positioning}

\tikzset{ >=triangle 45}
\tikzset{
	tool/.style={
		rectangle,
		rounded corners,
		draw,thick,
		minimum height=2em,
		inner sep=5pt,
		outer sep=2pt,
		text centered          
		}
	}
\tikzset{
	file/.style={
		minimum height=1em,
		inner sep=1pt,
		outer sep=2pt,
		text centered
		}
	}

\begin{tikzpicture}[-latex]

\node[file] (TEX) {.tex};

\node[tool, right of=TEX, node distance=2cm] (LATEXA) {LaTeX};

\node[below of=LATEXA, node distance=1.5cm] (dummy) {};

\node[tool, right of=dummy, node distance=3cm] (BIBTEX) {BiBTeX};

\node[file, above of=BIBTEX, node distance=1.5cm] (BIB) {.bib};

\node[file, right of=BIBTEX, node distance=2.5cm] (BST) {.bst};

\node[tool, below of=dummy, node distance=1.5cm] (LATEXB) {LaTeX};

\node[tool, below of=LATEXB, node distance=3cm] (LATEXC) {LaTeX};

\node[file, right of=LATEXC, node distance=3cm] (PDF) {.pdf};

\path (TEX) --  (LATEXA);

\draw (dummy) -- node[above]{.aux} (BIBTEX);

\draw (BIB) -- (BIBTEX);

\draw (BST) -- (BIBTEX);

\draw (BIBTEX) |- node[near end,below]{.bbl} (LATEXB);

\draw (LATEXA) -- (LATEXB);
 
\draw (LATEXB) -- node[right]{.aux} (LATEXC);

\draw (TEX) |- (LATEXB);
\draw (TEX) |- (LATEXC);

\draw (LATEXC) -- (PDF);

\end{tikzpicture}

Antworten