Skip to main content
Small improvment of the code
Source Link
F. Pantigny
  • 51.9k
  • 4
  • 60
  • 99

Before drawing frames, you have to add space. For the vertical space, it's not very easy because you can'tI use struts (it would change the size of the PGF/Tikz nodes created bysome nicematrix\vskip for each cell and we will use those nodes after).

Here is a way to do that (you could also have tried to usein arraystretch\noalign).

\documentclass{standalone} \usepackage{nicematrix} \begin{document} $\left(\vcenter{\smallskip \hbox{\(\begin$\begin{NiceArraypNiceArray}{cc|cc}[margin=2pt] \noalign{\vskip\smallskipamount} \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \end\noalign{NiceArray}\)\vskip\smallskipamount} \smallskip\end{pNiceArray}\right)$   \end{document} 
\documentclass{standalone} \usepackage{nicematrix,tikz} \usetikzlibrary{fit} \begin{document}   \tikzset{highlight/.style={rectangle, draw=blue, rounded corners = 0.5 mm, inner sep=1pt, fit=#1}} $\left(\vcenter{\smallskip \hbox{\( \begin$\begin{NiceArraypNiceArray}{cc|cc}[margin=2pt] \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \CodeAfter \begin{tikzpicture} \node [highlight=(1-1)(1-2)(2-1)(2-2)] {} ; \node [highlight=(1-3)(1-4)(2-3)(2-4)] {} ; \node [highlight=(3-1)(3-2)(4-1)(4-2)] {} ; \node [highlight=(3-3)(3-4)(4-3)(4-4)] {} ; \end{tikzpicture} \end{NiceArray} \)} \smallskip}\right)$ \end{document} \documentclass{standalone} \usepackage{nicematrix,tikz} \usetikzlibrary{fit} \begin{document} \tikzset{highlight/.style={rectangle, draw=blue, rounded corners = 0.5 mm, inner sep=1pt, fit=#1}} $\left(\vcenter{\smallskip \hbox{\( \begin{NiceArray}{cc|cc\vskip\smallskipamount}[margin=2pt] \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \noalign{\vskip\smallskipamount} \CodeAfter \begin{tikzpicture} \node [highlight=(1-1)(1-2)(2-1)(2-2)] {} ; \node [highlight=(1-3)(1-4)(2-3)(2-4)] {} ; \node [highlight=(3-1)(3-2)(4-1)(4-2)] {} ; \node [highlight=(3-3)(3-4)(4-3)(4-4)] {} ; \end{tikzpicture} \end{NiceArray} \)} \smallskippNiceArray}\right)$ \end{document} 
\documentclass{standalone} \usepackage{nicematrix,tikz} \usetikzlibrary{fit} \begin{document} \tikzset{highlight/.style={rectangle, draw=blue, rounded corners = 0.5 mm, inner sep=1pt, fit=#1}}   $\left(\vcenter{\smallskip \hbox{\( \begin$\begin{NiceArraypNiceArray}{cc|cc}[margin=2pt,create-medium-nodes] \noalign{\vskip\smallskipamount} \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \noalign{\vskip\smallskipamount} \CodeAfter \begin{tikzpicture}[name suffix  = -medium] \node [highlight=(1-1)(1-2)(2-1)(2-2)] {} ; \node [highlight=(1-3)(1-4)(2-3)(2-4)] {} ; \node [highlight=(3-1)(3-2)(4-1)(4-2)] {} ; \node [highlight=(3-3)(3-4)(4-3)(4-4)] {} ; \end{tikzpicture} \end{NiceArray} \)} \smallskippNiceArray}\right)$   \end{document} 

Before drawing frames, you have to add space. For the vertical space, it's not very easy because you can't use struts (it would change the size of the PGF/Tikz nodes created by nicematrix for each cell and we will use those nodes after).

Here is a way to do that (you could also have tried to use arraystretch).

\documentclass{standalone} \usepackage{nicematrix} \begin{document} $\left(\vcenter{\smallskip \hbox{\(\begin{NiceArray}{cc|cc}[margin=2pt] \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \end{NiceArray}\)} \smallskip}\right)$ \end{document} 
\documentclass{standalone} \usepackage{nicematrix,tikz} \usetikzlibrary{fit} \begin{document}   \tikzset{highlight/.style={rectangle, draw=blue, rounded corners = 0.5 mm, inner sep=1pt, fit=#1}} $\left(\vcenter{\smallskip \hbox{\( \begin{NiceArray}{cc|cc}[margin=2pt] \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \CodeAfter \begin{tikzpicture} \node [highlight=(1-1)(1-2)(2-1)(2-2)] {} ; \node [highlight=(1-3)(1-4)(2-3)(2-4)] {} ; \node [highlight=(3-1)(3-2)(4-1)(4-2)] {} ; \node [highlight=(3-3)(3-4)(4-3)(4-4)] {} ; \end{tikzpicture} \end{NiceArray} \)} \smallskip}\right)$ \end{document} \documentclass{standalone} \usepackage{nicematrix,tikz} \usetikzlibrary{fit} \begin{document} \tikzset{highlight/.style={rectangle, draw=blue, rounded corners = 0.5 mm, inner sep=1pt, fit=#1}} $\left(\vcenter{\smallskip \hbox{\( \begin{NiceArray}{cc|cc}[margin=2pt] \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \CodeAfter \begin{tikzpicture} \node [highlight=(1-1)(1-2)(2-1)(2-2)] {} ; \node [highlight=(1-3)(1-4)(2-3)(2-4)] {} ; \node [highlight=(3-1)(3-2)(4-1)(4-2)] {} ; \node [highlight=(3-3)(3-4)(4-3)(4-4)] {} ; \end{tikzpicture} \end{NiceArray} \)} \smallskip}\right)$ \end{document} 
\documentclass{standalone} \usepackage{nicematrix,tikz} \usetikzlibrary{fit} \begin{document} \tikzset{highlight/.style={rectangle, draw=blue, rounded corners = 0.5 mm, inner sep=1pt, fit=#1}}   $\left(\vcenter{\smallskip \hbox{\( \begin{NiceArray}{cc|cc}[margin=2pt,create-medium-nodes] \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \CodeAfter \begin{tikzpicture}[name suffix  = -medium] \node [highlight=(1-1)(1-2)(2-1)(2-2)] {} ; \node [highlight=(1-3)(1-4)(2-3)(2-4)] {} ; \node [highlight=(3-1)(3-2)(4-1)(4-2)] {} ; \node [highlight=(3-3)(3-4)(4-3)(4-4)] {} ; \end{tikzpicture} \end{NiceArray} \)} \smallskip}\right)$ \end{document} 

Before drawing frames, you have to add space. For the vertical space, I use some \vskip in \noalign.

\documentclass{standalone} \usepackage{nicematrix} \begin{document} $\begin{pNiceArray}{cc|cc}[margin=2pt] \noalign{\vskip\smallskipamount} \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \noalign{\vskip\smallskipamount} \end{pNiceArray}$   \end{document} 
\documentclass{standalone} \usepackage{nicematrix,tikz} \usetikzlibrary{fit} \begin{document} \tikzset{highlight/.style={rectangle, draw=blue, rounded corners = 0.5 mm, inner sep=1pt, fit=#1}} $\begin{pNiceArray}{cc|cc}[margin=2pt] \noalign{\vskip\smallskipamount} \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \noalign{\vskip\smallskipamount} \CodeAfter \begin{tikzpicture} \node [highlight=(1-1)(1-2)(2-1)(2-2)] {} ; \node [highlight=(1-3)(1-4)(2-3)(2-4)] {} ; \node [highlight=(3-1)(3-2)(4-1)(4-2)] {} ; \node [highlight=(3-3)(3-4)(4-3)(4-4)] {} ; \end{tikzpicture} \end{pNiceArray}$ \end{document} 
\documentclass{standalone} \usepackage{nicematrix,tikz} \usetikzlibrary{fit} \begin{document} \tikzset{highlight/.style={rectangle, draw=blue, rounded corners = 0.5 mm, inner sep=1pt, fit=#1}} $\begin{pNiceArray}{cc|cc}[margin=2pt,create-medium-nodes] \noalign{\vskip\smallskipamount} \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \noalign{\vskip\smallskipamount} \CodeAfter \begin{tikzpicture}[name suffix = -medium] \node [highlight=(1-1)(1-2)(2-1)(2-2)] {} ; \node [highlight=(1-3)(1-4)(2-3)(2-4)] {} ; \node [highlight=(3-1)(3-2)(4-1)(4-2)] {} ; \node [highlight=(3-3)(3-4)(4-3)(4-4)] {} ; \end{tikzpicture} \end{pNiceArray}$   \end{document} 
Typo
Source Link
F. Pantigny
  • 51.9k
  • 4
  • 60
  • 99

For the construction you want, consider first the following matrix.

\documentclass{standalone} \usepackage{nicematrix} \begin{document} \(\begin{pNiceArray}{cc|cc} \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\ \hline 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \end{pNiceArray}\) \end{document} 

First matrix

Before drawing frames, you have to add space. For the vertical space, it's not very easy because you can't use struts (it would change the size of the PGF/Tikz nodes created by nicematrix for each cell and we will use those nodes after).

Here is a way to do that (you could also have tried to use arraystretch).

\documentclass{standalone} \usepackage{nicematrix} \begin{document} $\left(\vcenter{\smallskip \hbox{\(\begin{NiceArray}{cc|cc}[margin=2pt] \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \end{NiceArray}\)} \smallskip}\right)$ \end{document} 

Second matrix

You can now draw the frames with Tikz in the \CodeAfter.

\documentclass{standalone} \usepackage{nicematrix,tikz} \usetikzlibrary{fit} \begin{document} \tikzset{highlight/.style={rectangle, draw=blue, rounded corners = 0.5 mm, inner sep=1pt, fit=#1}} $\left(\vcenter{\smallskip \hbox{\( \begin{NiceArray}{cc|cc}[margin=2pt] \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \CodeAfter \begin{tikzpicture} \node [highlight=(1-1)(1-2)(2-1)(2-2)] {} ; \node [highlight=(1-3)(1-4)(2-3)(2-4)] {} ; \node [highlight=(3-1)(3-2)(4-1)(4-2)] {} ; \node [highlight=(3-3)(3-4)(4-3)(4-4)] {} ; \end{tikzpicture} \end{NiceArray} \)} \smallskip}\right)$ \end{document} \documentclass{standalone} \usepackage{nicematrix,tikz} \usetikzlibrary{fit} \begin{document} \tikzset{highlight/.style={rectangle, draw=blue, rounded corners = 0.5 mm, inner sep=1pt, fit=#1}} $\left(\vcenter{\smallskip \hbox{\( \begin{NiceArray}{cc|cc}[margin=2pt] \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \CodeAfter \begin{tikzpicture} \node [highlight=(1-1)(1-2)(2-1)(2-2)] {} ; \node [highlight=(1-3)(1-4)(2-3)(2-4)] {} ; \node [highlight=(3-1)(3-2)(4-1)(4-2)] {} ; \node [highlight=(3-3)(3-4)(4-3)(4-4)] {} ; \end{tikzpicture} \end{NiceArray} \)} \smallskip}\right)$ \end{document} 

Third matrix

Maybe you want homogeneity for the four blue frames. In that case, you should use the medium nodes (created by nicematrix).

\documentclass{standalone} \usepackage{nicematrix,tikz} \usetikzlibrary{fit} \begin{document} \tikzset{highlight/.style={rectangle, draw=blue, rounded corners = 0.5 mm, inner sep=1pt, fit=#1}} $\left(\vcenter{\smallskip \hbox{\( \begin{NiceArray}{cc|cc}[margin=2pt,create-medium-nodes] \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \CodeAfter \begin{tikzpicture}[name suffix = -medium] \node [highlight=(1-1)(1-2)(2-1)(2-2)] {} ; \node [highlight=(1-3)(1-4)(2-3)(2-4)] {} ; \node [highlight=(3-1)(3-2)(4-1)(4-2)] {} ; \node [highlight=(3-3)(3-4)(4-3)(4-4)] {} ; \end{tikzpicture} \end{NiceArray} \)} \smallskip}\right)$ \end{document} 

Fourth matrix


For the construction you want, consider first the following matrix.

\documentclass{standalone} \usepackage{nicematrix} \begin{document} \(\begin{pNiceArray}{cc|cc} \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\ \hline 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \end{pNiceArray}\) \end{document} 

First matrix

Before drawing frames, you have to add space. For the vertical space, it's not very easy because you can't use struts (it would change the size of the PGF/Tikz nodes created by nicematrix for each cell and we will use those nodes after).

Here is a way to do that (you could also have tried to use arraystretch).

\documentclass{standalone} \usepackage{nicematrix} \begin{document} $\left(\vcenter{\smallskip \hbox{\(\begin{NiceArray}{cc|cc}[margin=2pt] \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \end{NiceArray}\)} \smallskip}\right)$ \end{document} 

Second matrix

You can now draw the frames with Tikz in the \CodeAfter.

\documentclass{standalone} \usepackage{nicematrix,tikz} \usetikzlibrary{fit} \begin{document} \tikzset{highlight/.style={rectangle, draw=blue, rounded corners = 0.5 mm, inner sep=1pt, fit=#1}} $\left(\vcenter{\smallskip \hbox{\( \begin{NiceArray}{cc|cc}[margin=2pt] \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \CodeAfter \begin{tikzpicture} \node [highlight=(1-1)(1-2)(2-1)(2-2)] {} ; \node [highlight=(1-3)(1-4)(2-3)(2-4)] {} ; \node [highlight=(3-1)(3-2)(4-1)(4-2)] {} ; \node [highlight=(3-3)(3-4)(4-3)(4-4)] {} ; \end{tikzpicture} \end{NiceArray} \)} \smallskip}\right)$ \end{document} \documentclass{standalone} \usepackage{nicematrix,tikz} \usetikzlibrary{fit} \begin{document} \tikzset{highlight/.style={rectangle, draw=blue, rounded corners = 0.5 mm, inner sep=1pt, fit=#1}} $\left(\vcenter{\smallskip \hbox{\( \begin{NiceArray}{cc|cc}[margin=2pt] \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \CodeAfter \begin{tikzpicture} \node [highlight=(1-1)(1-2)(2-1)(2-2)] {} ; \node [highlight=(1-3)(1-4)(2-3)(2-4)] {} ; \node [highlight=(3-1)(3-2)(4-1)(4-2)] {} ; \node [highlight=(3-3)(3-4)(4-3)(4-4)] {} ; \end{tikzpicture} \end{NiceArray} \)} \smallskip}\right)$ \end{document} 

Third matrix

Maybe you want homogeneity for the four blue frames. In that case, you should use the medium nodes (created by nicematrix).

\documentclass{standalone} \usepackage{nicematrix,tikz} \usetikzlibrary{fit} \begin{document} \tikzset{highlight/.style={rectangle, draw=blue, rounded corners = 0.5 mm, inner sep=1pt, fit=#1}} $\left(\vcenter{\smallskip \hbox{\( \begin{NiceArray}{cc|cc}[margin=2pt,create-medium-nodes] \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} & A^2+B^2 & \frac{a^2+b^2}{2} \\ 0 & \frac{a^2+b^2}{2} & \frac{(a^2+b^2)^2}{A^2+B^2} & \frac{2ab}{a+b} \\[4pt] \hline \noalign{\vskip4pt} 2A^2+2B^2 & 0 & \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} \\ \frac{2ab}{a+b} & \frac{(a^2+b^2)^2}{A^2+B^2} & 0 & \frac{a^2+b^2}{2} \\ \CodeAfter \begin{tikzpicture}[name suffix = -medium] \node [highlight=(1-1)(1-2)(2-1)(2-2)] {} ; \node [highlight=(1-3)(1-4)(2-3)(2-4)] {} ; \node [highlight=(3-1)(3-2)(4-1)(4-2)] {} ; \node [highlight=(3-3)(3-4)(4-3)(4-4)] {} ; \end{tikzpicture} \end{NiceArray} \)} \smallskip}\right)$ \end{document} 

Fourth matrix

Source Link
F. Pantigny
  • 51.9k
  • 4
  • 60
  • 99

The key highlight is defined previously in the document (documentation of nicematrix).