PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Positionierung von Boxen mit Tikz



dr.j
23-08-2013, 18:24
Sehr geehrte LaTeX Freunde,

Ich hoffe ich breche keine wichtigen Regeln des Forums in Form und Inhalt meiner Frage, es ist allerdings das erste mal, dass ich mich aktiv beteilige und ich bin für Kritik offen. Zur Frage:

Ich habe mithilfe eines Beispiels in der Tikz Umbegung folgendes Flußdiagramm erstellt und habe drei Fragen zur Gestalung.



\documentclass[a4paper]{article}

\usepackage[english]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage[colorinlistoftodos]{todonotes}


\usepackage{tikz}
\usetikzlibrary{arrows, positioning, shadows}


\title{Your Paper}
\author{You}

\begin{document}
\begin{tikzpicture}[thick,
level 1/.style={sibling distance=70mm},
level 2/.style={sibling distance=45mm},
level 3/.style={sibling distance=20mm},
]
\node (Box 1) [
% The shape:
rectangle,
rounded corners,
minimum size=12mm, % The size (min and max):
text width=1\textwidth,
text centered, % The alignment
thick,
% The border
draw=white,
% The filling:
top color=white, % a shading that is white at the top...
bottom color=white, % and white at the bottom
]{Box 1}
%[white] %this puts all the linking lines white (if you put them in black again you see them again)
child {node (Box 2)[black,
rectangle,
rounded corners,
minimum size=12mm,
text width=14.0em,
text centered,
thick,
draw=white,
top color=white,
bottom color=white,
below=
] {Box 2}
child {node (Box 6)[black,
rectangle,
rounded corners,
minimum size=12mm,
minimum height=70mm,
text width=11.0em,
text centered,
thick,
draw=blue!50!black!50,
top color=white,
bottom color=blue!50!black!20,
below
] {Box 6}
child {node (Box 7) [black,
rectangle,
rounded corners,
minimum size=12mm,
text width=4.0em,
text centered,
thick,
draw=blue!50!black!50,
top color=white,
bottom color=blue!50!black!20,
below] {Box 7}
[transparent]
}
child {node (Box 8)[black,
rectangle,
rounded corners,
minimum size=12mm,
text width=4.0em,
text centered,
thick,
draw=blue!50!black!50,
top color=white,
bottom color=blue!50!black!20,
below] {Box 8}
[transparent]
}}
}
child {node (Box 9)[black,
rectangle,
rounded corners,
%minimum size=40mm,
minimum height=91mm,
text width=11.0em,
%text height=13.0em,
text centered,
thick,
draw=blue!50!black!50,
top color=white,
bottom color=blue!50!black!20,
below
] {Box 9}
[level 2/.style={sibling distance=20mm}]
child {node (Box 10)[black,
rectangle,
rounded corners,
minimum size=12mm,
text width=4.0em,
text centered,
thick,
draw=blue!50!black!50,
top color=white,
bottom color=blue!50!black!20,
below
] {Box 10}
[transparent]
}
child {node (Box 11)[black,
rectangle,
rounded corners,
minimum size=12mm,
text width=4.0em,
text centered,
thick,
draw=blue!50!black!50,
top color=white,
bottom color=blue!50!black!20,
below
] {Box 11}
[transparent]
}}
;
\end{tikzpicture}

\end{document}


1. Wie kann ich die Boxen 10 und 11 auf die Höhe der anderen kleinen Boxen bringen (7,8)?
2. Wie kann ich den Verbindungsstrich von Box 1 zu Box 9 an den Strich von Box 1 zu Box 2 anpassen?
3. Wie kann ich die Schrift "Box 9" mit der Schrift von "Box 6" auf einen Höhe bringen?

Vielen Dank für eure Hilfe schon im Vorraus!

Jonas

dr.j
27-08-2013, 13:38
niemand? würde mich sehr freuen auch nur zu hören wo ich mich umschauen könnte!

Gruß Jonas

esdd
28-08-2013, 17:00
Hallo,

hier ist mal ein Vorschlag, der vielleicht etwas weiter hilft:


\documentclass{scrartcl}

\usepackage{tikz}
\usetikzlibrary{fit, backgrounds}

\tikzset{
box/.style={thick,rounded corners,minimum size=12mm,text badly centered,font=\strut,below},
schattiert/.style={draw=blue!50!black!50,top color=white,bottom color=blue!50!black!20},
klein/.style={box,schattiert,text width=4em},
gross/.style={box,text width=11em,minimum height=70mm}}

\begin{document}
\begin{tikzpicture}[thick,
level 1/.style={sibling distance=70mm},
level 2/.style={sibling distance=45mm},
level 3/.style={sibling distance=20mm},
]
\node (Box 1) [box,draw=none,text width=0.8\textwidth]{Box 1}
child {node (Box 2)[box,text width=14em]{Box 2}
child{node (Box 6)[gross,schattiert]{Box 6}
child{node (Box 7)[klein]{Box 7}edge from parent[draw=none]}
child{node (Box 8)[klein]{Box 8}edge from parent[draw=none]}
}
}
child {node (Box 2a)[box]{}
child{node (Box 9)[gross]{Box 9}
child{node (Box 10)[klein]{Box 10}edge from parent[draw=none]}
child{node (Box 11)[klein]{Box 11}edge from parent[draw=none]}
edge from parent[draw=none]}
edge from parent[child anchor=north]};
%
\begin{scope}[on background layer]
\node[box,schattiert, fit=(Box 2a) (Box 9),inner sep=0pt,align=none] {};
\end{scope}
\end{tikzpicture}
\end{document}

Gruß
Elke

dr.j
29-08-2013, 18:25
Hallo Elke,

extravielen Dank!!! habe den Vorschlag von Dir übernommen und nur noch die Box 2a mit text width=11em versehen und dann die Verbindungslinie zwischen Box 1 und Box 2 mit edge from parent [child anchor=north] an die Verbindungslinie zwischen Box 1 und 2a angepasst!
Viel schöner und schlanker als mein holpriger Versuch!

Schönen Abend!

Jonas