![](https://secure.gravatar.com/avatar/49e63acb01f2ca80efce7eed08310ce8.jpg?s=120&d=mm&r=g)
On 3/15/2013 6:16 PM, Jonathan Barchi wrote:
On Fri, Mar 15, 2013 at 4:35 AM, Hans Hagen
wrote: On 3/15/2013 5:18 AM, Idris Samawi Hamid ادريس سماوي حامد wrote:
On Thu, 14 Mar 2013 20:08:38 -0600, Idris Samawi Hamid ادريس سماوي حامد
wrote: To round it off I guess we need a replacement for \subfs as well.
Hmm, it seems that \subfs functionality is built in through the same mechanism. Will study this some more...
yes, but there in successive calls the last one counts
\addff{x} \addff{y} \addff{z} -> z is used on top of the current font's set
\feature{x} \feature{y} \feature{y} -> all are used on top
we might end up with replacing \addff etc by one mechanisms
\feature{+someset} : add \feature{-someset} : subtract \feature{=someset} : replace
I like this proposal for its use of only a single command with the add/remove/reset in the args. If \feature ends up being too generic, maybe \fontfeature or \fontfeatureset instead?
To keep things more in-line with current ConTeXt syntax, you could do something like the following:
\feature{add=foo} \feature{subtract=bar} (or sub, remove, etc.) \feature{reset,add=baz}
Which would also allow, e.g.,
\feature{add=bar,remove=baz}
I'd like to avoid parsing as much as possible here as these are state changers. So, I made: \addfeature [f:mine] \feature[more][f:mine] \feature[+] [f:mine] \subtractfeature[f:mine] \feature[less][f:mine] \feature[-] [f:mine] \replacefeature [f:mine] \feature[new] [f:mine] \feature[=] [f:mine] \revivefeature [f:mine] \feature[old] [f:mine] \feature[default][f:mine] \resetfeature \feature[reset] so there are several ways to achieve the same (and one can use {} instead of [])
similar to how we're used to using key:value pairs in so many arguments, and being able to combine them in one function call.
Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------