我想了解是否pgfkeys
已经提供了一种方法(尽管据我所知没有记录)来获取路径中定义的键的列表,即
\pgfkeys{
/my/path/a = 1,
/my/path/b/c = x,
}
\pgfkeysdefinedat{/my/path}{\thekeyslist} % missing macro
\thekeyslist -> {a,b/c} % also acceptable with full path
% also acceptable -> {a,b}
(理想情况下,这将被打包到处理程序中/.ls=\macro
)
如果不支持,我想知道定义明确累积键名的处理程序的惯用方法是什么:
\pgfkeys{
/my/path/a/.track={code of key a},
/my/path/b/.track={code of key b},
/my/path/.ls/.get=\thekeyslist,
}
\thekeyslist -> {a,b}
其中/.track={code}
相当于/.code={code}
但具有将键名称累积到 中的副作用/.ls
。
否则,作为最后的手段,
\pgfkeys{
/my/path/a/.track={\thekeyslist}{code of key a},
/my/path/b/.track={\thekeyslist}{code of key b},
}
\thekeyslist -> {/my/path/a,/my/path/b}
答案1
土拨鼠幽灵已经开发出实验包对于一个问题topanswers.xyz/tex它可以跟踪处理程序的使用情况.code
。
代码
\documentclass{article}
\usepackage{pgf-pathology}
\usepackage[edges]{forest}
\pgfkeys{install tracking for={.code}}
\pgfkeys{
/my/path/a/.code = #1,
/my/path/b/c/.code = #1
}
\begin{document}
\FolderForestContent{/my/path/}
\bracketset{action character=@}
\begin{forest} for tree={grow'=0,folder}
@\ForestContent
\end{forest}
\end{document}