Antwort1
Wie immer bei TikZ gibt es unzählige Möglichkeiten, ein solches Diagramm zu erstellen. Hier sind zwei davon mit den grundlegenden Funktionen von TikZ.
Beide verwenden zwei PGFFor-Schleifen, aber die erste verwendet ein rotierendes Koordinatensystem, wobei unten rechts dieNReihe und unten links ist diekSpalte (siehe at (\k, -\n)
Spezifikation). Dies bedeutet jedoch, dass der erste Wert des Indexes ausgewertet werden muss alsk+N\inteval
+ 1, was mit oder dem count
Schlüssel von PGFFor erfolgen kann (siehe count = \knp from \np
was bedeutet, \knp
zählt vonN+ 1 für jedenk).
Das zweite Diagramm konstruiert das Diagramm mit einem untransformierten Koordinatensystem, bei dem die Zeilen horizontal sind, aber diekSpalten bleiben in der Richtung nach unten links, was eine Berechnung für dieXWert der Knotenplatzierung: 2k−N.
Die Bedingung, wann ein Pfeil aus der vorherigen Zeile/Spalte gezeichnet werden soll, ist jetzt etwas komplizierter als zuvor.
Die Bedingungen werden mit der primitiven TeX-Steuersequenz ausgewertet \ifnum…\fi
, die mir nicht gefällt, die in diesem Fall jedoch das einfachste Werkzeug ist, insbesondere in Kombination mit , \inteval
da sie die Berechnung ganzer Zahlen im laufenden Betrieb ermöglicht.
Code
\documentclass[tikz]{standalone}
\usetikzlibrary{arrows.meta, quotes}
\begin{document}
\tikzset{% settings common to both solutions
anchor=base, % nodes are aligned at their base
auto=right, % nodes along lines are placed to the right
% (all arrows are drawn reversed)
>={Stealth[round]}, % shorthand arrow tip
outer sep=+.1em, % lines connecting nodes are further away
every edge quotes/.append style={% quotes nodes are closer to the line
inner sep=+.15em, outer sep=auto}}
\tikz[x=(-45:1.5cm), y=(45:1.5cm)] % rotate and scale the coordinate system
\foreach[count/.list={\np from 1, \nm from -1}] \n in {0, ..., 5}
\foreach[count/.list={\kp from 1, \km from -1, \knp from \np}]
\k in {0, ..., \inteval{5-\n}}
\node (\k-\n) at (\k, -\n) {$A_{\knp, \k}$} % \knp = \inteval{\k+\n+1}
\ifnum\n=0
node[gray] at (\k, 1) {$k=\k$}
\fi
\ifnum\k=0
node[gray] at (-1, -\n-1) {$n=\np$}
\fi
\ifnum\inteval{\k*\n}>0
edge[<-, "$\cdot\kp$"] (\k -\nm)
edge[<-, "$\cdot\np$"] (\km-\n )
\fi;
\tikz[scale=1.5/sqrt 2] % same scale as in the previous diagram
\foreach[count/.list={\np from 2, \nm from 0}] \n in {1, ..., 6}
\foreach[count/.list={\kp from 1, \km from -1}] \k in {0, ..., \inteval{\n-1}}
\node (\k-\n) at (2*\k-\n,-\n) {$A_{\n, \k}$}
\ifnum\k=0
node[gray] at (-\n-2, -\n) {$n=\n$}
\fi
\ifnum\n=\inteval{\k+1}
node[gray] at (2*\k-\n+1, -\n+1) {$k=\k$}
\fi
\ifnum\n>2 \ifnum\k>0 \ifnum\k<\inteval{\n-1}
edge[<-, "$\cdot\kp$"] (\k -\nm)
edge[<-, "$\cdot\inteval{\n-\k}$"] (\km-\nm)
\fi\fi\fi;
\end{document}