Implement remaining precomposed accented letters.

This commit is contained in:
John McWilliams 2025-03-13 10:36:42 -04:00
parent 7ad6563c45
commit bcec6ed4ca
4 changed files with 130 additions and 17 deletions

View file

@ -9,12 +9,49 @@ glyph-block Letter-Greek-Orthography : begin
# Link localization forms
link-gr LocalizedForm.IPPH 'a' 'a/doubleStorey'
link-gr LocalizedForm.IPPH 'aDieresis' 'aDieresis/doubleStorey'
link-gr LocalizedForm.IPPH 'aRetroflexHook' 'aRetroflexHook/doubleStorey'
link-gr LocalizedForm.IPPH 'g' 'g/doubleStorey'
link-gr LocalizedForm.IPPH 'gBar' 'gScriptBar'
link-gr LocalizedForm.IPPH 'a' 'a/doubleStorey'
link-gr LocalizedForm.IPPH 'aGrave' 'aGrave/doubleStorey'
link-gr LocalizedForm.IPPH 'aAcute' 'aAcute/doubleStorey'
link-gr LocalizedForm.IPPH 'aCircum' 'aCircum/doubleStorey'
link-gr LocalizedForm.IPPH 'aTilde' 'aTilde/doubleStorey'
link-gr LocalizedForm.IPPH 'aDieresis' 'aDieresis/doubleStorey'
link-gr LocalizedForm.IPPH 'aRing' 'aRing/doubleStorey'
link-gr LocalizedForm.IPPH 'aMacron' 'aMacron/doubleStorey'
link-gr LocalizedForm.IPPH 'aBreve' 'aBreve/doubleStorey'
link-gr LocalizedForm.IPPH 'aOgonek' 'aOgonek/doubleStorey'
link-gr LocalizedForm.IPPH 'aCaron' 'aCaron/doubleStorey'
link-gr LocalizedForm.IPPH 'aDieresisMacron' 'aDieresisMacron/doubleStorey'
link-gr LocalizedForm.IPPH 'aDotMacron' 'aDotMacron/doubleStorey'
link-gr LocalizedForm.IPPH 'aRingAcute' 'aRingAcute/doubleStorey'
link-gr LocalizedForm.IPPH 'aDblGrave' 'aDblGrave/doubleStorey'
link-gr LocalizedForm.IPPH 'aInvBreve' 'aInvBreve/doubleStorey'
link-gr LocalizedForm.IPPH 'aDot' 'aDot/doubleStorey'
link-gr LocalizedForm.IPPH 'aRetroflexHook' 'aRetroflexHook/doubleStorey'
link-gr LocalizedForm.IPPH 'aBelowring' 'aBelowring/doubleStorey'
link-gr LocalizedForm.IPPH 'aRightHalfRing' 'aRightHalfRing/doubleStorey'
link-gr LocalizedForm.IPPH 'aBelowdot' 'aBelowdot/doubleStorey'
link-gr LocalizedForm.IPPH 'aHook' 'aHook/doubleStorey'
link-gr LocalizedForm.IPPH 'aCircumAcute' 'aCircumAcute/doubleStorey'
link-gr LocalizedForm.IPPH 'aCircumGrave' 'aCircumGrave/doubleStorey'
link-gr LocalizedForm.IPPH 'aCircumHook' 'aCircumHook/doubleStorey'
link-gr LocalizedForm.IPPH 'aCircumTilde' 'aCircumTilde/doubleStorey'
link-gr LocalizedForm.IPPH 'aCircumBelowdot' 'aCircumBelowdot/doubleStorey'
link-gr LocalizedForm.IPPH 'aBreveAcute' 'aBreveAcute/doubleStorey'
link-gr LocalizedForm.IPPH 'aBreveGrave' 'aBreveGrave/doubleStorey'
link-gr LocalizedForm.IPPH 'aBreveHook' 'aBreveHook/doubleStorey'
link-gr LocalizedForm.IPPH 'aBreveTilde' 'aBreveTilde/doubleStorey'
link-gr LocalizedForm.IPPH 'aBreveBelowdot' 'aBreveBelowdot/doubleStorey'
link-gr LocalizedForm.IPPH 'grek/beta' 'latn/beta'
link-gr LocalizedForm.IPPH 'grek/theta' 'grek/theta/nonCursive'
link-gr LocalizedForm.IPPH 'grek/chi' 'latn/chi'
link-gr LocalizedForm.IPPH 'g' 'g/doubleStorey'
link-gr LocalizedForm.IPPH 'gCircum' 'gCircum/doubleStorey'
link-gr LocalizedForm.IPPH 'gBreve' 'gBreve/doubleStorey'
link-gr LocalizedForm.IPPH 'gDot' 'gDot/doubleStorey'
link-gr LocalizedForm.IPPH 'gCedilla' 'gCedilla/doubleStorey'
link-gr LocalizedForm.IPPH 'gBar' 'gScriptBar'
link-gr LocalizedForm.IPPH 'gCaron' 'gCaron/doubleStorey'
link-gr LocalizedForm.IPPH 'gAcute' 'gAcute/doubleStorey'
link-gr LocalizedForm.IPPH 'gMacron' 'gMacron/doubleStorey'
link-gr LocalizedForm.IPPH 'grek/beta' 'latn/beta'
link-gr LocalizedForm.IPPH 'grek/theta' 'grek/theta/nonCursive'
link-gr LocalizedForm.IPPH 'grek/chi' 'latn/chi'

View file

@ -9,7 +9,7 @@ glyph-block Letter-Latin-Lower-A : begin
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
glyph-block-import Mark-Shared-Metrics : markHalfStroke
glyph-block-import Letter-Shared : CreateAccentedComposition CreateTurnedLetter
glyph-block-import Letter-Shared : CreateAccentedComposition CreateMultiAccentedComposition CreateTurnedLetter
glyph-block-import Letter-Shared-Shapes : SerifFrame OBarLeft OBarRight ArcStartSerif
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar RetroflexHook
glyph-block-import Letter-Shared-Shapes : InwardSlabArcStart
@ -299,7 +299,68 @@ glyph-block Letter-Latin-Lower-A : begin
CreateTurnedLetter 'turnaScript' 0x252 'aScript' HalfAdvance (XH / 2)
CreateTurnedLetter 'turnAScript' 0x2C70 'AScript' HalfAdvance (CAP / 2)
CreateAccentedComposition 'aDieresis' 0xE4 'a' 'dieresisAbove'
CreateAccentedComposition 'aDieresis/doubleStorey' null 'a/doubleStorey' 'dieresisAbove'
CreateAccentedComposition 'aGrave' 0xE0 'a' 'graveAbove'
CreateAccentedComposition 'aAcute' 0xE1 'a' 'acuteAbove'
CreateAccentedComposition 'aCircum' 0xE2 'a' 'circumflexAbove'
CreateAccentedComposition 'aTilde' 0xE3 'a' 'tildeAbove'
CreateAccentedComposition 'aDieresis' 0xE4 'a' 'dieresisAbove'
CreateAccentedComposition 'aRing' 0xE5 'a' 'ringAbove'
CreateAccentedComposition 'aMacron' 0x101 'a' 'macronAbove'
CreateAccentedComposition 'aBreve' 0x103 'a' 'breveAbove'
CreateAccentedComposition 'aOgonek' 0x105 'a' 'ogonekBelow'
CreateAccentedComposition 'aCaron' 0x1CE 'a' 'caronAbove'
CreateAccentedComposition 'aDblGrave' 0x201 'a' 'doubleGraveAbove'
CreateAccentedComposition 'aInvBreve' 0x203 'a' 'archAbove'
CreateAccentedComposition 'aDot' 0x227 'a' 'dotAbove'
CreateAccentedComposition 'aBelowring' 0x1E01 'a' 'ringBelow'
CreateAccentedComposition 'aBelowdot' 0x1EA1 'a' 'dotBelow'
CreateAccentedComposition 'aHook' 0x1EA3 'a' 'hookAbove'
CreateAccentedComposition 'aRightHalfRing' 0x1E9A 'a' 'rightHalfCircleTR'
CreateMultiAccentedComposition 'aDieresisMacron' 0x1DF 'a' { 'dieresisAbove' 'macronAbove' }
CreateMultiAccentedComposition 'aDotMacron' 0x1E1 'a' { 'dotAbove' 'macronAbove' }
CreateMultiAccentedComposition 'aRingAcute' 0x1FB 'a' { 'ringAbove' 'acuteAbove' }
CreateMultiAccentedComposition 'aCircumAcute' 0x1EA5 'a' { 'circumflexAbove' 'acuteAbove' }
CreateMultiAccentedComposition 'aCircumGrave' 0x1EA7 'a' { 'circumflexAbove' 'graveAbove' }
CreateMultiAccentedComposition 'aCircumHook' 0x1EA9 'a' { 'circumflexAbove' 'hookAbove' }
CreateMultiAccentedComposition 'aCircumTilde' 0x1EAB 'a' { 'circumflexAbove' 'tildeAbove' }
CreateMultiAccentedComposition 'aCircumBelowdot' 0x1EAD 'a' { 'circumflexAbove' 'dotBelow' }
CreateMultiAccentedComposition 'aBreveAcute' 0x1EAF 'a' { 'breveAbove' 'acuteAbove' }
CreateMultiAccentedComposition 'aBreveGrave' 0x1EB1 'a' { 'breveAbove' 'graveAbove' }
CreateMultiAccentedComposition 'aBreveHook' 0x1EB3 'a' { 'breveAbove' 'hookAbove' }
CreateMultiAccentedComposition 'aBreveTilde' 0x1EB5 'a' { 'breveAbove' 'tildeAbove' }
CreateMultiAccentedComposition 'aBreveBelowdot' 0x1EB7 'a' { 'breveAbove' 'dotBelow' }
CreateAccentedComposition 'aGrave/doubleStorey' null 'a/doubleStorey' 'graveAbove'
CreateAccentedComposition 'aAcute/doubleStorey' null 'a/doubleStorey' 'acuteAbove'
CreateAccentedComposition 'aCircum/doubleStorey' null 'a/doubleStorey' 'circumflexAbove'
CreateAccentedComposition 'aTilde/doubleStorey' null 'a/doubleStorey' 'tildeAbove'
CreateAccentedComposition 'aDieresis/doubleStorey' null 'a/doubleStorey' 'dieresisAbove'
CreateAccentedComposition 'aRing/doubleStorey' null 'a/doubleStorey' 'ringAbove'
CreateAccentedComposition 'aMacron/doubleStorey' null 'a/doubleStorey' 'macronAbove'
CreateAccentedComposition 'aBreve/doubleStorey' null 'a/doubleStorey' 'breveAbove'
CreateAccentedComposition 'aOgonek/doubleStorey' null 'a/doubleStorey' 'ogonekBelow'
CreateAccentedComposition 'aCaron/doubleStorey' null 'a/doubleStorey' 'caronAbove'
CreateAccentedComposition 'aDblGrave/doubleStorey' null 'a/doubleStorey' 'doubleGraveAbove'
CreateAccentedComposition 'aInvBreve/doubleStorey' null 'a/doubleStorey' 'archAbove'
CreateAccentedComposition 'aDot/doubleStorey' null 'a/doubleStorey' 'dotAbove'
CreateAccentedComposition 'aBelowring/doubleStorey' null 'a/doubleStorey' 'ringBelow'
CreateAccentedComposition 'aBelowdot/doubleStorey' null 'a/doubleStorey' 'dotBelow'
CreateAccentedComposition 'aHook/doubleStorey' null 'a/doubleStorey' 'hookAbove'
CreateAccentedComposition 'aRightHalfRing/doubleStorey' null 'a/doubleStorey' 'rightHalfCircleAbove'
CreateMultiAccentedComposition 'aDieresisMacron/doubleStorey' null 'a/doubleStorey' { 'dieresisAbove' 'macronAbove' }
CreateMultiAccentedComposition 'aDotMacron/doubleStorey' null 'a/doubleStorey' { 'dotAbove' 'macronAbove' }
CreateMultiAccentedComposition 'aRingAcute/doubleStorey' null 'a/doubleStorey' { 'ringAbove' 'acuteAbove' }
CreateMultiAccentedComposition 'aCircumAcute/doubleStorey' null 'a/doubleStorey' { 'circumflexAbove' 'acuteAbove' }
CreateMultiAccentedComposition 'aCircumGrave/doubleStorey' null 'a/doubleStorey' { 'circumflexAbove' 'graveAbove' }
CreateMultiAccentedComposition 'aCircumHook/doubleStorey' null 'a/doubleStorey' { 'circumflexAbove' 'hookAbove' }
CreateMultiAccentedComposition 'aCircumTilde/doubleStorey' null 'a/doubleStorey' { 'circumflexAbove' 'tildeAbove' }
CreateMultiAccentedComposition 'aCircumBelowdot/doubleStorey' null 'a/doubleStorey' { 'circumflexAbove' 'dotBelow' }
CreateMultiAccentedComposition 'aBreveAcute/doubleStorey' null 'a/doubleStorey' { 'breveAbove' 'acuteAbove' }
CreateMultiAccentedComposition 'aBreveGrave/doubleStorey' null 'a/doubleStorey' { 'breveAbove' 'graveAbove' }
CreateMultiAccentedComposition 'aBreveHook/doubleStorey' null 'a/doubleStorey' { 'breveAbove' 'hookAbove' }
CreateMultiAccentedComposition 'aBreveTilde/doubleStorey' null 'a/doubleStorey' { 'breveAbove' 'tildeAbove' }
CreateMultiAccentedComposition 'aBreveBelowdot/doubleStorey' null 'a/doubleStorey' { 'breveAbove' 'dotBelow' }
CreateAccentedComposition 'aSbRsbUnderlineBelow' null 'a' 'sbRsbUnderlineBelow'

View file

@ -9,7 +9,7 @@ glyph-block Letter-Latin-Lower-G : begin
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors LeaningAnchor
glyph-block-import Letter-Shared : CreateTurnedLetter
glyph-block-import Letter-Shared : CreateAccentedComposition CreateTurnedLetter
glyph-block-import Letter-Shared-Shapes : OBarLeft OBarRight FlatHookDepth
glyph-block-import Letter-Shared-Shapes : CurlyTail PalatalHook TopHook
@ -208,10 +208,10 @@ glyph-block Letter-Latin-Lower-G : begin
CreateTurnedLetter 'turng' 0x1D77 'g' HalfAdvance [mix Descender XH 0.5]
select-variant "gBar" 0x1E5 (follow -- 'g')
select-variant 'gScript' 0x261 (follow -- [conditional-follow SLAB 'g/singleStorey/autoSerifed/slab' 'g/singleStorey/autoSerifed/sans']) (shapeFrom -- 'g')
select-variant 'GScript' 0xA7AC (follow -- [conditional-follow SLAB 'g/singleStorey/autoSerifed/slab' 'g/singleStorey/autoSerifed/sans'])
select-variant 'gScript' 0x261 (follow -- [conditional-follow SLAB 'g/singleStorey/autoSerifed/slab' 'g/singleStorey/autoSerifed/sans']) (shapeFrom -- 'g')
select-variant 'GScript' 0xA7AC (follow -- [conditional-follow SLAB 'g/singleStorey/autoSerifed/slab' 'g/singleStorey/autoSerifed/sans'])
select-variant 'gScriptPalatalHook' 0x1D83 (follow -- [conditional-follow SLAB 'g/singleStorey/autoSerifed/slab' 'g/singleStorey/autoSerifed/sans']) (shapeFrom -- 'gPalatalHook')
select-variant 'gScriptBar' (follow -- [conditional-follow SLAB 'g/singleStorey/autoSerifed/slab' 'g/singleStorey/autoSerifed/sans']) (shapeFrom -- 'gBar')
select-variant 'gScriptBar' (follow -- [conditional-follow SLAB 'g/singleStorey/autoSerifed/slab' 'g/singleStorey/autoSerifed/sans']) (shapeFrom -- 'gBar')
select-variant 'gScriptCrossedTail' 0xAB36 (follow -- [conditional-follow SLAB 'g/singleStoreyBentHook/autoSerifed/slab' 'g/singleStoreyBentHook/autoSerifed/sans'])
alias 'cyrl/de.BGR' null 'gScript'
@ -238,3 +238,20 @@ glyph-block Letter-Latin-Lower-G : begin
include : intersection
VBar.r (RightSB - BBD) Descender XH BBS
SingleStorey.BentHookT spiro-outline [DivFrame 1] XH 1 BBS
CreateAccentedComposition 'gCircum' 0x11D 'g' 'circumflexAbove'
CreateAccentedComposition 'gBreve' 0x11F 'g' 'breveAbove'
CreateAccentedComposition 'gDot' 0x121 'g' 'dotAbove'
CreateAccentedComposition 'gCedilla' 0x123 'g' 'turnCommaAbove'
CreateAccentedComposition 'gCaron' 0x1E7 'g' 'caronAbove'
CreateAccentedComposition 'gAcute' 0x1F5 'g' 'acuteAbove'
CreateAccentedComposition 'gMacron' 0x1E21 'g' 'macronAbove'
CreateAccentedComposition 'gCircum/doubleStorey' null 'g/doubleStorey' 'circumflexAbove'
CreateAccentedComposition 'gBreve/doubleStorey' null 'g/doubleStorey' 'breveAbove'
CreateAccentedComposition 'gDot/doubleStorey' null 'g/doubleStorey' 'dotAbove'
CreateAccentedComposition 'gCaron/doubleStorey' null 'g/doubleStorey' 'caronAbove'
CreateAccentedComposition 'gAcute/doubleStorey' null 'g/doubleStorey' 'acuteAbove'
CreateAccentedComposition 'gMacron/doubleStorey' null 'g/doubleStorey' 'macronAbove'
derive-composites 'gCedilla/doubleStorey' null 'g/doubleStorey' 'cedillaExtShapeBelowSOArc'

View file

@ -38,7 +38,6 @@ export : define decompOverrides : object
# Latvians use comma instead of cedillas in several letters.
# Record them as custom decomposition.
0x122 { 'G' 'commaBelow' }
0x123 { 'g' 'turnCommaAbove' }
0x136 { 'K' 'commaBelow' }
0x137 { 'k' 'commaBelow' }
0x13B { 'L' 'commaBelow' }
@ -165,7 +164,6 @@ export : define decompOverrides : object
0x1E08 { 'CCedilla' 'acuteAbove' }
0x1E09 { 'cCedilla' 'acuteAbove' }
0x1E9A { 'a' 'rightHalfCircleTR' }
0x1E9C { 'longs' 'shortSlashOver' }
0x1EDA { 'OHorn' 'acuteAbove' }
0x1EDB { 'oHorn' 'acuteAbove' }