type-imp-cambria.mkiv /size: 4264 b    last modification: 2025-02-21 11:03
1%D \module
2%D   [       file=type-imp-cambria,
3%D        version=2007.07.30,
4%D          title=\CONTEXT\ Typescript Macros,
5%D       subtitle=Microsoft Cambria,
6%D         author=Hans Hagen,
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%D We use Dejavu as it covers wider range of monospaced glyphs.
15
16\loadtypescriptfile[dejavu]
17
18\startluacode
19 -- if CONTEXTLMTXMODE and CONTEXTLMTXMODE > 0 then
20        fonts.handlers.otf.addfeature {
21            name  = "frac",
22            type  = "substitution",
23            files = {
24                "cambria.ttc"
25            },
26            data  = {
27                [0x2044] = 0x2215,
28                [0x2215] = 0x2044,
29            }
30        }
31 -- end
32\stopluacode
33
34\starttypescriptcollection[cambria]
35
36    % \setupmathradical[\c!leftmargin=.05mq,\c!mindepth=.05mx]%
37
38    \pushglobalsetups
39        \startsetups[\s!math:cambria]
40            \setmathradicalparameter\c!leftmargin{.05mq}%
41            \setmathradicalparameter\c!mindepth  {.05mx}%
42        \stopsetups
43    \popglobalsetups
44
45    % microsoft: cambria.ttc  cambria.ttc cambriab.ttf cambriai.ttf cambriaz.ttf
46    % ascender : cambmath.ttf cambria.ttf cambriab.ttf cambriai.ttf cambriaz.ttf
47
48    \doifunknownfontfeature {cambria-math-bold} {\definefontfeature[cambria-math-bold][boldened]}
49
50    \starttypescript [\s!math] [cambria,cambria-nt]
51        \checkedmapfontsize[\typescripttwo][\s!script]      [.73]
52        \checkedmapfontsize[\typescripttwo][\s!scriptscript][.60]
53    \stoptypescript
54
55    \starttypescript [\s!math,\s!serif] [cambria,cambria-nt]
56        \doifelsefile{cambria.ttc} {
57            % microsoft cabria
58            \definefontsynonym [CambriaMath]  [\s!file:cambria.ttc(Cambria Math)]
59            \definefontsynonym [CambriaSerif] [\s!file:cambria.ttc(Cambria)]
60        } {
61            % ascender cambria
62            \definefontsynonym [CambriaMath]  [\s!file:cambmath.ttf]
63            \definefontsynonym [CambriaSerif] [\s!file:cambria.ttf]
64        }
65        \definefontsynonym [CambriaSerifBold]       [\s!file:cambriab.ttf]
66        \definefontsynonym [CambriaSerifItalic]     [\s!file:cambriai.ttf]
67        \definefontsynonym [CambriaSerifBoldItalic] [\s!file:cambriaz.ttf]
68    \stoptypescript
69
70    \starttypescript [\s!math] [cambria] [\s!name]
71        \loadfontgoodies[cambria-math]
72        \definefontsynonym [\s!MathRoman]     [CambriaMath] [\s!features={\s!math\mathsizesuffix,cambria:mathextra,mathextra},\s!goodies=cambria-math]
73        \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math\mathsizesuffix,cambria-math-bold,cambria:mathextra,mathextra},\s!goodies=cambria-math]
74    \stoptypescript
75
76    \starttypescript [\s!math] [cambria-nt] [\s!name]
77        \loadfontgoodies[cambria-math]
78        \definefontsynonym [\s!MathRoman]     [CambriaMath] [\s!features={\s!math\mathsizesuffix,cambria:mathextra,mathextra}]
79        \definefontsynonym [\s!MathRomanBold] [CambriaMath] [\s!features={\s!math\mathsizesuffix,cambria-math-bold,cambria:mathextra,mathextra}]
80    \stoptypescript
81
82    \starttypescript [\s!serif] [cambria,cambria-nt] [\s!name]
83        \setups[\s!font:\s!fallback:\s!serif]
84        \definefontsynonym [\s!Serif]           [CambriaSerif]           [\s!features=\s!default,\s!goodies=cambria]
85        \definefontsynonym [\s!SerifBold]       [CambriaSerifBold]       [\s!features=\s!default,\s!goodies=cambria]
86        \definefontsynonym [\s!SerifItalic]     [CambriaSerifItalic]     [\s!features=\s!default,\s!goodies=cambria]
87        \definefontsynonym [\s!SerifBoldItalic] [CambriaSerifBoldItalic] [\s!features=\s!default,\s!goodies=cambria]
88    \stoptypescript
89
90    \starttypescript [cambria,cambria-nt]
91        \definetypeface [\typescriptone] [\s!rm] [\s!serif] [cambria]        [\s!default]
92        \definetypeface [\typescriptone] [\s!ss] [\s!sans]  [dejavu]         [\s!default]
93        \definetypeface [\typescriptone] [\s!tt] [\s!mono]  [dejavu]         [\s!default]
94        \definetypeface [\typescriptone] [\s!mm] [\s!math]  [\typescriptone] [\s!default]
95    \stoptypescript
96
97\stoptypescriptcollection
98