Add `namedinstance` property
In Fontconfig, OpenType Variation Fonts are supported in two different 'modes': Either as 'real' variable fonts with the variable
property set to 'true', or as named instances (all Variation Fonts provide at least one named instance), which can be identified as having an index
property value larger than 0xFFFF but the variable
property set to 'false'.
While it is possible to reject Variation Fonts based on the variable
property, there are difficulties to do the same for named instances: Because <rejectfont>
and <acceptfont>
only react to <match target="scan">
it is not possible to reject (or accept) named instances in application-provided Fontconfig configuration files, where recreating the cache every time the program gets called is not an option.
To solve this I suggest to add a namedinstance
property for named instances. It would then be possible to write
<selectfont>
<rejectfont>
<pattern>
<patelt name="variable"><bool>true</bool></patelt>
</pattern>
</rejectfont>
<rejectfont>
<pattern>
<patelt name="namedinstance"><bool>true</bool></patelt>
</pattern>
</rejectfont>
</selectfont>