Resaltando bandas de una matriz con tikz.

Resaltando bandas de una matriz con tikz.

Estoy tratando de resaltar diagonales de bandas específicas de una matriz en látex usando nicematrixy tikz, pero tengo problemas para ajustar las bandas a la matriz correctamente.

¿Alguien tiene una idea de lo que estoy haciendo mal aquí? Vea el código a continuación:

\documentclass{article}
\usepackage{nicematrix}
\usepackage{tikz}
\usetikzlibrary{fit}
\usetikzlibrary{shapes.geometric}

\begin{document}

\begin{equation}
\setlength{\arraycolsep}{0pt}
\begin{bNiceArray}{ccccccc}[columns-width=auto]
d_{1}&e_{u,1}&\cdots&&&&0\\
c_{l,2}&d_{2}&e_{u,2}&\cdots&&&\vdots\\
b_{l,3}&c_{l3}&d_{3}&e_{u,3}&\cdots&&\vdots\\
a_{l,4}&b_{l,4}&c_{l,4}&d_{4}&e_{u,4}&\cdots&\vdots\\
0&&&&\ddots&&\vdots\\
\vdots&&a_{l,n-1}&b_{l,n-1}&c_{l,n-1}&d_{n-1}&e_{u,n-1}\\
\vdots&\cdots&&a_{l,n}&b_{l,n}&c_{l,n}&d_{n}\\
\CodeAfter
  \begin{tikzpicture}
  \node [draw=red, rounded corners=2pt, inner ysep = 1pt,
       rotate fit=-35, fit = (1-1) (7-7) ] {} ;
\node [trapezium, trapezium angle=55, draw=blue, inner ysep = 0pt, rounded corners=2pt,rotate fit=-35,fit= (1-2) (6-7) ]{};
\node [trapezium, trapezium angle=55, draw=green, inner xsep = 0pt,inner ysep = 0pt, rounded corners=2pt,rotate fit=-215,fit= (2-1)(4-1)(7-6)(7-4) ]{};
  \end{tikzpicture}
\end{bNiceArray}
\end{equation}

\end{document}

y terminar con una ecuación como esta:

salida de matriz de banda

Lo ideal sería que los trapecios verdes y azules encajaran perfectamente en la propia matriz y no se desbordaran.

Creo que sería útil si los anchos de columna y fila de la matriz también fueran los mismos, pero no sé cómo puedo configurarlo.

¡Gracias!

Respuesta1

Una sugerencia.

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

\begin{document}

\begin{equation}
\renewcommand{\arraystretch}{2}
\begin{bNiceArray}{ccccccc}[columns-width=auto,extra-margin=6pt]
d_{1}&e_{u,1}&\cdots&&&&0\\
c_{l,2}&d_{2}&e_{u,2}&\cdots&&&\vdots\\
b_{l,3}&c_{l3}&d_{3}&e_{u,3}&\cdots&&\vdots\\
a_{l,4}&b_{l,4}&c_{l,4}&d_{4}&e_{u,4}&\cdots&\vdots\\
0&&&&\ddots&&\vdots\\
\vdots&&a_{l,n-1}&b_{l,n-1}&c_{l,n-1}&d_{n-1}&e_{u,n-1}\\
\vdots&\cdots&&a_{l,n}&b_{l,n}&c_{l,n}&d_{n}\\
\CodeAfter
  \begin{tikzpicture} 
  \draw [red] ([yshift=-2mm]1-|1.5) -- ([yshift=-2mm]7.5-|8) |- (8-|7.5) -- (1.5-|1) |- cycle ; 
  \draw [blue] ([yshift=-1mm]1-|1.5) -- ([yshift=-1mm]7.5-|8) -- (6.5-|8) -- ([yshift=-1mm]1-|2.5) -- cycle ;
  \draw [green] ([yshift=-1mm]1.5-|1) -- ([yshift=-1mm]8-|7.5) -- ([yshift=-1mm]8-|4.5) -- (4.5-|1) -- cycle ; 
  \end{tikzpicture}
\end{bNiceArray}
\end{equation}

\end{document}

Salida del código anterior

información relacionada