tikz - Angepasstes fit um nodes

Tabellen und Grafiken erstellen und anordnen


Phil100%Vol
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Mi 21. Jun 2017, 06:50

tikz - Angepasstes fit um nodes

Beitrag von Phil100%Vol »

Hallo,

ich hoffe der Titel ist halbwegs verständlich, denn mir ist nichts passendes eingefallen. Daher weis ich auch nicht so recht wonach ich suchen soll bzgl. meines Problems:

Ich habe in einer tikzpicture-Umgebung mehrere Nodes, die ich grafisch zusammenfassen möchte. Bisher mache ich das immer mit fit. Das Problem ist nun, dass immer ein viereckiger Rahmen erzeugt wird.
\documentclass{article}
	
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

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

\begin{document}

\begin{tikzpicture}
\node[draw=black](1){1};
\node[draw=black,right=of 1](2){2};
\node[draw=black,right=of 2](3){3};
\node[draw=black,below=of 1](4){4};
\node[draw=black,right=of 4](5){5};
\node[draw=black,right=of 5](6){6};

\begin{scope}[on background layer]
	\node[rectangle,draw=blue,inner sep=0.5cm,fit=(1)(4)(5)](Fit1){};
\end{scope}

\end{tikzpicture}

\end{document}
Der blaue Rahmen soll nicht die -2- umfassen, sondern lediglich 1,4 & 5.
Gerne möchte ich einen selbst gezeichneten Rahmen mit \draw von allen Linien vermeiden, damit es dynamisch bleibt (falls ich z.B. die nodes verschiebe).

Gibt es hierfür eine passende Lösung in der Art von "fit" ?

Danke und Gruß

Phil
Dateianhänge
So soll es mal aussehen
So soll es mal aussehen
Ziel fit.png (2.58 KiB) 2546 mal betrachtet

markusv
Forum-Meister
Forum-Meister
Beiträge: 947
Registriert: Do 3. Sep 2015, 17:20
Wohnort: Leipzig

Beitrag von markusv »

Moin.

Das Einzige, was mir gerade einfällt, ist 2 fits zu gestalten und per \draw dann möglichst dynamisch zu zeichnen.

Mein Ansatz:
\documentclass{article}
   
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}

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

\begin{document}

\begin{tikzpicture}
\node[draw=black](1){1};
\node[draw=black,right=of 1](2){2};
\node[draw=black,right=of 2](3){3};
\node[draw=black,below=of 1](4){4};
\node[draw=black,right=of 4](5){5};
\node[draw=black,right=of 5](6){6};

\begin{scope}[on background layer]
   \node[inner sep=0.5cm,fit=(4)(1)](Fit1){};
   \node[inner sep=0.5cm,fit=(4)(5)](Fit2){};
   \draw[blue,ultra thick] (Fit1.north west) -- (Fit1.north east) |- (Fit2.north east) |- (Fit1.south west) -- cycle;
\end{scope}

\end{tikzpicture}
\end{document}
Wäre Microsoft Word für das Schreiben von Büchern entwickelt worden,
würde es Microsoft Book heißen.

Unkomplizierte und schnelle LaTeX-Hilfe, bspw. Erstellung von Vorlagen und Bewerbungen.

Phil100%Vol
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Mi 21. Jun 2017, 06:50

Beitrag von Phil100%Vol »

Hi,

danke für den Denkanstoß :!:

Ist auf jeden Fall dynamischer!
Ich würde den Beitrag in den Status "mit Vorschlag" setzen, falls es doch noch Ideen/ Anregungen gibt.

Gruß

Bartman
Forum-Meister
Forum-Meister
Beiträge: 2466
Registriert: Do 16. Jul 2009, 21:41
Wohnort: Hessische Provinz

Beitrag von Bartman »

Das Beispiel wurde von mir nur etwas zusammengefasst:
\documentclass[tikz, border=5pt]{standalone}

\usetikzlibrary{positioning, fit}

\begin{document}
\begin{tikzpicture}
\begin{scope}[nodes=draw]
\node              (1) {1};
\node [right=of 1] (2) {2};
\node [right=of 2] (3) {3};
\node [below=of 1] (4) {4};
\node [right=of 4] (5) {5};
\node [right=of 5] (6) {6};
\end{scope}

\begin{scope}[nodes={inner sep=5mm}]
\node [fit=(4)(1)] (Fit1) {};
\node [fit=(4)(5)] (Fit2) {};
\draw [blue, ultra thick] 
	(Fit1.north west) -- (Fit1.north east) |- 
	(Fit2.north east) |- (Fit1.south west) -- cycle
;
\end{scope}
\end{tikzpicture}
\end{document}

Antworten