Handle breve too
This commit is contained in:
parent
73df44d395
commit
9fbd76e59e
55 changed files with 1310 additions and 1172 deletions
|
@ -1087,14 +1087,19 @@ glyph-block Mark-Above : begin
|
|||
include : HBar.t (markMiddle - markExtend) (markMiddle + markExtend) aboveMarkTop (markFine * 2)
|
||||
|
||||
# Scaled-down glyphs for Vietnamese's secondary mark
|
||||
define [VNSecondaryMark k] : glyph-proc
|
||||
include : ScaleAround markMiddle aboveMarkMid 0.75 0.75
|
||||
include : ApparentTranslate (1.5 * k * markExtend) (0.5 * AccentHeight)
|
||||
set-mark-anchor 'above' markMiddle aboveMarkStack markMiddle aboveMarkStack
|
||||
define [VNSecondaryMark s kx ky d] : glyph-proc
|
||||
include : ScaleAround markMiddle aboveMarkMid s s
|
||||
include : ApparentTranslate (1.5 * kx * markExtend) 0
|
||||
local my : aboveMarkStack - 0.5 * ky * AccentHeight
|
||||
set-mark-anchor 'above' markMiddle my markMiddle (my + d * AccentHeight)
|
||||
|
||||
derive-composites 'acuteAbove/viSecondary' null 'acuteAbove' [VNSecondaryMark 1]
|
||||
derive-composites 'graveAbove/viSecondary' null 'graveAbove' [VNSecondaryMark (-1)]
|
||||
derive-composites 'hookAbove/viSecondary' null 'hookAbove' [VNSecondaryMark 1]
|
||||
derive-composites 'acuteAbove/viSide' null 'acuteAbove' [VNSecondaryMark 0.75 1 1 0]
|
||||
derive-composites 'graveAbove/viSide' null 'graveAbove' [VNSecondaryMark 0.75 (-1) 1 0]
|
||||
derive-composites 'hookAbove/viSide' null 'hookAbove' [VNSecondaryMark 0.75 1 1 0]
|
||||
|
||||
derive-composites 'acuteAbove/viCenter' null 'acuteAbove' [VNSecondaryMark 0.875 0 1.75 0.5]
|
||||
derive-composites 'graveAbove/viCenter' null 'graveAbove' [VNSecondaryMark 0.875 0 1.75 0.5]
|
||||
derive-composites 'hookAbove/viCenter' null 'hookAbove' [VNSecondaryMark 0.875 0 1.75 0.5]
|
||||
|
||||
create-glyph 'leftParenAbove' 0x1AC1 : glyph-proc
|
||||
set-width 0
|
||||
|
|
|
@ -68,32 +68,33 @@ export : define [buildLOCL sink para glyphStore] : begin
|
|||
define [sx s] : lambda [t] : t.map : lambda [x] "\(x)/\(s)"
|
||||
|
||||
do "Decompose Vietnamese glyphs"
|
||||
local initials : new Set
|
||||
local medials : new Set
|
||||
local finals : new Set
|
||||
|
||||
local decompositionSubstitutions {.}
|
||||
loclVIT.lookups.push : AddLookup sink
|
||||
.type 'gsub_multiple'
|
||||
.substitutions decompositionSubstitutions
|
||||
local vnDualAboveMarkCodePoints 'ẦẤẨỀẾỂỒỐỔầấẩềếểồốổ'
|
||||
foreach ch vnDualAboveMarkCodePoints : begin
|
||||
|
||||
local viCircumflex 'ẦẤẨỀẾỂỒỐỔầấẩềếểồốổ'
|
||||
local viBreve 'ẮẰẲằắẳ'
|
||||
local viShiftableMarks { 'acuteAbove' 'graveAbove' 'hookAbove' }
|
||||
|
||||
foreach ch (viCircumflex + viBreve) : begin
|
||||
local u : ch.codePointAt 0
|
||||
local gn : glyphStore.queryNameByUnicode u
|
||||
local g : glyphStore.queryByNameEnsured gn
|
||||
local decomp : CvDecompose.get g
|
||||
set decompositionSubstitutions.(gn) decomp
|
||||
|
||||
initials.add decomp.0
|
||||
medials.add decomp.1
|
||||
finals.add decomp.2
|
||||
|
||||
loclVIT.lookups.push : AddLookup sink
|
||||
.type 'gsub_chaining'
|
||||
.rules : list
|
||||
chain-rule
|
||||
[Array.from initials ] ~> nothing
|
||||
[Array.from medials ] ~> nothing
|
||||
[Array.from finals ] ~> [sx 'viSecondary']
|
||||
{'A' 'a' 'E' 'e' 'O' 'o'} ~> nothing
|
||||
{'circumflexAbove'} ~> nothing
|
||||
viShiftableMarks ~> [sx 'viSide']
|
||||
chain-rule
|
||||
{'A' 'a'} ~> nothing
|
||||
{'breveAbove'} ~> nothing
|
||||
viShiftableMarks ~> [sx 'viCenter']
|
||||
|
||||
EndLookupBlock.Front rec sink
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue