Tikzpicture - Verschiebung

Tabellen und Grafiken erstellen und anordnen


Holzwurm
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Di 22. Sep 2015, 14:29

Tikzpicture - Verschiebung

Beitrag von Holzwurm »

Hallo,

folgendes Problem habe ich: In der tikz-Umgebung wird ein Text nicht zentriert in einem rectangle positioniert, wenn das Rechteck in Relation zu einer anderen node positioniert wird. Ist jemandem diesem obskure Fehler begegnet? Es scheint mir fast ein Bug zu sein. Für Lösungsvorschläge bin ich natürlich offen, wobei ein manuelles verschieben immer der Weisheit letzter Schluss sein sollte.



MFG Christoph
\documentclass[tikz]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node(a){Ein Text};
\node[right= of a](b){
	\begin{tikzpicture}
		\draw (0,0) rectangle node[pos=.5] {A} (1,1);	
	\end{tikzpicture}
	};
\end{tikzpicture}
\end{document}
Dateianhänge
Bsp.pdf
(12.38 KiB) 264-mal heruntergeladen

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

Du verwendest keinen Text sondern eine weitere tikzpicture Umgebung in dem Node. Diese und der enthaltene Node erben Optionen des äußeren Node. right=of a setzt u.a. anchor=east, was dann auch zur entsprechenden Ausrichtung des inneren Node führt.

In Deinem einfachen Beispiel kannst Du die Option zwar einfach rückgängig machen
\documentclass[tikz]{standalone}
\usetikzlibrary{positioning}
\begin{document}
\begin{tikzpicture}
\node(a){Ein Text};
\node[right= of a](b){
   \begin{tikzpicture}
      \draw (0,0) rectangle node[anchor=center] {A} (1,1);   
   \end{tikzpicture}
   };
\end{tikzpicture}
\end{document}
Aber es ist trotzdem nicht empfehlenswert eine tikzpicture Umgebung oder den \tikz Befehl in einem Node zu verwenden. Alternativen findest Du unter Wie kann ich TikZ nodes verschachteln?.

Beispiel:
\documentclass[tikz]{standalone} 
\usetikzlibrary{positioning} 
\newbox\mybox
\newcommand{\tikzBox}[2][\mybox]{%
  \sbox#1{\pgfinterruptpicture#2\endpgfinterruptpicture}}
\begin{document} 
\begin{tikzpicture} 
\node[draw](a){Ein Text};
\tikzBox{\tikz\draw (0,0) rectangle node{A} (1,1);}
\node[right= of a](b){\usebox\mybox}; 
\end{tikzpicture}
\end{document}
Gruß
Elke[/url]

Holzwurm
Forum-Newbie
Forum-Newbie
Beiträge: 2
Registriert: Di 22. Sep 2015, 14:29

Beitrag von Holzwurm »

Vielen Dank für die zahlreichen Hinweise! Die tikzbox hilft mir sehr weiter, da in meinem Fall schon ein umfangreicheres Tikzpicture in einer node positioniert werden soll.

mfg Christoph

Antworten