Hi Wolfgang,
Good to know that, but I might have some questions.
Yes, the name of the key is “features”, the missing “s” was a typo.
When you take a look into char-def.lua you can see names certain character ranges and “range=cyrillic”
used such a name.
For a chinese font you need “range={cjkunifiedideographs,cjkunifiedideographsextensiona,…}".
Because the list with names is very long you do this setup only once with the \definefontfamilypreset
command, e.g.
\definefontfamilypreset[chinese][range={cjkunifiedideographs,cjkunifiedideographsextensiona,…}]
and load this setup when you set the font with \definefontfamilyfallback, e.g.
\definefontfamilyfallback[<typeface>][<style>][<font>][preset=chinese]
For the moment I added three presets “chinese”, “japanese” and “korean” but they need better
names, e.g. “range:chinese” because there could be also “features:chinese” etc.
The module provides keys to apply a certain font and feature for each alternative (upright, italic etc.)
of a font, a complete list with all keys is shown in the table below.
-------------------------------------------------------
| Alternative | Font | Feature |
|-----------------------------------------------------|
| tf | regularfont | regularfeatures |
| it | italicfont | italicfeatures |
| sl | slantedfont | slantedfeatures |
| bf | boldfont | boldfeatures |
| bi | bolditalicfont | bolditalicfeatures |
| bs | boldslantedfont | boldslantedfeatures |
| sc | smallcapsfont | smallcapsfeatures |
-------------------------------------------------------
The feature-keys expect the name from the \definefontfeature command, when you don’t
specify a feature to a certain alternative the value from the “features” key is used.
When you want to set a certain font for a alternative there are different ways, I’m going
to show the different ways with a few examples where I change the font for italic.
1. Use the filename of a font. With the “file:” prefix you can the tell the module
to look for a file with the given name, when the file isn’t found the font from
the tf-alternative is used. The file-method is also used when you omit the prefix.
\setupfontfamily [serif] [DejaVu Serif] [italicfont=file:dejavuserifbold]
\starttext
Regular and \it Italic
\stoptext
2. Use a certain style. When you use the “style: ”prefix the module looks for a certain
style of the requested font.
\setupfontfamily [serif] [DejaVu Serif] [italicfont=style:bolditalic]
\starttext
Regular and \it Italic
\stoptext
3. Search for a font with a certain name. When you use the “name:” prefix the module
looks for a font with the requested name. Names are internal values of a font which
is sometimes the same as the filename.
\setupfontfamily [serif] [DejaVu Serif] [italicfont=name:dejavuserifbold]
\starttext
Regular and \it Italic
\stoptext
4. Use the spec information. When you use the “spec:” prefix you can request a font
with a certain “weight” (bold or normal), “style” (italic or normal) and variant (smallcaps or normal).
\setupfontfamily [serif] [DejaVu Serif] [italicfont=spec:bold-italic]
\starttext
Regular and \it Italic
\stoptext
There is a possibility that I change the way to set font and features for alternatives
in the feature to a way which is more compact and easier to parse in Lua.
Wolfgang