tikz를 사용하여 LaTeX에서 이와 같은 그림을 만드는 방법은 무엇입니까?

tikz를 사용하여 LaTeX에서 이와 같은 그림을 만드는 방법은 무엇입니까?

tikz를 사용하여 LaTeX에서 이 그림을 만들고 싶습니다(그림은 책에 있음).

여기에 이미지 설명을 입력하세요

어디서부터 시작해야 할지, 어떻게 해야 할지 전혀 모르겠습니다. 도움을 주셔서 감사합니다.

답변1

항상 TikZ와 마찬가지로 이러한 다이어그램을 구성하는 방법은 매우 많습니다. 다음은 기본적인 TikZ 기능을 갖춘 두 가지입니다.

둘 다 두 개의 PGFFor 루프를 사용하지만 첫 번째는 오른쪽 아래가 회전 좌표계를 사용합니다.N번째 행과 왼쪽 아래는케이번째 열( at (\k, -\n)사양 참조). 하지만 이는 인덱스의 첫 번째 값이 다음과 같이 평가되어야 함을 의미합니다.케이+N+ 1은 PGFFor의 키로 수행 할 수 \inteval있습니다 .countcount = \knp from \np\knpN+ 각각 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}

산출

여기에 이미지 설명을 입력하세요

관련 정보