diff options
author | Rasmus Andersson <rasmus@notion.se> | 2020-08-18 00:31:54 +0300 |
---|---|---|
committer | Rasmus Andersson <rasmus@notion.se> | 2020-08-18 00:31:54 +0300 |
commit | f1275e09e9f08a6afdfb547de321cb4268ef94a8 (patch) | |
tree | 2c924f03bf4e69e0e643dd1082f28a5ec1023bff | |
parent | 4ae05c12c5b80d487981a4b98a45cdc0dad0b304 (diff) | |
download | inter-f1275e09e9f08a6afdfb547de321cb4268ef94a8.tar.xz |
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
-rwxr-xr-x | src/Inter.glyphs | 732 | ||||
-rw-r--r-- | src/features/ccmp.fea | 4 |
2 files changed, 640 insertions, 96 deletions
diff --git a/src/Inter.glyphs b/src/Inter.glyphs index c882ff5d2..12186ac44 100755 --- a/src/Inter.glyphs +++ b/src/Inter.glyphs @@ -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; }, { diff --git a/src/features/ccmp.fea b/src/features/ccmp.fea index 0a9d64a0f..c48ad7c51 100644 --- a/src/features/ccmp.fea +++ b/src/features/ccmp.fea @@ -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; |