generic-math.lfg /size: 10 Kb    last modification: 2025-02-21 11:03
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            SpaceBeforeScript        = "SpaceAfterScript",
20            SpaceBetweenScript       = "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                {
55                    tweak = "addcomposites",
56                },
57                presets.moveitalics {
58                    correct = true
59                },                {
60                    tweak   = "fixprimes",
61                    factor  = 0.85, -- accent base height
62                    smaller = true, -- replace multiples
63                    scale   = 0.75, -- glyph scale
64                    fake    = 0.75, -- replace multiples with this width proportion
65                 -- keep    = true, -- keep the text size prime (aka minute)
66                },
67                {
68                    tweak = "fixslashes",
69                },
70                {
71                    tweak = "fixellipses",
72                },
73                {
74                    tweak = "addbreve",
75                },
76                {
77                    tweak = "checkspacing",
78                },
79                {
80                    tweak = "addscripts",
81                },
82                {
83                    tweak = "accentdimensions",
84                    list  = { "over", "under" },
85                 -- list  = {
86                 --     [0x203E] = { factor = "over"  }, -- overbar
87                 --     [0x203E] = { factor = "under" }, -- underbar
88                 --     [0x23DE] = { factor = "over"  }, -- overbrace
89                 --     [0x23DF] = { factor = "under" }, -- underbrace
90                 --     [0x23DC] = { factor = "over"  }, -- overparent
91                 --     [0x23DD] = { factor = "under" }, -- underparent
92                 --     [0x23B4] = { factor = "over"  }, -- overbracket
93                 --     [0x23B5] = { factor = "under" }, -- underbracket
94                 -- }
95                },
96                {
97                    tweak = "checkspacing",
98                },
99                {
100                    tweak = "addscripts",
101                },
102                {
103                    tweak = "accentdimensions",
104                },
105                {
106                    tweak = "addrules",
107                },
108                {
109                    tweak = "addarrows",
110                    left  = 0.1,
111                    right = 0.1,
112                    slack = 0.20,
113                    list  = {
114                        [0x21A9] = false,
115                        [0x21AA] = false,
116                        [0x2190] = false,
117                        [0x2192] = false,
118                        [0x219E] = false,
119                        [0x21A0] = false,
120--                         [0x21A6] = false,
121--                         [0x21CB] = false,
122--                         [0x21CC] = false,
123                    }
124                },
125--                 {
126--                     tweak  = "limits",
127--                     factor = 1.5,
128--                     list   = {
129--                         [0x0222B] = true,
130--                         [0x0222C] = 1.45,
131--                         [0x0222D] = true,
132--                         [0x0222E] = true,
133--                         [0x0222F] = true,
134--                     },
135--                 },
136                {
137                    -- For upright alphabets, we unset the anchor.
138                    -- This means that accents are placed
139                    -- centered over the character
140                     tweak = "wipeanchors",
141                 --  list  = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 }, -- todo: ranges
142                     list = {
143                        "digitsbold",
144                        "digitsdoublestruck",
145                        "digitsmonospace",
146                        "digitsnormal",
147                        "digitssansserifbold",
148                        "digitssansserifnormal",
149                        "lowercasebold",
150                        "lowercaseboldfraktur",
151                        "lowercasedoublestruck",
152                        "lowercasefraktur",
153                        "lowercasegreekbold",
154                        "lowercasegreeknormal",
155                        "lowercasegreeksansserifbold",
156                        "lowercasemonospace",
157                        "lowercasenormal",
158                        "lowercasesansserifbold",
159                        "lowercasesansserifnormal",
160                        "uppercasebold",
161                        "uppercaseboldfraktur",
162                        "uppercasedoublestruck",
163                        "uppercasefraktur",
164                        "uppercasegreekbold",
165                        "uppercasegreeknormal",
166                        "uppercasegreeksansserifbold",
167                        "uppercasemonospace",
168                        "uppercasenormal", -- they are italic!
169                        "uppercasesansserifbold",
170                        "uppercasesansserifnormal",
171                    },
172                },
173                {
174                    -- For non-italic alphabets we
175                    -- remove italic correction.
176                    tweak = "wipeitalics",
177                    list  = {
178                     -- "digitsbold",
179                     -- "digitsdoublestruck",
180                     -- "digitsmonospace",
181                     -- "digitsnormal",
182                     -- "digitssansserifbold",
183                     -- "digitssansserifnormal",
184                     -- "lowercasebold",
185                     -- "lowercaseboldfraktur",
186                     -- "lowercasedoublestruck",
187                     -- "lowercasefraktur",
188                        "lowercasemonospace",
189                        "lowercasenormal",
190                     -- "lowercasesansserifbold",
191                     -- "lowercasesansserifnormal",
192                     -- "lowercasegreeknormal",
193                        "uppercasebold",
194                     -- "uppercaseboldfraktur",
195                     -- "uppercasedoublestruck",
196                     -- "uppercasefraktur",
197                     -- "uppercasegreekbold",
198                     -- "uppercasegreeknormal",
199                     -- "uppercasegreeksansserifbold",
200                        "uppercasemonospace",
201                        "uppercasesansserifbold",
202                        "uppercasesanserifnormal",
203                    },
204                 },
205             -- {
206             --     comment = "example"
207             --     tweak   = "action",
208             --     action  = function(target,original,parameters) mathematics.tweaks.fixdimensions(target, original, parameters)
209             --     list    = fixes, -- one of the parameters
210             -- },
211             -- {
212             --     comment = "example"
213             --     tweak   = "action",
214             --     action  = mathematics.tweaks.fixdimensions,
215             --     list    = fixes, -- one of the parameters
216             -- },
217                 {
218                    -- This one fakes margins to get larger/smaller accents
219                    -- with for example \widetilde.
220                    -- see lm for many examples
221                    tweak = "margins",
222                    list  = {
223                    },
224                },
225             -- {
226             --      tweak  = "fixanchors",
227             --      factor = .5,
228             -- },
229                {
230                    tweak = "addrules",
231                },
232                {
233                    tweak   = "addbars",
234                    advance = 0.1,
235                },
236                {
237                    tweak = "addactuarian",
238                },
239                {
240                    tweak = "addequals",
241                },
242                {
243                    tweak = "wipecues",
244                },
245                -- this is the mkiv section
246                {
247                    tweak   = "emulatelmtx",
248                    feature = "emulatelmtx",
249                    comment = "this is for mkiv",
250                },
251            },
252        },
253        bigslots = {
254            1, 2, 3, 4
255        },
256        alternates = {
257         -- italic = { feature = 'ss01', value = 1, comment = "Mathematical Alternative Lowercase Italic" },
258        },
259    },
260}
261