Рисование линий вдоль элементов матриц

Рисование линий вдоль элементов матриц

Я хотел бы продемонстрировать специальную формулу для определителей матриц 3 на 3,http://www.purplemath.com/modules/determs2.htm. То есть

\documentclass{article}
\begin{document}
$$
\begin{array}{ccc|cc}
a & b & c & a & b\\ d & e & f & d & e\\ g & h & i & g & h  
\end{array}.
$$ 
\end{document}

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

решение1

Вот быстрый хак с использованием matrix of math nodesитикз:

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

Код

\documentclass[border=5mm,tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{matrix}
\begin{document}
    \begin{tikzpicture}[auto]
      \matrix (M)[matrix of math nodes,row sep=1cm,column sep=16mm]{
       a & b & c & a & b\\ d & e & f & d & e\\ g & h & i & g & h\\&&[blue]adi&[red]-bfg&[blue]cdh\\
       };
       \draw[blue](M-1-1)--(M-2-2)--(M-3-3)--(M-4-3);
       \draw[blue](M-1-2)--(M-2-3)--(M-3-4)--(M-4-4);
       \draw[blue](M-1-3)--(M-2-4)--(M-3-5)--(M-4-5);
    \end{tikzpicture}
\end{document}

решение2

Решение с {NiceMatrix}( nicematrix≥ 6.17 от 2023-03-31).

\documentclass{article}
\usepackage{nicematrix,tikz}

\begin{document}

\begin{center}
\NiceMatrixOptions
  { pgf-node-code = \pgfsetfillcolor{white} \pgfusepathqfill }

\pgfset{nicematrix/cell-node/.style = { inner sep = 3pt } }

\renewcommand{\arraystretch}{2}
\setlength{\tabcolsep}{3pt}
$\begin{NiceMatrix}[columns-width=auto]
 \CodeBefore [create-cell-nodes]
 \begin{tikzpicture} [blue]
   \draw (1-1.base) -- (3.5-|3.5) ; 
   \draw (1-2.base) -- (3.5-|4.5) ; 
   \draw (1-3.base) -- (3.5-|5.5) ;   
   \draw [shorten > = 1mm] (3-3) -- (4-3) ;
   \draw [shorten > = 1mm] (3-4) -- (4-4) ;
   \draw [shorten > = 1mm] (3-5) -- (4-5) ;
 \end{tikzpicture}
 \Body
   a & b & c & a & b\\ 
   d & e & f & d & e\\ 
   g & h & i & g & h\\
     &   &\color{blue}adi&\color{red}-bfg&\color{blue}cdh\\
\end{NiceMatrix}$
\end{center}

\end{document}

Вам потребуется несколько компиляций (т.к. nicematrixиспользуются узлы PGF/Tikz).

Вывод кода выше

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