[Tikz] Matrix of Math Nodes positionieren? Dringend

Tabellen und Grafiken erstellen und anordnen


BlackDevil
Forum-Century
Forum-Century
Beiträge: 107
Registriert: Di 23. Jul 2013, 11:38
Wohnort: Deutschland

[Tikz] Matrix of Math Nodes positionieren? Dringend

Beitrag von BlackDevil »

Aloah

Ich brauche am besten noch heute Abend eine Antwort ... ich möchte ein Tikz Bild zeichnen in dem eine kleine Matrix vorkommt. Kann ich die Matrix nun irgendwie im Bild verschieben?

Miniaturbeispiel:
\documentclass{scrbook}

\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
	\matrix (m)[matrix of math nodes,left delimiter=[,right delimiter={]},ampersand replacement=\&] {
	    1 \& 2 \\
	    3 \& 4 \\
	};
\end{tikzpicture}
\end{document}
Danke im voraus und Grüße :)

Studi
Forum-Century
Forum-Century
Beiträge: 185
Registriert: So 5. Jan 2014, 20:18

Beitrag von Studi »

Du kannst shift-Parameter zu den Matrix-Optionen hinzufügen:
   \matrix (m)[matrix of math nodes,left delimiter=[,right delimiter={]},ampersand replacement=\&,
      xshift=1cm, yshift=1cm] {
       1 \& 2 \\
       3 \& 4 \\
   };
Studi

BlackDevil
Forum-Century
Forum-Century
Beiträge: 107
Registriert: Di 23. Jul 2013, 11:38
Wohnort: Deutschland

Beitrag von BlackDevil »

Nice :!:

danke :)

Benutzeravatar
cgnieder
Forum-Meister
Forum-Meister
Beiträge: 730
Registriert: Fr 22. Okt 2010, 18:37
Wohnort: Herrenberg
Kontaktdaten:

Beitrag von cgnieder »

Da eine Matrix letztlich auch nur eine Node ist, kannst Du auch einfach die Koordinaten angeben, wo die Matrix platziert sein soll:
\documentclass{scrbook}

\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
\begin{tikzpicture}
  \draw[help lines] (0,0) grid (5,5) ;
  \matrix (m) at (2,3) % <<< Platzierung
    [
      matrix of math nodes,
      left delimiter=[,
      right delimiter={]},
      ampersand replacement=\&
    ]
    {
       1 \& 2 \\
       3 \& 4 \\
    } ;
\end{tikzpicture}
\end{document}
Grüße
Clemens
Paketauthor

BlackDevil
Forum-Century
Forum-Century
Beiträge: 107
Registriert: Di 23. Jul 2013, 11:38
Wohnort: Deutschland

Beitrag von BlackDevil »

@cgnieder: Das habe ich mir gedacht, kam aber irgendwie nicht auf das "at" :oops:

Tikz ist Zeitaufwändig - macht aber irgendwo Spaß und das Ergebnis überzeugt. Sieht nun so aus:
\documentclass{scrbook} 

\usepackage{tikz} 
\usetikzlibrary{matrix} 
\begin{document} 
\begin{tikzpicture}

	\matrix (m)[matrix of math nodes,left delimiter=[,right delimiter={]},xshift=0cm, yshift=0] {
	    w_{11} & w_{12} & w_{13} \\
	    w_{21} & w_{22} & w_{23} \\
	    w_{31} & w_{32} & w_{33} \\
	    w_{41} & w_{42} & w_{43} \\
	};
	\node[left of=m, xshift=-0.9cm] (a) {=};
	\node[left of=a,yshift=2cm] (b) {};
	\node[left of=a,yshift=-2cm] (c) {};
	\draw[thick,red,decorate,decoration={brace,amplitude=12pt}] (b) -- (c);
	
	\foreach \name/\y/\text in {d/1.2cm/1,e/0/2,f/-1.2cm/3}
			\node[thick,draw,circle, left of=a,xshift=-1cm,yshift=\y,scale=0.8] (\name) {$O_\text$};
	
	\foreach \name/\y/\text in {g/1.7cm/1,h/0/2,i/-1.7cm/3}
			\node[thick,draw,circle, left of=a,xshift=-2.5cm,yshift=\y,scale=0.9] (\name) {$I_\text$};
	
	\foreach \namea in {d,e,f}
		\foreach \nameb in {g,h,i}
			\draw[->] (\nameb) -- (\namea);
\end{tikzpicture}    
\end{document}
Wenn man das mal mit den relativen Koordinaten geschnallt hat ist das echt Gold wert ...

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Noch besser ist es mit der postitions library. Damit kannst du left=of m verwenden und kannst dir in der Regel Nachjustierungen mit xshift sparen, weil der tatsächliche Abstand genommen wird statt dem Abstand der Mittelpunkte.
Ein vollständiges Minimalbeispiel (VM) zu erzeugen, ist gar nicht schwer und hilft ganz oft, Fehler selber zu finden. Ohne bekommt man selten gute Antworten. Anleitungen findest du z.B. im golatex Wiki auf TeXWelt oder minimalbeipiel.de
Außerdem hilft das Lesen dieser Seite, Fragen richtig zu stellen.

BlackDevil
Forum-Century
Forum-Century
Beiträge: 107
Registriert: Di 23. Jul 2013, 11:38
Wohnort: Deutschland

Beitrag von BlackDevil »

Ich schau mir das mal. Ich vermute aber, das ich trotzdem mit xshift die Position korrigieren würde. Ansonsten weiß Latex bzw. Tikz ja nicht wo ich das Element haben möchte, außer eben Links von einem anderen Element.

sudo
Forum-Guru
Forum-Guru
Beiträge: 459
Registriert: Mi 3. Okt 2012, 11:32

Beitrag von sudo »

Den allgemeinen Abstand kannst du mit node distance einstellen. Den kannst du auch bei einem node noch einmal ändern. Da musst du AFAIR ein bisschen auf die Reihenfolge der Optionen achten.
Ein vollständiges Minimalbeispiel (VM) zu erzeugen, ist gar nicht schwer und hilft ganz oft, Fehler selber zu finden. Ohne bekommt man selten gute Antworten. Anleitungen findest du z.B. im golatex Wiki auf TeXWelt oder minimalbeipiel.de
Außerdem hilft das Lesen dieser Seite, Fragen richtig zu stellen.

BlackDevil
Forum-Century
Forum-Century
Beiträge: 107
Registriert: Di 23. Jul 2013, 11:38
Wohnort: Deutschland

Beitrag von BlackDevil »

Hmmm okay. Ich schau mir das mal an, danke :)

Ludger
Forum-Anfänger
Forum-Anfänger
Beiträge: 32
Registriert: So 29. Mai 2011, 21:48

Beitrag von Ludger »

Hübsch gemacht, das kann ich als Codeschnipsel sogar gebrauchen :). Wobei ich inhaltlich die vierte Zeile der Matrix nicht ganz verstehe :) Aber darum gehts hier ja auch nicht.

Gruß, Ludger

Antworten