Adds specialized combining ogonek glyphs

- /Aringogonek for composition Aogonek + ringnosp
- /Yogonek for composition Y + ogoneknosp
- /yogonek for composition y + ogoneknosp
- /aringogonek for composition aogonek + ringnosp

Closes #285
This commit is contained in:
Rasmus Andersson 2020-08-17 14:31:54 -07:00
parent 4ae05c12c5
commit f1275e09e9
2 changed files with 640 additions and 96 deletions

View file

@ -1,8 +1,7 @@
{
.appVersion = "1346";
DisplayStrings = (
"Quote'./space Quote/quoteright .\012Quote\"./space Quote/quotedblright .",
"/Adotmacron/Adieresismacron/uni0226 Ä/uni0230 Ö\012å/adotmacron/adieresismacron/uni0231"
"Y/space/ogonek/space/space/ogonek/ogoneknosp/space/Aogonek A/space/space/ringnosp/Aringogonek \012å/aringogonek/space y/yogonek/space Y/Yogonek"
);
classes = (
{
@ -43,13 +42,14 @@ Agrave,
Aacute,
Acircumflex,
Aring,
Aringacute,
Aringogonek,
Amacron,
Abreve,
Aogonek,
Acaron,
Adieresismacron,
Adotmacron,
Aringacute,
Adblgrave,
Ainvertedbreve,
uni0226,
@ -524,6 +524,7 @@ uni1FE8,
uni1FE9,
uni1FEA,
uni1FEB,
Yogonek,
Z,
Zacute,
Zdotaccent,
@ -564,6 +565,7 @@ aogonek,
arighthalfring,
aring,
aringacute,
aringogonek,
aringbelow,
atilde,
aturn,
@ -1003,6 +1005,7 @@ yturn,
Umacroncyrillic,
Udieresiscyrillic,
Uhungarumlautcyrillic,
yogonek,
z,
zbar,
zhook,
@ -2351,9 +2354,7 @@ locked = 1;
position = "{0, 1560}";
},
{
position = "{1102, 596}";
},
{
locked = 1;
position = "{816, -576}";
}
);
@ -2481,6 +2482,7 @@ locked = 1;
position = "{0, 1560}";
},
{
locked = 1;
position = "{816, -576}";
}
);
@ -2616,6 +2618,7 @@ position = "{1672, 2076}";
position = "{1458, 2142}";
},
{
locked = 1;
position = "{816, -576}";
}
);
@ -2750,6 +2753,7 @@ position = "{1428, 2142}";
position = "{1672, 2076}";
},
{
locked = 1;
position = "{816, -576}";
}
);
@ -2880,6 +2884,7 @@ position = "{1772, 2076}";
position = "{20, 2140}";
},
{
locked = 1;
position = "{816, -576}";
}
);
@ -3015,6 +3020,7 @@ position = "{1954, 2140}";
position = "{1772, 2076}";
},
{
locked = 1;
position = "{816, -576}";
}
);
@ -4333,6 +4339,179 @@ rightKerningGroup = A;
unicode = 00C5;
},
{
glyphname = Aringacute;
lastChange = "2019-12-17 15:13:12 +0000";
layers = (
{
components = (
{
name = A;
},
{
name = ringacute.cn;
transform = "{1, 0, 0, 1, 532, 672}";
}
);
layerId = "C698F293-3EC0-4A5A-A3A0-0FDB1F5CF265";
width = 1904;
},
{
components = (
{
name = A;
},
{
name = ringacute.cn;
transform = "{1, 0, 0, 1, 636, 592}";
}
);
layerId = "5C20EF92-B63D-42A8-8878-93C2863E0093";
width = 2240;
},
{
components = (
{
name = A;
},
{
name = ringacute.cn;
transform = "{1, 0, 0, 1, 644, 672}";
}
);
layerId = "11F4534A-B963-4AB5-820F-DAF9A20CD933";
width = 1904;
},
{
components = (
{
name = A;
},
{
name = ringacute.cn;
transform = "{1, 0, 0, 1, 736, 592}";
}
);
layerId = "D0EC06BF-13F9-4C88-A6F5-B8203AF6C77E";
width = 2240;
},
{
components = (
{
name = A;
},
{
name = ringacute.cn;
transform = "{1, 0, 0, 1, 484, 720}";
}
);
layerId = "B1F27B51-9973-4381-9301-4FE46FE1CA59";
width = 1736;
},
{
components = (
{
name = A;
},
{
name = ringacute.cn;
transform = "{1, 0, 0, 1, 604, 720}";
}
);
layerId = "200BE2C5-40F6-4CF4-AF4F-A33C0CC0964F";
width = 1736;
}
);
leftKerningGroup = A;
rightKerningGroup = A;
unicode = 01FA;
},
{
glyphname = Aringogonek;
lastChange = "2020-08-17 21:17:00 +0000";
layers = (
{
components = (
{
name = Aring;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 1270, 0}";
}
);
layerId = "B1F27B51-9973-4381-9301-4FE46FE1CA59";
width = 1736;
},
{
components = (
{
name = Aring;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 1270, 0}";
}
);
layerId = "200BE2C5-40F6-4CF4-AF4F-A33C0CC0964F";
width = 1736;
},
{
components = (
{
name = Aring;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 1232, 0}";
}
);
layerId = "C698F293-3EC0-4A5A-A3A0-0FDB1F5CF265";
width = 1904;
},
{
components = (
{
name = Aring;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 1232, 0}";
}
);
layerId = "11F4534A-B963-4AB5-820F-DAF9A20CD933";
width = 1904;
},
{
components = (
{
name = Aring;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 1468, 0}";
}
);
layerId = "5C20EF92-B63D-42A8-8878-93C2863E0093";
width = 2240;
},
{
components = (
{
name = Aring;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 1468, 0}";
}
);
layerId = "D0EC06BF-13F9-4C88-A6F5-B8203AF6C77E";
width = 2240;
}
);
leftKerningGroup = A;
rightKerningGroup = A;
},
{
glyphname = Amacron;
lastChange = "2019-12-17 15:13:12 +0000";
layers = (
@ -4855,93 +5034,6 @@ rightKerningGroup = A;
unicode = 01E0;
},
{
glyphname = Aringacute;
lastChange = "2019-12-17 15:13:12 +0000";
layers = (
{
components = (
{
name = A;
},
{
name = ringacute.cn;
transform = "{1, 0, 0, 1, 532, 672}";
}
);
layerId = "C698F293-3EC0-4A5A-A3A0-0FDB1F5CF265";
width = 1904;
},
{
components = (
{
name = A;
},
{
name = ringacute.cn;
transform = "{1, 0, 0, 1, 636, 592}";
}
);
layerId = "5C20EF92-B63D-42A8-8878-93C2863E0093";
width = 2240;
},
{
components = (
{
name = A;
},
{
name = ringacute.cn;
transform = "{1, 0, 0, 1, 644, 672}";
}
);
layerId = "11F4534A-B963-4AB5-820F-DAF9A20CD933";
width = 1904;
},
{
components = (
{
name = A;
},
{
name = ringacute.cn;
transform = "{1, 0, 0, 1, 736, 592}";
}
);
layerId = "D0EC06BF-13F9-4C88-A6F5-B8203AF6C77E";
width = 2240;
},
{
components = (
{
name = A;
},
{
name = ringacute.cn;
transform = "{1, 0, 0, 1, 484, 720}";
}
);
layerId = "B1F27B51-9973-4381-9301-4FE46FE1CA59";
width = 1736;
},
{
components = (
{
name = A;
},
{
name = ringacute.cn;
transform = "{1, 0, 0, 1, 604, 720}";
}
);
layerId = "200BE2C5-40F6-4CF4-AF4F-A33C0CC0964F";
width = 1736;
}
);
leftKerningGroup = A;
rightKerningGroup = A;
unicode = 01FA;
},
{
glyphname = Adblgrave;
lastChange = "2019-12-17 15:13:12 +0000";
layers = (
@ -56826,7 +56918,7 @@ unicode = 03A7;
{
color = (219,235,247,1);
glyphname = Y;
lastChange = "2020-02-08 20:48:41 +0000";
lastChange = "2020-08-17 21:15:50 +0000";
layers = (
{
anchors = (
@ -56839,6 +56931,10 @@ name = cross;
position = "{936, 816}";
},
{
name = ogonek;
position = "{1060, 0}";
},
{
name = tonos;
position = "{-4, 2048}";
},
@ -56893,6 +56989,10 @@ name = cross;
position = "{1076, 764}";
},
{
name = ogonek;
position = "{1352, 0}";
},
{
name = tonos;
position = "{-96, 2048}";
},
@ -56939,6 +57039,10 @@ name = cross;
position = "{944, 816}";
},
{
name = ogonek;
position = "{932, 0}";
},
{
name = tonos;
position = "{192, 2048}";
},
@ -56993,6 +57097,10 @@ name = cross;
position = "{1076, 764}";
},
{
name = ogonek;
position = "{1224, 0}";
},
{
name = tonos;
position = "{116, 2048}";
},
@ -57039,6 +57147,10 @@ name = cross;
position = "{864, 832}";
},
{
name = ogonek;
position = "{896, 0}";
},
{
name = tonos;
position = "{60, 2048}";
},
@ -57078,6 +57190,10 @@ name = cross;
position = "{876, 832}";
},
{
name = ogonek;
position = "{768, 0}";
},
{
name = tonos;
position = "{276, 2048}";
},
@ -59596,6 +59712,92 @@ rightKerningGroup = Y;
unicode = 1FEB;
},
{
glyphname = Yogonek;
lastChange = "2020-08-17 21:16:48 +0000";
layers = (
{
components = (
{
name = Y;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 522, 0}";
}
);
layerId = "B1F27B51-9973-4381-9301-4FE46FE1CA59";
width = 1728;
},
{
components = (
{
name = Y;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 522, 0}";
}
);
layerId = "200BE2C5-40F6-4CF4-AF4F-A33C0CC0964F";
width = 1728;
},
{
components = (
{
name = Y;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 460, 0}";
}
);
layerId = "C698F293-3EC0-4A5A-A3A0-0FDB1F5CF265";
width = 1872;
},
{
components = (
{
name = Y;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 460, 0}";
}
);
layerId = "11F4534A-B963-4AB5-820F-DAF9A20CD933";
width = 1872;
},
{
components = (
{
name = Y;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 644, 0}";
}
);
layerId = "5C20EF92-B63D-42A8-8878-93C2863E0093";
width = 2152;
},
{
components = (
{
name = Y;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 644, 0}";
}
);
layerId = "D0EC06BF-13F9-4C88-A6F5-B8203AF6C77E";
width = 2152;
}
);
leftKerningGroup = Y;
rightKerningGroup = Y;
},
{
color = (219,235,247,1);
glyphname = Z;
lastChange = "2019-12-17 15:13:12 +0000";
@ -65207,6 +65409,92 @@ rightKerningGroup = a;
unicode = 01FB;
},
{
glyphname = aringogonek;
lastChange = "2020-08-17 21:16:36 +0000";
layers = (
{
components = (
{
name = aring;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 870, 0}";
}
);
layerId = "B1F27B51-9973-4381-9301-4FE46FE1CA59";
width = 1524;
},
{
components = (
{
name = aring;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 870, 0}";
}
);
layerId = "200BE2C5-40F6-4CF4-AF4F-A33C0CC0964F";
width = 1524;
},
{
components = (
{
name = aring;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 772, 0}";
}
);
layerId = "C698F293-3EC0-4A5A-A3A0-0FDB1F5CF265";
width = 1588;
},
{
components = (
{
name = aring;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 772, 0}";
}
);
layerId = "11F4534A-B963-4AB5-820F-DAF9A20CD933";
width = 1588;
},
{
components = (
{
name = aring;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 832, 0}";
}
);
layerId = "5C20EF92-B63D-42A8-8878-93C2863E0093";
width = 1664;
},
{
components = (
{
name = aring;
},
{
name = ogonek;
transform = "{1, 0, 0, 1, 832, 0}";
}
);
layerId = "D0EC06BF-13F9-4C88-A6F5-B8203AF6C77E";
width = 1664;
}
);
leftKerningGroup = a;
rightKerningGroup = a;
},
{
glyphname = aringbelow;
lastChange = "2020-05-18 16:31:55 +0000";
layers = (
@ -122669,7 +122957,7 @@ unicode = 03C7;
{
color = (219,235,247,1);
glyphname = y;
lastChange = "2020-05-18 16:48:40 +0000";
lastChange = "2020-08-17 21:14:01 +0000";
layers = (
{
anchors = (
@ -122678,6 +122966,10 @@ name = bottom;
position = "{1164, -68}";
},
{
name = ogonek;
position = "{994, -576}";
},
{
name = top;
position = "{784, 1792}";
}
@ -122731,6 +123023,10 @@ name = bottom;
position = "{1390, 0}";
},
{
name = ogonek;
position = "{1114, -576}";
},
{
name = top;
position = "{848, 1792}";
}
@ -122777,6 +123073,10 @@ name = bottom;
position = "{1026, -68}";
},
{
name = ogonek;
position = "{784, -576}";
},
{
name = top;
position = "{954, 1792}";
}
@ -122829,6 +123129,10 @@ name = bottom;
position = "{1262, 0}";
},
{
name = ogonek;
position = "{934, -576}";
},
{
name = top;
position = "{1018, 1792}";
}
@ -122907,6 +123211,10 @@ name = bottom;
position = "{1016, -118}";
},
{
name = ogonek;
position = "{770, -576}";
},
{
name = top;
position = "{736, 1792}";
}
@ -122946,6 +123254,10 @@ name = bottom;
position = "{870, -118}";
},
{
name = ogonek;
position = "{570, -576}";
},
{
name = top;
position = "{906, 1792}";
}
@ -125027,6 +125339,233 @@ width = 1614;
unicode = 04F2;
},
{
glyphname = yogonek;
lastChange = "2020-08-17 21:23:38 +0000";
layers = (
{
components = (
{
name = y;
}
);
layerId = "B1F27B51-9973-4381-9301-4FE46FE1CA59";
paths = (
{
closed = 1;
nodes = (
"794 -1184 OFFCURVE",
"848 -1162 OFFCURVE",
"906 -1120 CURVE",
"868 -1068 LINE",
"820 -1104 OFFCURVE",
"782 -1120 OFFCURVE",
"722 -1120 CURVE SMOOTH",
"620 -1120 OFFCURVE",
"550 -1068 OFFCURVE",
"550 -950 CURVE SMOOTH",
"550 -826 OFFCURVE",
"632 -714 OFFCURVE",
"770 -576 CURVE",
"706 -576 LINE",
"576 -700 OFFCURVE",
"486 -804 OFFCURVE",
"486 -950 CURVE SMOOTH",
"486 -1104 OFFCURVE",
"584 -1184 OFFCURVE",
"722 -1184 CURVE SMOOTH"
);
}
);
width = 1472;
},
{
components = (
{
name = y;
}
);
layerId = "200BE2C5-40F6-4CF4-AF4F-A33C0CC0964F";
paths = (
{
closed = 1;
nodes = (
"498 -1184 OFFCURVE",
"550 -1164 OFFCURVE",
"616 -1120 CURVE",
"584 -1066 LINE",
"534 -1100 OFFCURVE",
"494 -1120 OFFCURVE",
"422 -1120 CURVE SMOOTH",
"318 -1120 OFFCURVE",
"270 -1074 OFFCURVE",
"288 -950 CURVE SMOOTH",
"306 -816 OFFCURVE",
"410 -714 OFFCURVE",
"570 -576 CURVE",
"506 -576 LINE",
"356 -700 OFFCURVE",
"250 -808 OFFCURVE",
"224 -950 CURVE SMOOTH",
"196 -1106 OFFCURVE",
"286 -1184 OFFCURVE",
"426 -1184 CURVE SMOOTH"
);
}
);
width = 1472;
},
{
components = (
{
name = y;
}
);
layerId = "C698F293-3EC0-4A5A-A3A0-0FDB1F5CF265";
paths = (
{
closed = 1;
nodes = (
"902 -1176 OFFCURVE",
"974 -1144 OFFCURVE",
"1018 -1116 CURVE",
"1002 -940 LINE",
"974 -956 OFFCURVE",
"926 -976 OFFCURVE",
"866 -976 CURVE SMOOTH",
"786 -976 OFFCURVE",
"762 -940 OFFCURVE",
"762 -880 CURVE SMOOTH",
"762 -760 OFFCURVE",
"874 -664 OFFCURVE",
"994 -576 CURVE",
"886 -492 LINE",
"622 -612 OFFCURVE",
"522 -764 OFFCURVE",
"522 -912 CURVE SMOOTH",
"522 -1084 OFFCURVE",
"642 -1176 OFFCURVE",
"806 -1176 CURVE SMOOTH"
);
}
);
width = 1568;
},
{
components = (
{
name = y;
}
);
layerId = "11F4534A-B963-4AB5-820F-DAF9A20CD933";
paths = (
{
closed = 1;
nodes = (
"592 -1176 OFFCURVE",
"672 -1144 OFFCURVE",
"720 -1116 CURVE",
"732 -940 LINE",
"700 -956 OFFCURVE",
"652 -976 OFFCURVE",
"592 -976 CURVE SMOOTH",
"512 -976 OFFCURVE",
"492 -940 OFFCURVE",
"504 -880 CURVE SMOOTH",
"524 -760 OFFCURVE",
"652 -664 OFFCURVE",
"784 -576 CURVE",
"692 -492 LINE",
"408 -612 OFFCURVE",
"280 -764 OFFCURVE",
"256 -912 CURVE SMOOTH",
"228 -1084 OFFCURVE",
"332 -1176 OFFCURVE",
"496 -1176 CURVE SMOOTH"
);
}
);
width = 1568;
},
{
components = (
{
name = y;
}
);
layerId = "5C20EF92-B63D-42A8-8878-93C2863E0093";
paths = (
{
closed = 1;
nodes = (
"993 -1132 OFFCURVE",
"1085 -1109 OFFCURVE",
"1154 -1072 CURVE",
"1090 -824 LINE",
"1066 -828 OFFCURVE",
"1042 -840 OFFCURVE",
"1006 -840 CURVE SMOOTH",
"954 -840 OFFCURVE",
"914 -804 OFFCURVE",
"914 -736 CURVE SMOOTH",
"914 -656 OFFCURVE",
"986 -616 OFFCURVE",
"1114 -576 CURVE",
"942 -524 LINE",
"693 -585 OFFCURVE",
"573 -710 OFFCURVE",
"588 -892 CURVE SMOOTH",
"601 -1052 OFFCURVE",
"709 -1132 OFFCURVE",
"914 -1132 CURVE SMOOTH"
);
}
);
width = 1704;
},
{
components = (
{
name = y;
}
);
layerId = "D0EC06BF-13F9-4C88-A6F5-B8203AF6C77E";
paths = (
{
closed = 1;
nodes = (
"691 -1132 OFFCURVE",
"770 -1113 OFFCURVE",
"850 -1072 CURVE",
"826 -824 LINE",
"802 -828 OFFCURVE",
"772 -840 OFFCURVE",
"740 -840 CURVE SMOOTH",
"684 -840 OFFCURVE",
"656 -797 OFFCURVE",
"666 -736 CURVE SMOOTH",
"680 -649 OFFCURVE",
"756 -616 OFFCURVE",
"892 -576 CURVE",
"728 -524 LINE",
"468 -586 OFFCURVE",
"329 -710 OFFCURVE",
"314 -892 CURVE SMOOTH",
"301 -1045 OFFCURVE",
"405 -1132 OFFCURVE",
"600 -1132 CURVE SMOOTH"
);
}
);
width = 1704;
}
);
leftKerningGroup = v;
leftMetricsKey = y;
note = "Black weight has custom-drawn ogonek. Other masters use a verbatim decomposed \"ogonek\" component.";
rightKerningGroup = v;
rightMetricsKey = y;
},
{
color = (219,235,247,1);
glyphname = z;
lastChange = "2019-12-17 15:13:12 +0000";
@ -260264,7 +260803,7 @@ unicode = 031B;
{
color = (250,227,227,1);
glyphname = ogoneknosp;
lastChange = "2019-12-17 15:13:12 +0000";
lastChange = "2020-08-17 20:37:08 +0000";
layers = (
{
components = (
@ -260329,6 +260868,7 @@ layerId = "200BE2C5-40F6-4CF4-AF4F-A33C0CC0964F";
width = 0;
}
);
note = "aka ogonekcomb";
unicode = 0328;
},
{

View file

@ -55,6 +55,7 @@ lookup ccmp03 {
sub A dieresisnosp by Adieresis;
sub A ringnosp by Aring;
sub A ringacute.cn by Aringacute;
sub Aogonek ringnosp by Aringogonek;
sub C cedillanosp by Ccedilla;
sub E gravecomb by Egrave;
sub E acutecomb by Eacute;
@ -75,6 +76,7 @@ lookup ccmp03 {
sub U circumflexnosp by Ucircumflex;
sub U dieresisnosp by Udieresis;
sub Y acutecomb by Yacute;
sub Y ogoneknosp by Yogonek;
sub a gravecomb by agrave;
sub a acutecomb by aacute;
sub a circumflexnosp by acircumflex;
@ -102,6 +104,7 @@ lookup ccmp03 {
sub u circumflexnosp by ucircumflex;
sub u dieresisnosp by udieresis;
sub y acutecomb by yacute;
sub y ogoneknosp by yogonek;
sub y dieresisnosp by ydieresis;
sub A macroncomb by Amacron;
sub a macroncomb by amacron;
@ -109,6 +112,7 @@ lookup ccmp03 {
sub a brevenosp by abreve;
sub A ogoneknosp by Aogonek;
sub a ogoneknosp by aogonek;
sub aogonek ringnosp by aringogonek;
sub C acutecomb by Cacute;
sub c acutecomb by cacute;
sub C circumflexnosp by Ccircumflex;