type-imp-plex.mkiv /size: 34 Kb    last modification: 2020-07-01 14:35
1%D \module
2%D   [       file=type-imp-plex,
3%D        version=2018.09.11,
4%D          title=\CONTEXT\ Typescript Macros,
5%D       subtitle=Plex fonts,
6%D         author={Hans Hagen & Taco Hoekwater},
7%D           date=\currentdate,
8%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
9%C
10%C This module is part of the \CONTEXT\ macro||package and is
11%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
12%C details.
13
14% Taco will make a special (more verbose) one for the ConTeXt journal! That setup will also have
15% adapted interline spacing matching the larger ascenders.
16
17%  thin, extralight, light, regular, text, medium, semibold, bold
18
19% [IBMPlexMono|IBMPlexSans|IBMPlexSerif|IBMPlexSansCondensed]-[Thin|ExtraLight|Light||Text|Medium|SemiBold|Bold].otf
20% [IBMPlexMono|IBMPlexSans|IBMPlexSerif|IBMPlexSansCondensed]-[Thin|ExtraLight|Light||Text|Medium|SemiBold|Bold]Italic.otf
21
22% [IBMPlexSans][Hebrew]-[Thin|Light||Text|Medium|SemiBold|Bold|].otf
23
24\loadtypescriptfile[bookman]
25
26\starttypescriptcollection[plex]
27
28    \definetypescriptprefix [n:plexserif]       [IBMPlexSerif]
29    \definetypescriptprefix [n:plexsans]        [IBMPlexSans]
30    \definetypescriptprefix [n:plexmono]        [IBMPlexMono]
31
32    \definetypescriptprefix [n:narrowplexserif] [IBMPlexSerif]
33    \definetypescriptprefix [n:narrowplexsans]  [IBMPlexSansCondensed]
34    \definetypescriptprefix [n:narrowplexmono]  [IBMPlexMono]
35
36    \definetypescriptprefix [f:plexserif]       [\s!default]
37    \definetypescriptprefix [f:plexsans]        [\s!default]
38    \definetypescriptprefix [f:plexmono]        [\s!none]
39
40    \definetypescriptprefix [f:narrowplexserif] [\s!default]
41    \definetypescriptprefix [f:narrowplexsans]  [\s!default]
42    \definetypescriptprefix [f:narrowplexmono]  [\s!none]
43
44    % thin
45
46    \starttypescript [\s!sans,\s!serif,\s!mono] [plex-thin] [\s!name]
47        \setups[\s!font:\s!fallback:\typescriptone]
48        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:plex\typescriptone}-thin]       [\s!features=\typescriptprefix{f:plex\typescriptone}]
49        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Italic]     [\s!file:\typescriptprefix{n:plex\typescriptone}-thinitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
50        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:plex\typescriptone}-light]      [\s!features=\typescriptprefix{f:plex\typescriptone}]
51        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-lightitalic][\s!features=\typescriptprefix{f:plex\typescriptone}]
52    \stoptypescript
53
54    % extralight
55
56    \starttypescript [\s!sans,\s!serif,\s!mono] [plex-extralight] [\s!name]
57        \setups[\s!font:\s!fallback:\typescriptone]
58        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:plex\typescriptone}-extralight]       [\s!features=\typescriptprefix{f:plex\typescriptone}]
59        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Italic]     [\s!file:\typescriptprefix{n:plex\typescriptone}-extralightitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
60        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:plex\typescriptone}-regular]          [\s!features=\typescriptprefix{f:plex\typescriptone}]
61        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-italic]           [\s!features=\typescriptprefix{f:plex\typescriptone}]
62    \stoptypescript
63
64    % light
65
66    \starttypescript [\s!sans,\s!serif,\s!mono] [plex-light] [\s!name]
67        \setups[\s!font:\s!fallback:\typescriptone]
68        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:plex\typescriptone}-light]       [\s!features=\typescriptprefix{f:plex\typescriptone}]
69        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Italic]     [\s!file:\typescriptprefix{n:plex\typescriptone}-lightitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
70        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:plex\typescriptone}-text]        [\s!features=\typescriptprefix{f:plex\typescriptone}]
71        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-textitalic]  [\s!features=\typescriptprefix{f:plex\typescriptone}]
72    \stoptypescript
73
74    % regular
75
76    \starttypescript [\s!sans,\s!serif,\s!mono] [plex] [\s!name]
77        \setups[\s!font:\s!fallback:\typescriptone]
78        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:plex\typescriptone}-regular]      [\s!features=\typescriptprefix{f:plex\typescriptone}]
79        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Italic]     [\s!file:\typescriptprefix{n:plex\typescriptone}-italic]       [\s!features=\typescriptprefix{f:plex\typescriptone}]
80        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:plex\typescriptone}-medium]       [\s!features=\typescriptprefix{f:plex\typescriptone}]
81        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-mediumitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
82    \stoptypescript
83
84    % text
85
86    \starttypescript [\s!sans,\s!serif,\s!mono] [plex-text] [\s!name]
87        \setups[\s!font:\s!fallback:\typescriptone]
88        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:plex\typescriptone}-text]         [\s!features=\typescriptprefix{f:plex\typescriptone}]
89        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Italic]     [\s!file:\typescriptprefix{n:plex\typescriptone}-textitalic]   [\s!features=\typescriptprefix{f:plex\typescriptone}]
90        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:plex\typescriptone}-semibold]       [\s!features=\typescriptprefix{f:plex\typescriptone}]
91        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-semibolditalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
92    \stoptypescript
93
94    % medium
95
96    \starttypescript [\s!sans,\s!serif,\s!mono] [plex-medium] [\s!name]
97        \setups[\s!font:\s!fallback:\typescriptone]
98        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:plex\typescriptone}-medium]       [\s!features=\typescriptprefix{f:plex\typescriptone}]
99        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Italic]     [\s!file:\typescriptprefix{n:plex\typescriptone}-mediumitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
100        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:plex\typescriptone}-bold]         [\s!features=\typescriptprefix{f:plex\typescriptone}]
101        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-bolditalic]   [\s!features=\typescriptprefix{f:plex\typescriptone}]
102    \stoptypescript
103
104    % semibold
105
106    \starttypescript [\s!sans,\s!serif,\s!mono] [plex-semibold] [\s!name]
107        \setups[\s!font:\s!fallback:\typescriptone]
108        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:plex\typescriptone}-semibold]       [\s!features=\typescriptprefix{f:plex\typescriptone}]
109        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Italic]     [\s!file:\typescriptprefix{n:plex\typescriptone}-semibolditalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
110        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:plex\typescriptone}-extra]          [\s!features=\typescriptprefix{f:plex\typescriptone}]
111        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-extraitalic]    [\s!features=\typescriptprefix{f:plex\typescriptone}]
112    \stoptypescript
113
114    % bold
115
116    \starttypescript [\s!sans,\s!serif,\s!mono] [plex-bold] [\s!name]
117        \setups[\s!font:\s!fallback:\typescriptone]
118        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:plex\typescriptone}-bold]       [\s!features=\typescriptprefix{f:plex\typescriptone}]
119        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Italic]     [\s!file:\typescriptprefix{n:plex\typescriptone}-bolditalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
120        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:plex\typescriptone}-bold]       [\s!features=\typescriptprefix{f:plex\typescriptone}]
121        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-bolditalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
122    \stoptypescript
123
124    % done
125
126    \starttypescript[plex,plex-thin,plex-extralight,plex-light,plex,plex-text,plex-medium,plex-semibold,plex-bold]
127        \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default]
128        \definetypeface [\typescriptone] [\s!ss] [\s!sans]  [\typescriptone] [\s!default]
129        \definetypeface [\typescriptone] [\s!tt] [\s!mono]  [\typescriptone] [\s!default]
130        \definetypeface [\typescriptone] [\s!mm] [\s!math]  [bookman]        [\s!default] [\s!rscale=1.03]
131    \stoptypescript
132
133    % Here's Taco's variant as used in the ConTeXt Group Journal.
134
135    \definefontfeature[plexwidened]                [extend=\luaexpr{1/0.85}] % An odd floating point number to correct monospace.
136    \definefontfeature[plexwideneddefault][default][extend=\luaexpr{1/0.85}] % An odd floating point number to correct monospace.
137
138    \definetypescriptprefix [f:scplexserif]       [plexwideneddefault]
139    \definetypescriptprefix [f:scplexsans]        [plexwideneddefault]
140    \definetypescriptprefix [f:scplexmono]        [plexwidened]
141
142    \definetypescriptprefix [f:scnarrowplexserif] [plexwideneddefault]
143    \definetypescriptprefix [f:scnarrowplexsans]  [plexwideneddefault]
144    \definetypescriptprefix [f:scnarrowplexmono]  [plexwidened]
145
146    \starttypescript [\s!sans,\s!serif,\s!mono] [ibmplex-thin] [\s!name]
147        \setups[\s!font:\s!fallback:\typescriptone]
148        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:plex\typescriptone}-thin]       [\s!features=\typescriptprefix{f:plex\typescriptone}]
149        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Italic]     [\s!file:\typescriptprefix{n:plex\typescriptone}-thinitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
150        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:plex\typescriptone}-text]       [\s!features=\typescriptprefix{f:plex\typescriptone}]
151        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-textitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
152        \edefinefontsynonym [\typescriptprefix{\typescriptone}Widened]       [\s!file:\typescriptprefix{n:plex\typescriptone}-thin]       [\s!features=\typescriptprefix{f:scplex\typescriptone}]
153        \definefontfallback[Fake\typescriptprefix{\typescriptone}Caps]       [\typescriptprefix{\typescriptone}Widened] [0x0000-0xFFFF]   [\s!rscale=0.85,method=uppercase]
154        \edefinefontsynonym [\typescriptprefix{\typescriptone}Caps]          [\s!file:\typescriptprefix{n:plex\typescriptone}-thin]       [\s!fallbacks=Fake\typescriptprefix{\typescriptone}Caps]
155    \stoptypescript
156
157    \starttypescript [\s!sans,\s!serif,\s!mono] [ibmplex-extralight] [\s!name]
158        \setups[\s!font:\s!fallback:\typescriptone]
159        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:plex\typescriptone}-extralight]       [\s!features=\typescriptprefix{f:plex\typescriptone}]
160        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Italic]     [\s!file:\typescriptprefix{n:plex\typescriptone}-extralightitalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
161        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:plex\typescriptone}-medium]           [\s!features=\typescriptprefix{f:plex\typescriptone}]
162        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-mediumitalic]     [\s!features=\typescriptprefix{f:plex\typescriptone}]
163        \edefinefontsynonym [\typescriptprefix{\typescriptone}Widened]       [\s!file:\typescriptprefix{n:plex\typescriptone}-extralight]       [\s!features=\typescriptprefix{f:scplex\typescriptone}]
164        \definefontfallback[Fake\typescriptprefix{\typescriptone}Caps]       [\typescriptprefix{\typescriptone}Widened] [0x0000-0xFFFF]         [\s!rscale=0.85,method=uppercase]
165        \edefinefontsynonym [\typescriptprefix{\typescriptone}Caps]          [\s!file:\typescriptprefix{n:plex\typescriptone}-extralight]       [\s!fallbacks=Fake\typescriptprefix{\typescriptone}Caps]
166    \stoptypescript
167
168    \starttypescript [\s!sans,\s!serif,\s!mono] [ibmplex-light] [\s!name]
169        \setups[\s!font:\s!fallback:\typescriptone]
170        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:plex\typescriptone}-light]          [\s!features=\typescriptprefix{f:plex\typescriptone}]
171        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Italic]     [\s!file:\typescriptprefix{n:plex\typescriptone}-lightitalic]    [\s!features=\typescriptprefix{f:plex\typescriptone}]
172        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:plex\typescriptone}-semibold]       [\s!features=\typescriptprefix{f:plex\typescriptone}]
173        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-semibolditalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
174        \edefinefontsynonym [\typescriptprefix{\typescriptone}Widened]       [\s!file:\typescriptprefix{n:plex\typescriptone}-light]          [\s!features=\typescriptprefix{f:scplex\typescriptone}]
175        \definefontfallback[Fake\typescriptprefix{\typescriptone}Caps]       [\typescriptprefix{\typescriptone}Widened] [0x0000-0xFFFF]       [\s!rscale=0.85,method=uppercase]
176        \edefinefontsynonym [\typescriptprefix{\typescriptone}Caps]          [\s!file:\typescriptprefix{n:plex\typescriptone}-light]          [\s!fallbacks=Fake\typescriptprefix{\typescriptone}Caps]
177    \stoptypescript
178
179    \starttypescript [\s!sans,\s!serif,\s!mono] [ibmplex] [\s!name]
180        \setups[\s!font:\s!fallback:\typescriptone]
181        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:plex\typescriptone}-regular]    [\s!features=\typescriptprefix{f:plex\typescriptone}]
182        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Italic]     [\s!file:\typescriptprefix{n:plex\typescriptone}-italic]     [\s!features=\typescriptprefix{f:plex\typescriptone}]
183        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:plex\typescriptone}-bold]       [\s!features=\typescriptprefix{f:plex\typescriptone}]
184        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:plex\typescriptone}-bolditalic] [\s!features=\typescriptprefix{f:plex\typescriptone}]
185        \edefinefontsynonym [\typescriptprefix{\typescriptone}Widened]       [\s!file:\typescriptprefix{n:plex\typescriptone}-regular]    [\s!features=\typescriptprefix{f:scplex\typescriptone}]
186        \definefontfallback[Fake\typescriptprefix{\typescriptone}Caps]       [\typescriptprefix{\typescriptone}Widened] [0x0000-0xFFFF]   [\s!rscale=0.85,method=uppercase]
187        \edefinefontsynonym [\typescriptprefix{\typescriptone}Caps]          [\s!file:\typescriptprefix{n:plex\typescriptone}-regular]    [\s!fallbacks=Fake\typescriptprefix{\typescriptone}Caps]
188    \stoptypescript
189
190    % narrow
191
192    \starttypescript [\s!sans,\s!serif,\s!mono] [ibmplexnarrow-thin] [\s!name]
193        \setups[\s!font:\s!fallback:\typescriptone]
194        \edefinefontsynonym     [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-thin]       [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
195        \edefinefontsynonym     [\typescriptprefix{\typescriptone}\s!Italic]     [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-thinitalic] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
196        \edefinefontsynonym     [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-text]       [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
197        \edefinefontsynonym     [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-textitalic] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
198        \edefinefontsynonym     [\typescriptprefix{\typescriptone}Widened]       [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-thin]       [\s!features=\typescriptprefix{f:scnarrowplex\typescriptone}]
199        \definefontfallback[Fake\typescriptprefix{\typescriptone}Caps]           [\typescriptprefix{\typescriptone}Widened] [0x0000-0xFFFF]         [\s!rscale=0.85,method=uppercase]
200        \edefinefontsynonym     [\typescriptprefix{\typescriptone}Caps]          [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-thin]       [\s!fallbacks=Fake\typescriptprefix{\typescriptone}Caps]
201    \stoptypescript
202
203    \starttypescript [\s!sans,\s!serif,\s!mono] [ibmplexnarrow-extralight] [\s!name]
204        \setups[\s!font:\s!fallback:\typescriptone]
205        \edefinefontsynonym     [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-extralight]       [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
206        \edefinefontsynonym     [\typescriptprefix{\typescriptone}\s!Italic]     [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-extralightitalic] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
207        \edefinefontsynonym     [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-medium]           [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
208        \edefinefontsynonym     [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-mediumitalic]     [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
209        \edefinefontsynonym     [\typescriptprefix{\typescriptone}Widened]       [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-extralight]       [\s!features=\typescriptprefix{f:scnarrowplex\typescriptone}]
210        \definefontfallback[Fake\typescriptprefix{\typescriptone}Caps]           [\typescriptprefix{\typescriptone}Widened] [0x0000-0xFFFF]               [\s!rscale=0.85,method=uppercase]
211        \edefinefontsynonym     [\typescriptprefix{\typescriptone}Caps]          [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-extralight]       [\s!fallbacks=Fake\typescriptprefix{\typescriptone}Caps]
212    \stoptypescript
213
214    \starttypescript [\s!sans,\s!serif,\s!mono] [ibmplexnarrow-light] [\s!name]
215        \setups[\s!font:\s!fallback:\typescriptone]
216        \edefinefontsynonym     [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-light]          [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
217        \edefinefontsynonym     [\typescriptprefix{\typescriptone}\s!Italic]     [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-lightitalic]    [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
218        \edefinefontsynonym     [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-semibold]       [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
219        \edefinefontsynonym     [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-semibolditalic] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
220        \edefinefontsynonym     [\typescriptprefix{\typescriptone}Widened]       [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-light]          [\s!features=\typescriptprefix{f:scnarrowplex\typescriptone}]
221        \definefontfallback[Fake\typescriptprefix{\typescriptone}Caps]           [\typescriptprefix{\typescriptone}Widened] [0x0000-0xFFFF]             [\s!rscale=0.85,method=uppercase]
222        \edefinefontsynonym     [\typescriptprefix{\typescriptone}Caps]          [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-light]          [\s!fallbacks=Fake\typescriptprefix{\typescriptone}Caps]
223    \stoptypescript
224
225    \starttypescript [\s!sans,\s!serif,\s!mono] [ibmplexnarrow] [\s!name]
226        \setups[\s!font:\s!fallback:\typescriptone]
227        \edefinefontsynonym     [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-regular]    [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
228        \edefinefontsynonym     [\typescriptprefix{\typescriptone}\s!Italic]     [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-italic]     [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
229        \edefinefontsynonym     [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-bold]       [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
230        \edefinefontsynonym     [\typescriptprefix{\typescriptone}\s!BoldItalic] [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-bolditalic] [\s!features=\typescriptprefix{f:narrowplex\typescriptone}]
231        \edefinefontsynonym     [\typescriptprefix{\typescriptone}Widened]       [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-regular]    [\s!features=\typescriptprefix{f:scnarrowplex\typescriptone}]
232        \definefontfallback[Fake\typescriptprefix{\typescriptone}Caps]           [\typescriptprefix{\typescriptone}Widened] [0x0000-0xFFFF]         [\s!rscale=0.85,method=uppercase]
233        \edefinefontsynonym     [\typescriptprefix{\typescriptone}Caps]          [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-regular]    [\s!fallbacks=Fake\typescriptprefix{\typescriptone}Caps]
234    \stoptypescript
235
236
237    % For now, as some day plex will have cjk, hebrew, devanagari and arabic. The abstraction is not needed but
238    % this way we can add more id needed without much code.
239
240    \definetypescriptprefix [tf:plexsans] [SansHebrewFallback]
241    \definetypescriptprefix [bf:plexsans] [SansHebrewFallbackBold]
242
243    \definetypescriptprefix [n:plexsans-hebrew] [IBMPlexSansHebrew]
244
245    \definefontfallback [SansHebrewFallback]     [SansHebrew]     [0x0590-0x05ff] [check=yes,force=no]
246    \definefontfallback [SansHebrewFallbackBold] [SansHebrewBold] [0x0590-0x05ff] [check=yes,force=no]
247
248    \starttypescript [\s!sans] [ibmplex-thin] [\s!name]
249        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:plex\typescriptone}-thin]
250                                                                             [\s!features=\typescriptprefix{f:plex\typescriptone},
251                                                                              \s!fallbacks=\typescriptprefix{tf:plex\typescriptone}]
252        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:plex\typescriptone}-text]
253                                                                             [\s!features=\typescriptprefix{f:plex\typescriptone},
254                                                                              \s!fallbacks=\typescriptprefix{bf:plex\typescriptone}]
255        \edefinefontsynonym [\typescriptprefix{\typescriptone}Hebrew]        [\s!file:\typescriptprefix{n:plex\typescriptone-hebrew}-thin]
256                                                                             [\s!features=hebrew]
257        \edefinefontsynonym [\typescriptprefix{\typescriptone}Hebrew\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone-hebrew}-text]
258                                                                             [\s!features=hebrew]
259    \stoptypescript
260
261    \starttypescript [\s!sans] [ibmplex-extralight] [\s!name]
262        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:plex\typescriptone}-extralight]
263                                                                             [\s!features=\typescriptprefix{f:plex\typescriptone},
264                                                                              \s!fallbacks=\typescriptprefix{tf:plex\typescriptone}]
265        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:plex\typescriptone}-medium]
266                                                                             [\s!features=\typescriptprefix{f:plex\typescriptone},
267                                                                              \s!fallbacks=\typescriptprefix{bf:plex\typescriptone}]
268        \edefinefontsynonym [\typescriptprefix{\typescriptone}Hebrew]        [\s!file:\typescriptprefix{n:plex\typescriptone-hebrew}-extralight]
269                                                                             [\s!features=hebrew]
270        \edefinefontsynonym [\typescriptprefix{\typescriptone}Hebrew\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone-hebrew}-medium]
271                                                                             [\s!features=hebrew]
272    \stoptypescript
273
274    \starttypescript [\s!sans] [ibmplex-light] [\s!name]
275        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:plex\typescriptone}-light]
276                                                                             [\s!features=\typescriptprefix{f:plex\typescriptone},
277                                                                              \s!fallbacks=\typescriptprefix{tf:plex\typescriptone}]
278        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:plex\typescriptone}-semibold]
279                                                                             [\s!features=\typescriptprefix{f:plex\typescriptone},
280                                                                              \s!fallbacks=\typescriptprefix{bf:plex\typescriptone}]
281        \edefinefontsynonym [\typescriptprefix{\typescriptone}Hebrew]        [\s!file:\typescriptprefix{n:plex\typescriptone-hebrew}-light]
282                                                                             [\s!features=hebrew]
283        \edefinefontsynonym [\typescriptprefix{\typescriptone}Hebrew\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone-hebrew}-semibold]
284                                                                             [\s!features=hebrew]
285    \stoptypescript
286
287    \starttypescript [\s!sans] [ibmplex] [\s!name]
288        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:plex\typescriptone}-regular]
289                                                                             [\s!features=\typescriptprefix{f:plex\typescriptone},
290                                                                              \s!fallbacks=\typescriptprefix{tf:plex\typescriptone}]
291        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:plex\typescriptone}-bold]
292                                                                             [\s!features=\typescriptprefix{f:plex\typescriptone},
293                                                                              \s!fallbacks=\typescriptprefix{bf:plex\typescriptone}]
294        \edefinefontsynonym [\typescriptprefix{\typescriptone}Hebrew]        [\s!file:\typescriptprefix{n:plex\typescriptone-hebrew}-regular]
295                                                                             [\s!features=hebrew]
296        \edefinefontsynonym [\typescriptprefix{\typescriptone}Hebrew\s!Bold] [\s!file:\typescriptprefix{n:plex\typescriptone-hebrew}-bold]
297                                                                             [\s!features=hebrew]
298    \stoptypescript
299
300    % narrow
301
302    \starttypescript [\s!sans] [ibmplexnarrow-thin] [\s!name]
303        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-thin]
304                                                                             [\s!features=\typescriptprefix{f:narrowplex\typescriptone},
305                                                                              \s!fallbacks=\typescriptprefix{tf:plex\typescriptone}]
306        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-text]
307                                                                             [\s!features=\typescriptprefix{f:narrowplex\typescriptone},
308                                                                              \s!fallbacks=\typescriptprefix{bf:plex\typescriptone}]
309        \edefinefontsynonym [\typescriptprefix{\typescriptone}Hebrew]        [\s!file:\typescriptprefix{n:narrowplex\typescriptone-hebrew}-thin]
310                                                                             [\s!features=hebrew]
311        \edefinefontsynonym [\typescriptprefix{\typescriptone}Hebrew\s!Bold] [\s!file:\typescriptprefix{n:narrowplex\typescriptone-hebrew}-text]
312                                                                             [\s!features=hebrew]
313    \stoptypescript
314
315    \starttypescript [\s!sans] [ibmplexnarrow-extralight] [\s!name]
316        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-extralight]
317                                                                             [\s!features=\typescriptprefix{f:narrowplex\typescriptone},
318                                                                              \s!fallbacks=\typescriptprefix{tf:plex\typescriptone}]
319        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-medium]
320                                                                             [\s!features=\typescriptprefix{f:narrowplex\typescriptone},
321                                                                              \s!fallbacks=\typescriptprefix{bf:plex\typescriptone}]
322        \edefinefontsynonym [\typescriptprefix{\typescriptone}Hebrew]        [\s!file:\typescriptprefix{n:narrowplex\typescriptone-hebrew}-extralight]
323                                                                             [\s!features=hebrew]
324        \edefinefontsynonym [\typescriptprefix{\typescriptone}Hebrew\s!Bold] [\s!file:\typescriptprefix{n:narrowplex\typescriptone-hebrew}-medium]
325                                                                             [\s!features=hebrew]
326    \stoptypescript
327
328    \starttypescript [\s!sans] [ibmplexnarrow-light] [\s!name]
329        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-light]
330                                                                             [\s!features=\typescriptprefix{f:narrowplex\typescriptone},
331                                                                              \s!fallbacks=\typescriptprefix{tf:plex\typescriptone}]
332        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-semibold]
333                                                                             [\s!features=\typescriptprefix{f:narrowplex\typescriptone},
334                                                                              \s!fallbacks=\typescriptprefix{bf:plex\typescriptone}]
335        \edefinefontsynonym [\typescriptprefix{\typescriptone}Hebrew]        [\s!file:\typescriptprefix{n:narrowplex\typescriptone-hebrew}-light]
336                                                                             [\s!features=hebrew]
337        \edefinefontsynonym [\typescriptprefix{\typescriptone}Hebrew\s!Bold] [\s!file:\typescriptprefix{n:narrowplex\typescriptone-hebrew}-semibold]
338                                                                             [\s!features=hebrew]
339    \stoptypescript
340
341    \starttypescript [\s!sans] [ibmplexnarrow] [\s!name]
342        \edefinefontsynonym [\typescriptprefix{\typescriptone}]              [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-regular]
343                                                                             [\s!features=\typescriptprefix{f:narrowplex\typescriptone},
344                                                                              \s!fallbacks=\typescriptprefix{tf:plex\typescriptone}]
345        \edefinefontsynonym [\typescriptprefix{\typescriptone}\s!Bold]       [\s!file:\typescriptprefix{n:narrowplex\typescriptone}-bold]
346                                                                             [\s!features=\typescriptprefix{f:narrowplex\typescriptone},
347                                                                              \s!fallbacks=\typescriptprefix{bf:plex\typescriptone}]
348        \edefinefontsynonym [\typescriptprefix{\typescriptone}Hebrew]        [\s!file:\typescriptprefix{n:narrowplex\typescriptone-hebrew}-regular]
349                                                                             [\s!features=hebrew]
350        \edefinefontsynonym [\typescriptprefix{\typescriptone}Hebrew\s!Bold] [\s!file:\typescriptprefix{n:narrowplex\typescriptone-hebrew}-bold]
351                                                                             [\s!features=hebrew]
352    \stoptypescript
353
354    % The main definition, inspired by discussion at the 2018 ConTeXt meeting after a talk by Taco. Here
355    % we default to sans serif. Taco: take your choice of math!
356
357    \starttypescript[ibmplex,ibmplex-thin,ibmplex-extralight,ibmplex-light]
358        \definetypeface [\typescriptone] [\s!ss] [\s!sans]  [\typescriptone] [\s!default]
359        \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default]
360        \definetypeface [\typescriptone] [\s!tt] [\s!mono]  [\typescriptone] [\s!default]
361        \definetypeface [\typescriptone] [\s!mm] [\s!math]  [bookman]        [\s!default] [\s!rscale=1.03]
362    \stoptypescript
363
364    \starttypescript[ibmplexnarrow,ibmplexnarrow-thin,ibmplexnarrow-extralight,ibmplexnarrow-light]
365        \definetypeface [\typescriptone] [\s!ss] [\s!sans]  [\typescriptone] [\s!default]
366        \definetypeface [\typescriptone] [\s!rm] [\s!serif] [\typescriptone] [\s!default]
367        \definetypeface [\typescriptone] [\s!tt] [\s!mono]  [\typescriptone] [\s!default]
368        \definetypeface [\typescriptone] [\s!mm] [\s!math]  [bookman]        [\s!default] [\s!rscale=1.03]
369    \stoptypescript
370
371\stoptypescriptcollection
372