Fixup ydot and greeks

This commit is contained in:
be5invis 2022-02-19 19:03:52 -08:00
parent 2b4563c39f
commit a1b24e1a3b
4 changed files with 28 additions and 42 deletions

View file

@ -35,30 +35,13 @@ glyph-block Autobuild-Enclosure-Shared : begin
return name
glyph-block-export EnsureComponentGlyphT
define [EnsureComponentGlyphT gidPart fnBuildup] : begin
define [EnsureComponentGlyphT gnPart fnBuildup] : begin
local rs : new Set
local linksGnMap : new Map
# Build the original
local gniPart : fnBuildup gidPart
linksGnMap.set gidPart gniPart
# Build the related, using a mesh query to find out all variants
local mesh : getGrMesh { gidPart } AnyCv query-glyph
foreach { gr { from } { relatedGidPart } } [items-of mesh] : begin
local gniRelated : fnBuildup relatedGidPart
linksGnMap.set relatedGidPart gniRelated
# Link relations
foreach { gr { from } { to } } [items-of mesh] : begin
local gniFrom : linksGnMap.get from
local gniTo : linksGnMap.get to
if (gniFrom && gniTo && [query-glyph gniFrom] && [query-glyph gniTo]) : begin
gr.set [query-glyph gniFrom] gniTo
return : DeriveMeshT { gnPart } AnyCv
function [gns gr] : fnBuildup gns.0
function [gniFrom gniTo] : begin
[query-glyph gniFrom].tryBecomeMirrorOf [query-glyph gniTo] rs
return gniPart
glyph-block-export getGlyphDefaultShift
define [getGlyphDefaultShift bal baly g] : begin
if (g && g.baseAnchors.above && g.baseAnchors.below) : begin

View file

@ -59,7 +59,7 @@ glyph-block Common-Derivatives : begin
this.includeGlyph goal copyAnchors copyWidth
glyph-block-export DeriveMeshT
define [DeriveMeshT gnSources Query Fn] : begin
define [DeriveMeshT gnSources Query Fn FnLink] : begin
local linksGnMap : new Map
# Build principal
@ -81,6 +81,7 @@ glyph-block Common-Derivatives : begin
local gndTo : linksGnMap.get [keyOfGnList to]
if (gndFrom && gndTo && [query-glyph gndFrom] && [query-glyph gndTo]) : begin
gr.set [query-glyph gndFrom] gndTo
if FnLink : FnLink gndFrom gndTo from to
return gndSource
define [keyOfGnList gns] ".deriveKey{\[gns.join '}{']}"

View file

@ -8,6 +8,7 @@ glyph-module
glyph-block Letter-Latin-Lower-Y : begin
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared : CreateAccentedComposition
glyph-block-import Mark-Below : belowMarkStack
glyph-block-import Letter-Shared-Shapes : nShoulder FlatHookDepth SerifFrame
@ -287,11 +288,11 @@ glyph-block Letter-Latin-Lower-Y : begin
link-reduced-variant 'y/sansSerif' 'y' MathSansSerif
alias 'cyrl/u' 0x443 'y'
create-glyph 'yDotBelowDot1' : glyph-proc
WithDotVariants 'yDotBelowDot1' null : function [DrawAt kdr] : glyph-proc
set-mark-anchor 'yBelowDot' 0 0 0 belowMarkStack
include : DotAt 0 (-AccentStackOffset) DotRadius
include : DrawAt 0 (-AccentStackOffset) (DotRadius * kdr)
derive-composites 'yDotBelow' 0x1EF5 'y' 'yDotBelowDot1'
CreateAccentedComposition 'yDotBelow' 0x1EF5 'y' 'yDotBelowDot1'
create-glyph : glyph-proc
include : MarkSet.p

View file

@ -49,9 +49,9 @@ glyph-block Mark-Composite : begin
local yc : aboveMarkTop - commaAboveRadius + DotRadius * 0.3 + commaOvershoot
create-glyph 'psiliPerispomeni' : glyph-proc
derive-glyphs 'psiliPerispomeni' null 'commaAbove' : function [src gr] : glyph-proc
set-width 0
include : refer-glyph "commaAbove"
include : refer-glyph src
local radius : Math.max (markExtend - commaAboveRadius) (commaAboveRadius * 1.25)
include : dispiro
widths.lhs : Math.min (markHalfStroke * 2) ([AdviceStroke 6.5] * 1.25)
@ -62,19 +62,19 @@ glyph-block Mark-Composite : begin
g4.down.end (markMiddle + radius) yc [heading Downward]
set-mark-anchor 'above' markMiddle XH markMiddle (aboveMarkStack + markHalfStroke * 2)
create-glyph 'psiliPerispomeniGrekUpperTonos' : glyph-proc
derive-glyphs 'psiliPerispomeniGrekUpperTonos' null 'psiliPerispomeni' : function [src gr] : glyph-proc
set-width 0
include : refer-glyph 'psiliPerispomeni'
include : refer-glyph src
set-mark-anchor 'grekUpperTonos' markMiddle XH
create-glyph 'spaced_psiliPerispomeni' 0x1FCF : glyph-proc
derive-glyphs 'spaced_psiliPerispomeni' 0x1FCF 'psiliPerispomeni' : function [src gr] : glyph-proc
include [refer-glyph 'markBaseSpace'] AS_BASE
set-width [query-glyph 'markBaseSpace'].advanceWidth
include : refer-glyph "psiliPerispomeni"
include : refer-glyph src
create-glyph 'dasiaPerispomeni' : glyph-proc
derive-glyphs 'dasiaPerispomeni' null 'revCommaAbove' : function [src gr] : glyph-proc
set-width 0
include : refer-glyph "revCommaAbove"
include : refer-glyph src
local radius : Math.max (markExtend - commaAboveRadius) (commaAboveRadius * 1.25)
include : dispiro
widths.lhs : Math.min (markHalfStroke * 2) ([AdviceStroke 6.5] * 1.25)
@ -85,14 +85,20 @@ glyph-block Mark-Composite : begin
g4.down.end (markMiddle + radius) yc [heading Downward]
set-mark-anchor 'above' markMiddle XH markMiddle (aboveMarkStack + markHalfStroke * 2)
create-glyph 'dasiaPerispomeniGrekUpperTonos' : glyph-proc
derive-glyphs 'dasiaPerispomeniGrekUpperTonos' null 'dasiaPerispomeni' : function [src gr] : glyph-proc
set-width 0
include : refer-glyph 'dasiaPerispomeni'
include : refer-glyph src
set-mark-anchor 'grekUpperTonos' markMiddle XH
create-glyph 'cyrlPsiliPokrytieAbove' : glyph-proc
derive-glyphs 'spaced_dasiaPerispomeni' 0x1FDF 'dasiaPerispomeni' : function [src gr] : glyph-proc
include [refer-glyph 'markBaseSpace'] AS_BASE
set-width [query-glyph 'markBaseSpace'].advanceWidth
include : refer-glyph src
set-mark-anchor 'grekUpperTonos' markMiddle XH
derive-glyphs 'cyrlPsiliPokrytieAbove' null 'commaAbove' : function [src gr] : glyph-proc
set-width 0
include : refer-glyph "commaAbove"
include : refer-glyph src
local radius : Math.max (markExtend - commaAboveRadius) (commaAboveRadius * 1.25)
local sw : Math.min (markHalfStroke * 2) ([AdviceStroke 6.5] * 1.25)
include : dispiro
@ -103,8 +109,3 @@ glyph-block Mark-Composite : begin
alsoThru.g2 0.5 0.5
g2.right.end (markMiddle + [Math.max radius (markExtend * 2)]) yc [heading Rightward]
set-mark-anchor 'above' markMiddle XH markMiddle (aboveMarkStack + markHalfStroke * 2)
create-glyph 'spaced_dasiaPerispomeni' 0x1FDF : glyph-proc
include [refer-glyph 'markBaseSpace'] AS_BASE
set-width [query-glyph 'markBaseSpace'].advanceWidth
include : refer-glyph "dasiaPerispomeni"