Как сделать такую ​​фигуру в LaTeX с помощью tikz?

Как сделать такую ​​фигуру в LaTeX с помощью tikz?

Я хотел бы сделать этот рисунок в LaTeX с помощью tikz (рисунок взят из книги):

введите описание изображения здесь

Я действительно не знаю, с чего начать и как это сделать. Спасибо за помощь.

решение1

Как всегда с TikZ, существует множество способов построить такую ​​диаграмму. Вот два из них с базовыми функциями TikZ.

Оба используют два цикла PGFFor, но первый использует вращающуюся систему координат, где направление вниз-вправонй ряд и слева внизу - этокth столбец (см. at (\k, -\n)спецификацию). Хотя это означает, что первое значение индекса должно быть оценено какк+н+ 1, что можно сделать с помощью \intevalили countклавиши из PGFFor (см., count = \knp from \npчто означает \knpотсчет отн+ 1 за каждогок).

Вторая диаграмма строит диаграмму с непреобразованной системой координат, где строки расположены горизонтально, нокстолбцы остаются в направлении вниз-влево, что требует расчетаИксзначение размещения узла: 2кн.

Условие, когда рисовать стрелку из предыдущей строки/столбца, теперь немного сложнее, чем раньше.

Условия оцениваются с помощью примитивной управляющей последовательности TeX, \ifnum…\fiкоторая мне не нравится, но в данном случае это самый простой инструмент, особенно в сочетании с , \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}

Выход

введите описание изображения здесь

Связанный контент