所以不太确定如何实现这一点,到目前为止,我曾尝试使用 tikznode 来实现这一点,但没有得到我想要的效果,当然,我也不太确定自己在做什么。这是我试图获得的输出:
这是我正在使用的基本代码,没有添加任何注释:
\documentclass{article}
\usepackage{amsmath,mathrsfs}
\usepackage[usenames, dvipsnames,svgnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{intersections, decorations.pathreplacing,shapes,shapes.geometric,hobby,patterns,babel,matrix,calc}
\DeclareMathOperator{\Mat}{Mat}
\begin{document}
$L_{ij}(k) \rightarrow E_{ij}(k) = \begin{pmatrix}
1 & & & \\
& 1 & & \\
k & & \ddots & \\
& & & 1
\end{pmatrix}$
\end{document}
答案1
这是 答案的变体user121799
。
除了使用tikzmark
,还可以使用。该包提供了类似于经典环境(包 )的nicematrix
环境,但它在单元格、行和列下创建 PGF/Tikz 节点。{pNiceMatrix}
{pmatrix}
amsmath
可以按照user121799
他在回答中所做的方式将这些节点与 Tikz 一起使用。
\documentclass{article}
\usepackage{nicematrix}
\usepackage{tikz}
\begin{document}
$L_{ij}(k) \rightarrow E_{ij}(k) =
\begin{pNiceMatrix}
1 & & & \\
& 1 & & \\
k & & \ddots & \\
& & & 1
\CodeAfter
\begin{tikzpicture}
\draw[<-] (2) to[out=45,in=180] ([xshift=2.5cm]1-1)
node[right,anchor=north west,align=left,yshift=\baselineskip]{some long text\\ and more text};
\draw[<-,shorten <=3pt] (3-1.west) --++ (-0.4,0) node[left] {text};
\draw[<-,shorten <=3pt] (3-1.south) --++ (0,-0.8) node[below] {more text};
\end{tikzpicture}
\end{pNiceMatrix}$
\end{document}
由于 PGF/Tikz 节点,您需要进行多次编译。
答案2
新版本的tikzmark
即将成为标准 TeX 发行版的一部分。它包含一个命令\tikzmarknode
,可按如下方式使用:
\documentclass{article}
\usepackage{amsmath,mathrsfs}
\usepackage[usenames, dvipsnames,svgnames]{xcolor}
\usepackage{tikz}
\usetikzlibrary{tikzmark,calc}
\DeclareMathOperator{\Mat}{Mat}
\begin{document}
$L_{ij}(k) \rightarrow E_{ij}(k) = \begin{pmatrix}
\tikzmarknode{l1}{1} & & & \\
& \tikzmarknode{l2}{1} & & \\
\tikzmarknode{k}{k} & & \ddots & \\
& & & \tikzmarknode{l3}{1}
\end{pmatrix}$
\begin{tikzpicture}[overlay,remember picture]
\draw[<-] ($(l1.center)!0.5!(l2.center)$) to[out=45,in=180]
($(l1)+(2.5cm,0)$) node[right,anchor=north west,align=left,yshift=\baselineskip]{some long text\\
and more text};
\draw[<-,shorten <=3pt] (k.west) --++ (-0.4,0) node[left] {text};
\draw[<-,shorten <=3pt] (k.south) --++ (0,-0.8) node[below] {more text};
\end{tikzpicture}
\end{document}
请注意,您可能必须更新您的 TeX 发行版才能运行此功能(如果您还没有最新版本的tikzmark
库)。