답변1
항상 TikZ와 마찬가지로 이러한 다이어그램을 구성하는 방법은 매우 많습니다. 다음은 기본적인 TikZ 기능을 갖춘 두 가지입니다.
둘 다 두 개의 PGFFor 루프를 사용하지만 첫 번째는 오른쪽 아래가 회전 좌표계를 사용합니다.N번째 행과 왼쪽 아래는케이번째 열( at (\k, -\n)
사양 참조). 하지만 이는 인덱스의 첫 번째 값이 다음과 같이 평가되어야 함을 의미합니다.케이+N+ 1은 PGFFor의 키로 수행 할 수 \inteval
있습니다 .count
count = \knp from \np
\knp
N+ 각각 1케이).
두 번째 다이어그램은 행이 수평이지만 변환되지 않은 좌표계를 사용하여 다이어그램을 구성합니다.케이열은 왼쪽 아래 방향으로 유지되므로 계산이 필요합니다.엑스노드 배치 값: 2케이-N.
이전 행/열에서 화살표를 그릴 때의 조건은 이전과 마찬가지로 조금 더 복잡해졌습니다.
조건은 \ifnum…\fi
내가 좋아하지 않는 기본 TeX 제어 시퀀스로 평가되지만 이 경우 가장 간단한 도구입니다. 특히 \inteval
즉시 정수 계산을 허용하므로 와 함께 사용할 경우 더욱 그렇습니다.
암호
\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}