![pgfmanual 中可能存在的错误:带有 /.initial 处理程序的 pgfkeys 无法按预期工作](https://linux22.com/image/445375/pgfmanual%20%E4%B8%AD%E5%8F%AF%E8%83%BD%E5%AD%98%E5%9C%A8%E7%9A%84%E9%94%99%E8%AF%AF%EF%BC%9A%E5%B8%A6%E6%9C%89%20%2F.initial%20%E5%A4%84%E7%90%86%E7%A8%8B%E5%BA%8F%E7%9A%84%20pgfkeys%20%E6%97%A0%E6%B3%95%E6%8C%89%E9%A2%84%E6%9C%9F%E5%B7%A5%E4%BD%9C.png)
我对 pgfkeys 的行为感到有些惊讶。为了阐明我的观点,让我给你一个 MWE:
\documentclass{article}
\usepackage{pgfkeys}
\begin{document}
Output:
\pgfkeys{
/foo/.initial=3,
% /foo/.default=5,
/foo
}
\end{document}
查看 pgfmanual(版本 3.1.9a,第 988 页,页面顶部,第定义值键、宏键、If 键和选择键),警告包的用户pgfkeys
直接调用已初始化的键将导致它被重置为\pgfkeysnovalue
。因此,我希望在上面的代码中仅Output:
在页面上看到。
实际上,我得到的页面是Output: 3
。看来,值实际上是打印出来的与文档中的明确声明相反。
当停用注释时,不会输出任何数字。这里,该值似乎是在/foo
调用时配置的。因此,它将相当于/foo=5
并设置该值。
我不确定我是否正确理解了文档中的观点,您是否看到了差异。如果是,我会向开发人员发送一条消息,让他们修复代码或文档中的错误。
答案1
我怀疑这是一个错误,并提出了一个问题(crossref) 来提高开发人员的意识。