我已将此代码从nicematrix
包文档中取出,移至 2021/03/10 的第 44/208 页,版本 5.12。
同时我出现了这个编译错误:为什么?(我最近在 OS W7-32bit 上更新了 MikTeX)。
\documentclass[a4paper,12pt]{article} \usepackage{nicematrix,tikz} \begin{document} $\begin{pNiceMatrix}[margin,create-medium-nodes] \Block{3-3}<\Large>{A} & & & 0 \\ & \hspace*{1cm} & & \Vdots \\ & & & 0 \\ 0 & \Cdots& 0 & 0 \CodeAfter \tikz \node [highlight = (1-1-block-medium)] {} ; \end{pNiceMatrix}$ \end{document}
! 软件包 pgfkeys 错误:我不知道您传递了“(1-1-block-medium)”的密钥“/tikz/highlight”,我将忽略它。也许您拼错了。请参阅 pgfkeys 软件包文档以获取解释。键入 H 可立即获得帮助。...
l.12 \end{pNiceMatrix} $ ?如果我必须绘制一个带有四个矩形或正方形的矩阵,其中是矩阵的元素。这可能吗?
答案1
该密钥highlight
先前已在文档(的文档nicematrix
)中定义。
对于您想要的构造,首先考虑以下矩阵。
\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}
在绘制框架之前,您必须添加空间。对于垂直空间,我使用了\vskip
一些\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}
您现在可以在 中使用 Tikz 绘制框架\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}}
$\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}
也许您希望四个蓝色框架具有同质性。在这种情况下,您应该使用medium
节点(由 创建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}}
$\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}