Fixup ydot and greeks
This commit is contained in:
parent
2b4563c39f
commit
a1b24e1a3b
4 changed files with 28 additions and 42 deletions
|
@ -35,30 +35,13 @@ glyph-block Autobuild-Enclosure-Shared : begin
|
||||||
return name
|
return name
|
||||||
|
|
||||||
glyph-block-export EnsureComponentGlyphT
|
glyph-block-export EnsureComponentGlyphT
|
||||||
define [EnsureComponentGlyphT gidPart fnBuildup] : begin
|
define [EnsureComponentGlyphT gnPart fnBuildup] : begin
|
||||||
local rs : new Set
|
local rs : new Set
|
||||||
local linksGnMap : new Map
|
return : DeriveMeshT { gnPart } AnyCv
|
||||||
|
function [gns gr] : fnBuildup gns.0
|
||||||
# Build the original
|
function [gniFrom gniTo] : begin
|
||||||
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
|
|
||||||
[query-glyph gniFrom].tryBecomeMirrorOf [query-glyph gniTo] rs
|
[query-glyph gniFrom].tryBecomeMirrorOf [query-glyph gniTo] rs
|
||||||
|
|
||||||
return gniPart
|
|
||||||
|
|
||||||
glyph-block-export getGlyphDefaultShift
|
glyph-block-export getGlyphDefaultShift
|
||||||
define [getGlyphDefaultShift bal baly g] : begin
|
define [getGlyphDefaultShift bal baly g] : begin
|
||||||
if (g && g.baseAnchors.above && g.baseAnchors.below) : begin
|
if (g && g.baseAnchors.above && g.baseAnchors.below) : begin
|
||||||
|
|
|
@ -59,7 +59,7 @@ glyph-block Common-Derivatives : begin
|
||||||
this.includeGlyph goal copyAnchors copyWidth
|
this.includeGlyph goal copyAnchors copyWidth
|
||||||
|
|
||||||
glyph-block-export DeriveMeshT
|
glyph-block-export DeriveMeshT
|
||||||
define [DeriveMeshT gnSources Query Fn] : begin
|
define [DeriveMeshT gnSources Query Fn FnLink] : begin
|
||||||
local linksGnMap : new Map
|
local linksGnMap : new Map
|
||||||
|
|
||||||
# Build principal
|
# Build principal
|
||||||
|
@ -81,6 +81,7 @@ glyph-block Common-Derivatives : begin
|
||||||
local gndTo : linksGnMap.get [keyOfGnList to]
|
local gndTo : linksGnMap.get [keyOfGnList to]
|
||||||
if (gndFrom && gndTo && [query-glyph gndFrom] && [query-glyph gndTo]) : begin
|
if (gndFrom && gndTo && [query-glyph gndFrom] && [query-glyph gndTo]) : begin
|
||||||
gr.set [query-glyph gndFrom] gndTo
|
gr.set [query-glyph gndFrom] gndTo
|
||||||
|
if FnLink : FnLink gndFrom gndTo from to
|
||||||
|
|
||||||
return gndSource
|
return gndSource
|
||||||
define [keyOfGnList gns] ".deriveKey{\[gns.join '}{']}"
|
define [keyOfGnList gns] ".deriveKey{\[gns.join '}{']}"
|
||||||
|
|
|
@ -8,6 +8,7 @@ glyph-module
|
||||||
glyph-block Letter-Latin-Lower-Y : begin
|
glyph-block Letter-Latin-Lower-Y : begin
|
||||||
glyph-block-import CommonShapes
|
glyph-block-import CommonShapes
|
||||||
glyph-block-import Common-Derivatives
|
glyph-block-import Common-Derivatives
|
||||||
|
glyph-block-import Letter-Shared : CreateAccentedComposition
|
||||||
glyph-block-import Mark-Below : belowMarkStack
|
glyph-block-import Mark-Below : belowMarkStack
|
||||||
glyph-block-import Letter-Shared-Shapes : nShoulder FlatHookDepth SerifFrame
|
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
|
link-reduced-variant 'y/sansSerif' 'y' MathSansSerif
|
||||||
alias 'cyrl/u' 0x443 'y'
|
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
|
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
|
create-glyph : glyph-proc
|
||||||
include : MarkSet.p
|
include : MarkSet.p
|
||||||
|
|
|
@ -49,9 +49,9 @@ glyph-block Mark-Composite : begin
|
||||||
|
|
||||||
local yc : aboveMarkTop - commaAboveRadius + DotRadius * 0.3 + commaOvershoot
|
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
|
set-width 0
|
||||||
include : refer-glyph "commaAbove"
|
include : refer-glyph src
|
||||||
local radius : Math.max (markExtend - commaAboveRadius) (commaAboveRadius * 1.25)
|
local radius : Math.max (markExtend - commaAboveRadius) (commaAboveRadius * 1.25)
|
||||||
include : dispiro
|
include : dispiro
|
||||||
widths.lhs : Math.min (markHalfStroke * 2) ([AdviceStroke 6.5] * 1.25)
|
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]
|
g4.down.end (markMiddle + radius) yc [heading Downward]
|
||||||
set-mark-anchor 'above' markMiddle XH markMiddle (aboveMarkStack + markHalfStroke * 2)
|
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
|
set-width 0
|
||||||
include : refer-glyph 'psiliPerispomeni'
|
include : refer-glyph src
|
||||||
set-mark-anchor 'grekUpperTonos' markMiddle XH
|
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
|
include [refer-glyph 'markBaseSpace'] AS_BASE
|
||||||
set-width [query-glyph 'markBaseSpace'].advanceWidth
|
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
|
set-width 0
|
||||||
include : refer-glyph "revCommaAbove"
|
include : refer-glyph src
|
||||||
local radius : Math.max (markExtend - commaAboveRadius) (commaAboveRadius * 1.25)
|
local radius : Math.max (markExtend - commaAboveRadius) (commaAboveRadius * 1.25)
|
||||||
include : dispiro
|
include : dispiro
|
||||||
widths.lhs : Math.min (markHalfStroke * 2) ([AdviceStroke 6.5] * 1.25)
|
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]
|
g4.down.end (markMiddle + radius) yc [heading Downward]
|
||||||
set-mark-anchor 'above' markMiddle XH markMiddle (aboveMarkStack + markHalfStroke * 2)
|
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
|
set-width 0
|
||||||
include : refer-glyph 'dasiaPerispomeni'
|
include : refer-glyph src
|
||||||
set-mark-anchor 'grekUpperTonos' markMiddle XH
|
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
|
set-width 0
|
||||||
include : refer-glyph "commaAbove"
|
include : refer-glyph src
|
||||||
local radius : Math.max (markExtend - commaAboveRadius) (commaAboveRadius * 1.25)
|
local radius : Math.max (markExtend - commaAboveRadius) (commaAboveRadius * 1.25)
|
||||||
local sw : Math.min (markHalfStroke * 2) ([AdviceStroke 6.5] * 1.25)
|
local sw : Math.min (markHalfStroke * 2) ([AdviceStroke 6.5] * 1.25)
|
||||||
include : dispiro
|
include : dispiro
|
||||||
|
@ -103,8 +109,3 @@ glyph-block Mark-Composite : begin
|
||||||
alsoThru.g2 0.5 0.5
|
alsoThru.g2 0.5 0.5
|
||||||
g2.right.end (markMiddle + [Math.max radius (markExtend * 2)]) yc [heading Rightward]
|
g2.right.end (markMiddle + [Math.max radius (markExtend * 2)]) yc [heading Rightward]
|
||||||
set-mark-anchor 'above' markMiddle XH markMiddle (aboveMarkStack + markHalfStroke * 2)
|
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"
|
|
Loading…
Add table
Add a link
Reference in a new issue