考虑一下我的母亲:
\documentclass[10pt, a4paper]{article}
\usepackage{nicematrix}
\usepackage{tikz}
\begin{document}
$\begin{pNiceMatrix}
1 & 2 & 3 & 4 \\
5 & 6 & 7 & 8 \\
9 & 0 & 1 & 2 \\
\end{pNiceMatrix}
%
\begin{pNiceMatrix}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9
\CodeAfter
\tikz \draw (2-2) circle (2mm) ;
\end{pNiceMatrix}$
\end{document}
这正是手册/文档中的示例,但遗憾的是它不起作用。(错误:
! Undefined control sequence.
l.17 \CodeAfter
)我已经尝试使用 进行编译pdflatex
,lualatex
并且xelatex
有谁知道为什么这不起作用?
(最后我希望它处于正常的数学环境中,我只是采用了内联模式,因为这离原始示例更近了一步)
编辑:当外包 tikz 部分时,它可以工作(但特别是对于宏/环境编写,这有点不方便)
答案1
您无法\CodeAfter
在 3.6 版中使用nicematrix
。它已在 3.15 版中引入。
但是,这个关键字只是一种替代语法,用于指定在 的文档中\CodeAfter
所谓的。您可以使用键(自 2.1 版起可用)来实现您的目标。code-after
nicematrix
code-after
\documentclass[10pt, a4paper]{article}
\usepackage{nicematrix}
\usepackage{tikz}
\begin{document}
$\begin{pNiceMatrix}
1 & 2 & 3 & 4 \\
5 & 6 & 7 & 8 \\
9 & 0 & 1 & 2 \\
\end{pNiceMatrix}
%
\begin{pNiceMatrix}[code-after = \tikz \draw (2-2) circle (2mm) ;]
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9
\end{pNiceMatrix}$
\end{document}
如果您决定更新nicematrix
到最新版本(4.1),您还必须更新整个 TeX 安装,因为该版本使用了最新版本的功能expl3
(现在是 LaTeX 内核的一部分)。