我正在尝试使用 pgfkeys 定义带有自定义参数的命令,但我甚至无法运行 pgfmanual 中的示例:
\documentclass{article}
\usepackage{pgfkeys}
\begin{document}
\pgfkeys{/my key=hallo,/your keys/main key=something\strange,key name without path=something else}
\end{document}
! Package pgfkeys Error: I do not know the key '/my key', to which you passed '
hallo', and I am going to ignore it. Perhaps you misspelled it.
See the pgfkeys package documentation for explanation.
Type H <return> for immediate help.
...
l.4 ...range,key name without path=something else}
! Package pgfkeys Error: I do not know the key '/your keys/main key', to which
you passed 'something\strange ', and I am going to ignore it. Perhaps you missp
elled it.
See the pgfkeys package documentation for explanation.
Type H <return> for immediate help.
...
l.4 ...range,key name without path=something else}
! Package pgfkeys Error: I do not know the key '/key name without path', to whi
ch you passed 'something else', and I am going to ignore it. Perhaps you misspe
lled it.
See the pgfkeys package documentation for explanation.
Type H <return> for immediate help
这里出了什么问题?我该如何设置密钥?我在 Centos 上尝试了 PGF 2.10 和 3.0。
编辑:我忘了说我确实让第二个例子起作用了:
\pgfkeys{/my key/.code=The value is ’#1’.}
\pgfkeys{/my key=hi!}
但这超出了我的预期。pgfmanual 说“通常(但不一定)某些代码与某个键相关联。”我不想添加任何代码,我只想设置键并稍后读取它们。我怀疑这里出了其他问题。
答案1
第一个代码是如何使用键,但不知道如何定义他们:这就是为什么pgfkeys
抱怨它不知道密钥。如果您想使用密钥来存储值,请使用\pgfkeys{/my key/.initial=hallo}
初始化密钥。然后您可以使用访问密钥的值\pgfkeysvalueof{/my key}
。
如果稍后要为该键分配不同的值,您只需使用 进行设置即可\pgfkeys{/my key=bye}
。
\documentclass{article}
\usepackage{pgfkeys}
\begin{document}
\pgfkeys{/my key/.initial=hallo}
\pgfkeysvalueof{/my key}
\pgfkeys{/my key=bye}
\pgfkeysvalueof{/my key}
\end{document}
答案2
第一个“示例”并不是一个完整的示例。它仅展示了 的一个用例\pgfkeys
。
尝试下一个例子,它给出了密钥的定义/my key
并使用它:
\documentclass{article}
\usepackage{pgfkeys}
\begin{document}
\pgfkeys{/my key/.code=The value is '#1'.}
\pgfkeys{/my key=hi!}
\end{document}