generic-math.lfg /size: 9 Kb    last modification: 2024-01-16 10:22
1-- We will add a few more examplex to this file.
2
3return {
4    name = "generic-math",
5    version = "1.00",
6    comment = "A starting point.",
7    author = "Hans Hagen & Mikael Sundqvist",
8    copyright = "ConTeXt development team",
9    mathematics = {
10        parameters = {
11            NoLimitSupFactor         = 0,
12            NoLimitSubFactor         = 900,
13            AccentBaseDepth          = 150,
14            PrimeRaisePercent        = 25,
15            PrimeShiftUp             = "SuperscriptShiftUp",
16            PrimeBaselineDropMax     = "SuperscriptBaselineDropMax",
17            PrimeShiftUpCramped      = "SuperscriptShiftUpCramped",
18            PrimeSpaceAfter          =  0,
19            PrimeWidthPercent        = 50,
20            SpaceBeforeScript        = "SpaceAfterScript",
21            NoLimitSupFactor         = 0,
22            NoLimitSubFactor         = 0,
23            AccentTopShiftUp         = 0,
24            AccentBottomShiftDown    = 0,
25            AccentBaseDepth          = 0,
26            AccentFlattenedBaseDepth = 0,
27            DelimiterPercent         =   90,
28            DelimiterShortfall       =  400,
29            DisplayOperatorMinHeight = 1800, -- XXXX in font
30        },
31        tweaks = {
32            aftercopying = {
33                {
34                    tweak = "dimensions",
35                    list  = {
36                        -- whatever
37                    },
38                },
39                presets.scripttocalligraphic {            },
40                presets.rsfstoscript         { rscale = 1 },
41                presets.rsfsuprighttoscript  { rscale = 1 },
42                presets.moderntocalligraphic { rscale = 1 },
43                presets.eulertocalligraphic  { rscale = 1 },
44                presets.xitsarabic           { rscale = 1 },
45                presets.fallbacks            { },
46                presets.moveitalics          { correct = true },
47                presets.moveitalics          { correct = true, letters = true },
48                presets.moveintegrals        { factor  = 1.5  }, -- we need to check the 1.5
49                presets.wipeanchors          { },
50                presets.wipeitalics          { },
51                {
52                    tweak = "simplifykerns",
53                },
54                presets.moveitalics {
55                    correct = true
56                },                {
57                    tweak   = "fixprimes",
58                    factor  = 0.85, -- accent base height
59                    smaller = true, -- replace multiples
60                    scale   = 0.75, -- glyph scale
61                    fake    = 0.75, -- replace multiples with this width proportion
62                 -- keep    = true, -- keep the text size prime (aka minute)
63                },
64                {
65                    tweak = "fixslashes",
66                },
67                {
68                    tweak = "fixellipses",
69                },
70                {
71                    tweak = "addbreve",
72                },
73                {
74                    tweak = "checkspacing",
75                },
76                {
77                    tweak = "addscripts",
78                },
79                {
80                    tweak = "accentdimensions",
81                    list  = { "over", "under" },
82                 -- list  = {
83                 --     [0x203E] = { factor = "over"  }, -- overbar
84                 --     [0x203E] = { factor = "under" }, -- underbar
85                 --     [0x23DE] = { factor = "over"  }, -- overbrace
86                 --     [0x23DF] = { factor = "under" }, -- underbrace
87                 --     [0x23DC] = { factor = "over"  }, -- overparent
88                 --     [0x23DD] = { factor = "under" }, -- underparent
89                 --     [0x23B4] = { factor = "over"  }, -- overbracket
90                 --     [0x23B5] = { factor = "under" }, -- underbracket
91                 -- }
92                },
93                {
94                    tweak = "checkspacing",
95                },
96                {
97                    tweak = "addscripts",
98                },
99                {
100                    tweak = "accentdimensions",
101                },
102                {
103                    tweak = "addrules",
104                },
105                {
106                    tweak = "addarrows",
107                    left  = 0.1,
108                    right = 0.1,
109                    slack = 0.20,
110                    list  = {
111                        [0x21A9] = false,
112                        [0x21AA] = false,
113                        [0x2190] = false,
114                        [0x2192] = false,
115                        [0x219E] = false,
116                        [0x21A0] = false,
117--                         [0x21A6] = false,
118--                         [0x21CB] = false,
119--                         [0x21CC] = false,
120                    }
121                },
122--                 {
123--                     tweak  = "limits",
124--                     factor = 1.5,
125--                     list   = {
126--                         [0x0222B] = true,
127--                         [0x0222C] = 1.45,
128--                         [0x0222D] = true,
129--                         [0x0222E] = true,
130--                         [0x0222F] = true,
131--                     },
132--                 },
133                {
134                    -- For upright alphabets, we unset the anchor.
135                    -- This means that accents are placed
136                    -- centered over the character
137                     tweak = "wipeanchors",
138                 --  list  = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 }, -- todo: ranges
139                     list = {
140                        "digitsbold",
141                        "digitsdoublestruck",
142                        "digitsmonospace",
143                        "digitsnormal",
144                        "digitssansserifbold",
145                        "digitssansserifnormal",
146                        "lowercasebold",
147                        "lowercaseboldfraktur",
148                        "lowercasedoublestruck",
149                        "lowercasefraktur",
150                        "lowercasegreekbold",
151                        "lowercasegreeknormal",
152                        "lowercasegreeksansserifbold",
153                        "lowercasemonospace",
154                        "lowercasenormal",
155                        "lowercasesansserifbold",
156                        "lowercasesansserifnormal",
157                        "uppercasebold",
158                        "uppercaseboldfraktur",
159                        "uppercasedoublestruck",
160                        "uppercasefraktur",
161                        "uppercasegreekbold",
162                        "uppercasegreeknormal",
163                        "uppercasegreeksansserifbold",
164                        "uppercasemonospace",
165                        "uppercasenormal", -- they are italic!
166                        "uppercasesansserifbold",
167                        "uppercasesansserifnormal",
168                    },
169                },
170                {
171                    -- For non-italic alphabets we
172                    -- remove italic correction.
173                    tweak = "wipeitalics",
174                    list  = {
175                     -- "digitsbold",
176                     -- "digitsdoublestruck",
177                     -- "digitsmonospace",
178                     -- "digitsnormal",
179                     -- "digitssansserifbold",
180                     -- "digitssansserifnormal",
181                     -- "lowercasebold",
182                     -- "lowercaseboldfraktur",
183                     -- "lowercasedoublestruck",
184                     -- "lowercasefraktur",
185                        "lowercasemonospace",
186                        "lowercasenormal",
187                     -- "lowercasesansserifbold",
188                     -- "lowercasesansserifnormal",
189                     -- "lowercasegreeknormal",
190                        "uppercasebold",
191                     -- "uppercaseboldfraktur",
192                     -- "uppercasedoublestruck",
193                     -- "uppercasefraktur",
194                     -- "uppercasegreekbold",
195                     -- "uppercasegreeknormal",
196                     -- "uppercasegreeksansserifbold",
197                        "uppercasemonospace",
198                        "uppercasesansserifbold",
199                        "uppercasesanserifnormal",
200                    },
201                 },
202             -- {
203             --     comment = "example"
204             --     tweak   = "action",
205             --     action  = function(target,original,parameters) mathematics.tweaks.fixdimensions(target, original, parameters)
206             --     list    = fixes, -- one of the parameters
207             -- },
208             -- {
209             --     comment = "example"
210             --     tweak   = "action",
211             --     action  = mathematics.tweaks.fixdimensions,
212             --     list    = fixes, -- one of the parameters
213             -- },
214                 {
215                    -- This one fakes margins to get larger/smaller accents
216                    -- with for example \widetilde.
217                    -- see lm for many examples
218                    tweak = "margins",
219                    list  = {
220                    },
221                },
222             -- {
223             --      tweak  = "fixanchors",
224             --      factor = .5,
225             -- },
226                {
227                    tweak = "addrules",
228                },
229                {
230                    tweak   = "addbars",
231                    advance = 0.1,
232                },
233                {
234                    tweak = "addactuarian",
235                },
236                {
237                    tweak = "addequals",
238                },
239                {
240                    tweak = "wipecues",
241                },
242                -- this is the mkiv section
243                {
244                    tweak   = "emulatelmtx",
245                    feature = "emulatelmtx",
246                    comment = "this is for mkiv",
247                },
248            },
249        },
250        bigslots = {
251            1, 2, 3, 4
252        },
253        alternates = {
254         -- italic = { feature = 'ss01', value = 1, comment = "Mathematical Alternative Lowercase Italic" },
255        },
256    },
257}
258