Am Wed, 10 Jun 2009 08:25:23 +0100 schrieb Joseph Wright: > I wonder if the pgfkeys idea of using one macro to create and set keys > is confusing. Currently, it is what I've done in keys3: > > \keys_manage:n{ > % Some keys are created > } > \keys_manage:n{ > % Some keys are set > } > > but do other people think that strict separation: > > \keys_generate:n { > % Some keys are created > } > \keys_set:n { > % Some keys are set > } > > is clearer? Yes. > > The other question is how to make keys in this way. keys3 uses the idea > of properties: > > key name/.property = value > > for example > > \module\my~key/.tl_set:N = \l_module_my_tl, > \module\my~key/.default:n = {default} > > to create a key which will store its input in a tl. On the other hand, > template uses and "extended key-value" approach: > > key name =<type> [default] <function> > > for example: > > my key =n [default] \l_module_my_tl > > Both ideas have some good points. template keeps everything in one line, > which probably makes it easier to see what goes with what. On the other > hand, the pgfkeys approach does not need any special layout of the input > to work. > > I wonder how other people see the two schemes, and if there are other > ways that similar effects can be achieved. I would prefer the two step method -- because it probably means that you can change the default independently from the function. (I haven't never really tried to use pgfkeys because the last time I looked at it it wasn't babel safe and all the spaces in the key names in the documentation make me nervous.) -- Ulrike Fischer