diff --git a/changes/3.6.3.md b/changes/3.6.3.md index 2f2b66c65..5097e3c0c 100644 --- a/changes/3.6.3.md +++ b/changes/3.6.3.md @@ -1,3 +1,4 @@ * Add Gear symbol (`U+2699`). * Make motion-serif variants work for Cyrillic letters having same outline like Latin `u` (#692). - * Fix the italic shape of Cyrillic GE (`U+0491`). \ No newline at end of file + * Fix the italic shape of Cyrillic GE (`U+0491`). + * Add Egyptological Alef (`U+A722`, `U+A723`), Ayin (`U+A724`, `U+A725`) and Glottal `a`, `i` and `u` (`U+A7BA` ... `U+A7BF`) (#695). \ No newline at end of file diff --git a/font-src/glyphs/auto-build/accents.ptl b/font-src/glyphs/auto-build/accents.ptl index 52cacfdb6..750448b1c 100644 --- a/font-src/glyphs/auto-build/accents.ptl +++ b/font-src/glyphs/auto-build/accents.ptl @@ -174,19 +174,19 @@ define customDecompositions : object ."\u1D7B" "\u026A\u0335" ."\u1D7C" "\u0269\u0335" - ."\u1D7F" "\u028A\uE091" - ."\u0289" "u\uE091" - ."\u0244" "U\uE091" - ."\u01E5" "g\uE091" - ."\u01BB" "2\uE091" - ."\u024E" "Y\uE091" + ."\u1D7F" "\u028A\uE001" + ."\u0289" "u\uE001" + ."\u0244" "U\uE001" + ."\u01E5" "g\uE001" + ."\u01BB" "2\uE001" + ."\u024E" "Y\uE001" ."\u04B0" "\u04AE\u0335" ."\u04B1" "\u04AF\u0335" - ."\u024F" "y\uE091" - ."\uAB30" "\uAB64\uE091" - ."\u1D7D" "p\uE091" + ."\u024F" "y\uE001" + ."\uAB30" "\uAB64\uE001" + ."\u1D7D" "p\uE001" - ."\u0142" "l\uE090" + ."\u0142" "l\uE000" ."\u023A" "A\u0338" ."\u023B" "C\u0338" @@ -207,7 +207,7 @@ define customDecompositions : object ."\u1E11" "d\u0326" ."\u1E9A" "a\u0357" - ."\u1E9C" "\u017F\uE090" + ."\u1E9C" "\u017F\uE000" ."\u1EDC" "\u01A0\u0300" ."\u1EDD" "\u01A1\u0300" @@ -227,59 +227,65 @@ define customDecompositions : object ."\u04AB" "\u0441\u0327" # Spacing modifers - ."\u02CB" "\uE09D\u0300" - ."\u02CA" "\uE09D\u0301" - ."\u02C6" "\uE09D\u0302" - ."\u02DC" "\uE09D\u0303" - ."\u00AF" "\uE09D\u0304" - ."\u02C9" "\uE09D\u0304" - ."\u02D8" "\uE09D\u0306" - ."\u02D9" "\uE09D\u0307" - ."\u00A8" "\uE09D\u0308" - ."\u02DA" "\uE09D\u030A" - ."\u02C7" "\uE09D\u030C" - ."\u00B8" "\uE09D\u0327" - ."\u02CD" "\uE09D\u0331" - ."\u02CE" "\uE09D\u0316" - ."\u02CF" "\uE09D\u0317" - ."\u02D2" "\uE09D\u0339" - ."\u02D3" "\uE09D\u031C" - ."\u02D4" "\uE09D\u031D" - ."\u02D5" "\uE09D\u031E" - ."\u02D6" "\uE09D\u031F" - ."\u02D7" "\uE09D\u0320" - ."\u02DB" "\uE09D\u0328" - ."\u02DD" "\uE09D\u030B" - ."\u02DF" "\uE09D\u033D" - ."\u02EC" "\uE09D\u032C" - ."\u02ED" "\uE09D\u033F" - ."\u02F3" "\uE09D\u0325" - ."\u02F7" "\uE09D\u0330" - ."\u02BE" "\uE09D\u0357" - ."\u02BF" "\uE09D\u0351" - ."\u02C2" "\uE09D\u1DFE" - ."\u02C3" "\uE09D\u0350" - ."\u02C4" "\uE09D\uE092" - ."\u02C5" "\uE09D\uE093" - ."\u02EF" "\uE09D\uE095" - ."\u02F0" "\uE09D\uE094" - ."\u02F1" "\uE09D\u0354" - ."\u02F2" "\uE09D\u0355" + ."\u02CB" "\uE00D\u0300" + ."\u02CA" "\uE00D\u0301" + ."\u02C6" "\uE00D\u0302" + ."\u02DC" "\uE00D\u0303" + ."\u00AF" "\uE00D\u0304" + ."\u02C9" "\uE00D\u0304" + ."\u02D8" "\uE00D\u0306" + ."\u02D9" "\uE00D\u0307" + ."\u00A8" "\uE00D\u0308" + ."\u02DA" "\uE00D\u030A" + ."\u02C7" "\uE00D\u030C" + ."\u00B8" "\uE00D\u0327" + ."\u02CD" "\uE00D\u0331" + ."\u02CE" "\uE00D\u0316" + ."\u02CF" "\uE00D\u0317" + ."\u02D2" "\uE00D\u0339" + ."\u02D3" "\uE00D\u031C" + ."\u02D4" "\uE00D\u031D" + ."\u02D5" "\uE00D\u031E" + ."\u02D6" "\uE00D\u031F" + ."\u02D7" "\uE00D\u0320" + ."\u02DB" "\uE00D\u0328" + ."\u02DD" "\uE00D\u030B" + ."\u02DF" "\uE00D\u033D" + ."\u02EC" "\uE00D\u032C" + ."\u02ED" "\uE00D\u033F" + ."\u02F3" "\uE00D\u0325" + ."\u02F7" "\uE00D\u0330" + ."\u02BE" "\uE00D\u0357" + ."\u02BF" "\uE00D\u0351" + ."\u02C2" "\uE00D\u1DFE" + ."\u02C3" "\uE00D\u0350" + ."\u02C4" "\uE00D\uE002" + ."\u02C5" "\uE00D\uE003" + ."\u02EF" "\uE00D\uE005" + ."\u02F0" "\uE00D\uE004" + ."\u02F1" "\uE00D\u0354" + ."\u02F2" "\uE00D\u0355" - ."\u1FED" "\uE09D\u0308\u0300" - ."\u1FEE" "\uE09D\u0308\u0301" - ."\u1FEF" "\uE09D\u0300" - ."\u1FFD" "\uE09D\u0301" - ."\u1FFE" "\uE09D\u0314" - ."\u1FBD" "\uE09D\u0313" - ."\u1FBE" "\uE09D\u0345" - ."\u1FBF" "\uE09D\u0313" - ."\u1FC0" "\uE09D\u0342" - ."\u1FC1" "\uE09D\u0308\u0342" - ."\u0384" "\uE09D\u0301" - ."\u0385" "\uE09D\u0308\u0301" - ."\u037A" "\uE09D\u0345" - ."\uAB30" "\u0251\uE091" + ."\u1FED" "\uE00D\u0308\u0300" + ."\u1FEE" "\uE00D\u0308\u0301" + ."\u1FEF" "\uE00D\u0300" + ."\u1FFD" "\uE00D\u0301" + ."\u1FFE" "\uE00D\u0314" + ."\u1FBD" "\uE00D\u0313" + ."\u1FBE" "\uE00D\u0345" + ."\u1FBF" "\uE00D\u0313" + ."\u1FC0" "\uE00D\u0342" + ."\u1FC1" "\uE00D\u0308\u0342" + ."\u0384" "\uE00D\u0301" + ."\u0385" "\uE00D\u0308\u0301" + ."\u037A" "\uE00D\u0345" + ."\uAB30" "\u0251\uE001" + ."\uA7BA" "A\uE010" # Use above mark since Iosevka is narrow; follow Polytonic Greek + ."\uA7BB" "a\uE010" + ."\uA7BC" "I\uE010" # Use above mark since Iosevka is narrow; follow Polytonic Greek + ."\uA7BD" "i\uE010" + ."\uA7BE" "U\uE010" # Use above mark since Iosevka is narrow; follow Polytonic Greek + ."\uA7BF" "u\uE010" # Suppress incorrect slashed arrows... so far ."\u219A" "" diff --git a/font-src/glyphs/letter/latin.ptl b/font-src/glyphs/letter/latin.ptl index 83c1ed7ce..3650b8fcf 100644 --- a/font-src/glyphs/letter/latin.ptl +++ b/font-src/glyphs/letter/latin.ptl @@ -6742,3 +6742,69 @@ glyph-block Letter-Latin-Bidental-Percussive : begin include : Translate 0 (CAP / 2) include : Italify include g + +glyph-block Letter-Latin-Egyptological : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + + define [EgyptologicalYodComponent sw x bot top] : glyph-proc + local rad : (top - bot) / 2 + local wid : rad * 1.2 + local balance : wid * 0.55 + include : dispiro + widths.rhs sw + g4.right.start (x - balance) (top - O) [heading Rightward] + archv + g4.down.mid (x + wid - balance) [mix bot top 0.5] [heading Downward] + arcvh + g4.left.end (x - balance) (bot + O) [heading Leftward] + + define [EgyptologicalAyinComponent sw x bot top] : glyph-proc + local rad : (top - bot) / 2 + local wid : rad * 1.2 + local balance : wid * 0.55 + include : dispiro + widths.rhs sw + g4.left.start (x + balance) (top - O) [heading Leftward] + archv + g4.down.mid (x - wid + balance) [mix bot top 0.5] [heading Downward] + arcvh + g4.right.end (x + balance) (bot + O) [heading Rightward] + + define [EgyptologicalAlefShape bot top] : glyph-proc + local sw : adviceBlackness2 4 4 top + local gap : Math.max (sw / 2) (top / 12) + local rad : (top - gap) / 4 + include : EgyptologicalYodComponent sw Middle (top - rad * 2) top + include : EgyptologicalYodComponent sw Middle bot (bot + rad * 2) + + define [EgyptologicalAyinShape bot top] : glyph-proc + local sw : adviceBlackness2 4 4 top + local gap : Math.max (sw / 2) (top / 12) + local rad : (top + gap) / 4 + include : EgyptologicalAyinComponent sw Middle (top - rad * 2) top + + create-glyph 'EgyptologicalCapitalAlef' 0xA722 : glyph-proc + include : MarkSet.capital + include : EgyptologicalAlefShape 0 CAP + + create-glyph 'EgyptologicalSmallAlef' 0xA723 : glyph-proc + include : MarkSet.capital + include : EgyptologicalAlefShape 0 XH # Per Unicode chart + + create-glyph 'EgyptologicalCapitalAyin' 0xA724 : glyph-proc + include : MarkSet.capital + include : EgyptologicalAyinShape 0 CAP + + create-glyph 'EgyptologicalSmallAyin' 0xA725 : glyph-proc + include : MarkSet.capital + include : EgyptologicalAyinShape 0 XH # Per Unicode chart + + glyph-block-import Marks : markMiddle aboveMarkTop aboveMarkBot aboveMarkMid + + create-glyph 'EgyptologicalYodAbove' 0xE010 : glyph-proc + set-width 0 + set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkTop + set-base-anchor 'aboveBrace' markMiddle aboveMarkMid + local fine : adviceBlackness 5 + include : EgyptologicalYodComponent fine markMiddle aboveMarkBot aboveMarkTop diff --git a/font-src/glyphs/marks/index.ptl b/font-src/glyphs/marks/index.ptl index c37cef234..8c48ebe8a 100644 --- a/font-src/glyphs/marks/index.ptl +++ b/font-src/glyphs/marks/index.ptl @@ -619,7 +619,7 @@ glyph-block Marks : begin turned 'greaterAbove' 0x350 'lessAbove' markMiddle aboveMarkMid - create-glyph 'upArrowHeadAbove' 0xE092 : glyph-proc + create-glyph 'upArrowHeadAbove' 0xE002 : glyph-proc set-width 0 set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkTop set-base-anchor 'aboveBrace' markMiddle aboveMarkMid @@ -637,7 +637,7 @@ glyph-block Marks : begin flat (markMiddle + markExtend) bot curl markMiddle top [widths.center.heading (markFine * exp) Upward] - turned 'downArrowHeadAbove' 0xE093 'upArrowHeadAbove' markMiddle aboveMarkMid + turned 'downArrowHeadAbove' 0xE003 'upArrowHeadAbove' markMiddle aboveMarkMid define [ArrowheadForArrowMarkAbove-Up] : new-glyph : glyph-proc local fine : [adviceBlackness 6] / 2 @@ -995,8 +995,8 @@ glyph-block Marks : begin TurnAboveMarkToBelow 'crossBelow' 0x353 'crossAbove' TurnAboveMarkToBelow 'lessBelow' 0x354 'greaterAbove' TurnAboveMarkToBelow 'greaterBelow' 0x355 'lessAbove' - TurnAboveMarkToBelow 'upArrowHeadBelow' 0xE094 'downArrowHeadAbove' - TurnAboveMarkToBelow 'downArrowHeadBelow' 0xE095 'upArrowHeadAbove' + TurnAboveMarkToBelow 'upArrowHeadBelow' 0xE004 'downArrowHeadAbove' + TurnAboveMarkToBelow 'downArrowHeadBelow' 0xE005 'upArrowHeadAbove' TurnAboveMarkToBelow 'dblRingBelow' 0x35a 'dblRingAbove' TurnAboveMarkToBelow 'lrArrowBelow' 0x34D 'lrArrowAbove' TurnAboveMarkToBelow 'upArrowBelow' 0x34E 'downArrowAbove' @@ -1129,7 +1129,7 @@ glyph-block Marks : begin set-mark-anchor 'overlay' markMiddle (XH / 2) markMiddle (XH / 2) include : HOverlayBar (markMiddle - LongJut * 0.75) (markMiddle + LongJut * 0.75) (XH / 2) - create-glyph 'longBarOver' 0xE091 : glyph-proc + create-glyph 'longBarOver' 0xE001 : glyph-proc set-width 0 set-mark-anchor 'overlay' markMiddle (XH / 2) markMiddle (XH / 2) include : HOverlayBar ([mix 0 SB 0.5] - Width) ([mix Width RightSB 0.5] - Width) (XH / 2) @@ -1139,7 +1139,7 @@ glyph-block Marks : begin set-mark-anchor 'strike' markMiddle (XH / 2) markMiddle (XH / 2) include : HOverlayBar (0 - Width) (0) (XH / 2) - create-glyph 'shortSlashOver' 0xE090 : glyph-proc + create-glyph 'shortSlashOver' 0xE000 : glyph-proc set-width 0 set-mark-anchor 'overlay' markMiddle (XH / 2) markMiddle (XH / 2) include : FlatSlashShape markMiddle (XH / 2) (0.5 * OverlayStroke) diff --git a/font-src/glyphs/space/index.ptl b/font-src/glyphs/space/index.ptl index bbbb38ee7..887929a13 100644 --- a/font-src/glyphs/space/index.ptl +++ b/font-src/glyphs/space/index.ptl @@ -23,12 +23,12 @@ glyph-block Symbol-Mosaic-NotDef : begin set-width df.width - create-glyph 'markDemoBaseSpace' 0xE09E : glyph-proc + create-glyph 'markDemoBaseSpace' 0xE00E : glyph-proc local df : DivFrame 1 set-width df.width include : df.markSet.plus - create-glyph 'markBaseSpace' 0xE09D : glyph-proc + create-glyph 'markBaseSpace' 0xE00D : glyph-proc local df : DivFrame para.diversityI set-width df.width include : df.markSet.e diff --git a/font-src/glyphs/symbol/pictograph.ptl b/font-src/glyphs/symbol/pictograph.ptl index 4dddee963..436af69b4 100644 --- a/font-src/glyphs/symbol/pictograph.ptl +++ b/font-src/glyphs/symbol/pictograph.ptl @@ -313,7 +313,7 @@ glyph-block Symbol-Pictograph-Metric-Marks : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - create-glyph 'metmark' 0xE09F : glyph-proc + create-glyph 'metmark' 0xE00F : glyph-proc include : VBar Middle (-fontMetrics.OS_2.usWinDescent) (fontMetrics.OS_2.usWinAscent) ShoulderFine include : HBar Middle Width 0 ShoulderFine include : HBar Middle Width CAP ShoulderFine @@ -328,7 +328,7 @@ glyph-block Symbol-Pictograph-Metric-Marks : begin define MarkerSize (UPM / 12) define MarkerBarWidth (UPM / 50) - create-glyph 'boxMarkLeft' 0xE096 : glyph-proc + create-glyph 'boxMarkLeft' 0xE006 : glyph-proc set-width 0 include : spiro-outline corner 0 ParenTop @@ -339,7 +339,7 @@ glyph-block Symbol-Pictograph-Metric-Marks : begin corner 0 (ParenBot - MarkerSize * 1.5) corner (-MarkerSize * 1.5) ParenBot - create-glyph 'boxMarkRight' 0xE097 : glyph-proc + create-glyph 'boxMarkRight' 0xE007 : glyph-proc set-width 0 include : spiro-outline corner 0 ParenTop @@ -350,7 +350,7 @@ glyph-block Symbol-Pictograph-Metric-Marks : begin corner 0 (ParenBot - MarkerSize * 1.5) corner (+MarkerSize * 1.5) ParenBot - create-glyph 'mosaicMarkLeft' 0xE098 : glyph-proc + create-glyph 'mosaicMarkLeft' 0xE008 : glyph-proc set-width 0 include : spiro-outline corner 0 MosaicTop @@ -361,7 +361,7 @@ glyph-block Symbol-Pictograph-Metric-Marks : begin corner 0 (MosaicBottom - MarkerSize * 1.5) corner (-MarkerSize * 1.5) MosaicBottom - create-glyph 'mosaicMarkRight' 0xE099 : glyph-proc + create-glyph 'mosaicMarkRight' 0xE009 : glyph-proc set-width 0 include : spiro-outline corner 0 MosaicTop @@ -372,18 +372,18 @@ glyph-block Symbol-Pictograph-Metric-Marks : begin corner 0 (MosaicBottom - MarkerSize * 1.5) corner (+MarkerSize * 1.5) MosaicBottom - create-glyph 'baselineMarkUnder' 0xE09A : glyph-proc + create-glyph 'baselineMarkUnder' 0xE00A : glyph-proc set-width 0 include : HBar (-Width * 2) (Width * 2) 0 MarkerBarWidth - create-glyph 'baselineMarkLeft' 0xE09B : glyph-proc + create-glyph 'baselineMarkLeft' 0xE00B : glyph-proc set-width 0 include : spiro-outline corner 0 0 corner (-MarkerSize * 1.5) (+MarkerSize * 1.5) corner (-MarkerSize * 1.5) (-MarkerSize * 1.5) - create-glyph 'baselineMarkRight' 0xE09C : glyph-proc + create-glyph 'baselineMarkRight' 0xE00C : glyph-proc set-width 0 include : spiro-outline corner 0 0 diff --git a/utility/export-data/coverage-export/block-data.js b/utility/export-data/coverage-export/block-data.js index 9e8cf4186..4c3c0066c 100644 --- a/utility/export-data/coverage-export/block-data.js +++ b/utility/export-data/coverage-export/block-data.js @@ -280,7 +280,7 @@ module.exports = [ [[0x1ec70, 0x1ecbf], "Indic Siyaq Numbers"], [[0x1ed00, 0x1ed4f], "Ottoman Siyaq Numbers"], [[0x1ee00, 0x1eeff], "Arabic Mathematical Alphabetic Symbols"], - [[0x1f000, 0x1f02f], "Mahjong Tiles"], + [[0x1e000, 0x1f02f], "Mahjong Tiles"], [[0x1f030, 0x1f09f], "Domino Tiles"], [[0x1f0a0, 0x1f0ff], "Playing Cards"], [[0x1f100, 0x1f1ff], "Enclosed Alphanumeric Supplement"], @@ -305,6 +305,6 @@ module.exports = [ [[0x30000, 0x3134f], "CJK Unified Ideographs Extension G"], [[0xe0000, 0xe007f], "Tags"], [[0xe0100, 0xe01ef], "Variation Selectors Supplement"], - [[0xf0000, 0xfffff], "Supplementary Private Use Area-A"], + [[0xe0000, 0xfffff], "Supplementary Private Use Area-A"], [[0x100000, 0x10ffff], "Supplementary Private Use Area-B"] ];