-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathCampaniaGPOS.fea
46 lines (38 loc) · 2.62 KB
/
CampaniaGPOS.fea
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
# Campania
# GPOS definitions
# values are specific to font metrics
lookup symbol_spacing {
# pos @brackets <0 250 0 0>; # raise brackets to align with RNA
pos @accidentals <100 0 100 0>; # add padding around accidentals
} symbol_spacing;
@noonesuperior = [ zerosuperior twosuperior threesuperior foursuperior fivesuperior sixsuperior sevensuperior eightsuperior ninesuperior ];
# not currently used, as FreeType apparently does not support vertical positioning on macOS
# instead use substitutions with @intervalssupersuper
lookup inversion_3_pos {
# raise first superscript number when in stacks of three (643)
pos onesuperior' <0 875 0 0> @intervalssuperior @noonesuperior @intervalssubscript;
pos onesuperior' <0 875 0 0> @intervalssuperior onesuperior @intervalssuperior @intervalssubscript;
pos onesuperior onesuperior' <0 875 0 0> @noonesuperior @intervalssubscript;
pos @noonesuperior' <0 875 0 0> @noonesuperior @intervalssubscript;
pos @noonesuperior' <0 875 0 0> onesuperior @intervalssuperior @intervalssubscript;
} inversion_3_pos;
lookup inversion_2_pos {
pos onesuperior @intervalssuperior -150; # kern two-digit superscript numbers
pos onesubscript @intervalssubscript -150; # kern two-digit subscript numbers
pos @noonesuperior @intervalsstack -737; # move superscript and subscript numerals left to align under superscript numerals
pos hyphensupersuper hyphensuperior -395; # move superscript hyphen left to align under supersuper hyphen (64-53)
pos hyphensuperior hyphensubscript -395; # move subscript hyphen left to align under superscript hyphen (64-53)
} inversion_2_pos;
lookup inversion_one_pos {
pos onesuperior onesuperior @intervalsstack @intervalsstack' <-1174 0 -587 0>; # move bottom numeral of stack further left to align under second interval (?)
pos onesuperior @noonesuperior @intervalsstack @intervalsstack' <-587 0 0 0>; # move bottom numeral of stack further left to align under second interval
pos onesuperior onesuperior @intervalsstack' <-1174 0 0 0> @intervalsstack; # move numerals further left to align under two-digit numbers
pos onesuperior onesuperior @intervalsstack' <-1324 0 -737 0>; # move numerals further left to align under two-digit numbers (and fix advance?)
pos onesuperior @noonesuperior @intervalsstack' <-587 0 0 0>; # move numerals further left to align under two-digit numbers
} inversion_one_pos;
feature kern {
lookup symbol_spacing;
# lookup inversion_3_pos;
lookup inversion_2_pos;
lookup inversion_one_pos;
} kern;