在 TikZ 代码中查看\show
(和),我发现(在tikzpictures 内部) 的定义以\loggingall
\tikz@command@path
\path
\let
\let \tikz@signal@path =\tikz@signal@path
这有什么用吗?我看到的唯一可能性是\afterassignment
诡计,或者非常不太可能使用\global
。
\RequirePackage{tikz}
\makeatletter
\show\tikz@command@path
或者,这也是的定义\path
,
\documentclass{article}
\usepackage{tikz}
\begin{document}
\tikz{\show\path}
\end{document}
答案1
据我所知,这用于判断路径从哪里开始。该字符串\tikz@signal@path
再次出现在 的第 41 行tikzlibrarymatrix.code.tex
。
我对代码的解释(可能是错的!)是,使用以下选项在矩阵中构造一个单元格matrix of nodes
:
- 首先,通用矩阵代码开始设置单元。
- 执行的代码
execute at begin cell
。具体来说,matrix of nodes
就是挂钩到这个机制中。 - TikZ 尝试智能地为该单元格创建一个节点:
- 如果单元格内容以 开头,
|
那么它会创建一个新的\node
,其中包含作为选项所划定的内容|
(以及之后作为节点内容传递的任何内容); - 如果单元格以 TikZ 路径开头,则不会创建任何节点,并且单元格完全由 pgf 代码处理;
- 否则它只会创建一个包含单元格内容的节点。
- 如果单元格内容以 开头,
- PGF 继续处理细胞。
这里的问题是如何检查单元格内容是否以 TikZ 路径开头。这是通过检查\let\tikz@signal@path
内容开头是否存在来完成的。
因此,回答您的问题,\let \tikz@signal@path =\tikz@signal@path
当作为路径的一部分执行时,它不执行任何操作(有用),但可以作为向检查代码的任何东西发出的信号,表明以下代码是路径的一部分。