forked from pkamenarsky/formulae
-
Notifications
You must be signed in to change notification settings - Fork 0
/
StyleParams.sml
58 lines (51 loc) · 1.86 KB
/
StyleParams.sml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
signature STYLE_PARAMS =
sig
type style = BasicTypes.style
type dist = BasicTypes.dist
val xHeight: style -> dist
val MathUnit: style -> dist
val atopNum: style -> dist
val fractNum: style -> dist
val Denom: style -> dist
val Sup: bool -> style -> dist
val SubAlone: style -> dist
val SubWithSup: style -> dist
val SupDrop: style -> dist
val SubDrop: style -> dist
val Delim: style -> dist
val AxisHeight: style -> dist
val RuleThickness: style -> dist
val BigOpSupDist: style -> dist
val BigOpSubDist: style -> dist
val BigOpSupPos: style -> dist
val BigOpSubPos: style -> dist
val BigOpPadding: style -> dist
end (* signature STYLE_PARAMS *)
(*----------*)
structure StyleParams: STYLE_PARAMS =
struct
open BasicTypes
open Size; open FontParams
fun use1sy f st = f (size SY st)
fun use2sy f g = fn D => f (size SY D) | st => g (size SY st)
fun use1ex f st = f (size EX st)
fun xHeight (st: style) = abs (math_x_height (size SY st))
fun MathUnit (st: style) = math_quad (size SY st) div 18
val atopNum = use2sy num1 num3
val fractNum = use2sy num1 num2
val Denom = use2sy denom1 denom2
fun Sup true = use1sy sup3
| Sup false = use2sy sup1 sup2
val SubAlone = use1sy sub1
val SubWithSup = use1sy sub2
val SupDrop = use1sy sup_drop
val SubDrop = use1sy sub_drop
val Delim = use2sy delim1 delim2
val AxisHeight = use1sy axis_height
val RuleThickness = use1ex default_rule_thickness
val BigOpSupDist = use1ex big_op_spacing1
val BigOpSubDist = use1ex big_op_spacing2
val BigOpSupPos = use1ex big_op_spacing3
val BigOpSubPos = use1ex big_op_spacing4
val BigOpPadding = use1ex big_op_spacing5
end (* structure StyleParams *)