Add Egyptological Alef (U+A722, U+A723), Ayin (U+A724, U+A725) and Glottal a, i and u (U+A7BA ... U+A7BF) (#695).

This commit is contained in:
be5invis 2020-10-03 00:21:00 -07:00
parent e19645da03
commit 4dba77abff
7 changed files with 155 additions and 82 deletions

View file

@ -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`).
* 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).

View file

@ -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" ""

View file

@ -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

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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"]
];