将下面树的规范包装到my binomial
定义的样式中的正确方法是什么\forestset
?为什么?
以下代码可以正常工作:
\documentclass[tikz,border=10pt]{standalone}
\usepackage{forest}
\def\p{.25}
\begin{document}
\begin{forest}
before typesetting nodes={
for tree={
if level=0{
content={1},
}{
content/.wrap pgfmath arg={#1}{content("!u")*\p},
},
}
},
[A
[B
[D
]
[E
]
]
[C
[F
]
[G
]
]
]
\end{forest}
\end{document}
而以下则不然:
\documentclass[tikz,border=10pt]{standalone}
\usepackage{forest}
\forestset{
my binomial/.style={
before typesetting nodes={
for tree={
if level=0{
content={1},
}{
content/.wrap pgfmath arg={#1}{content("!u")*\p},
},
}
},
},
}
\def\p{.25}
\begin{document}
\begin{forest}
my binomial,
[A
[B
[D
]
[E
]
]
[C
[F
]
[G
]
]
]
\end{forest}
\end{document}
具体来说,我遇到了一个Missing number, treated as zero \end{forest}
错误。我推测这与扩展有关,而我对此知之甚少。如果可能的话,我想了解这个问题,不管是否有解决方法。
答案1
定义样式会创建另一个宏参数层,因此需要将 加倍#
,如下所示:
content/.wrap pgfmath arg={##1}{content("!u")*\p},