Optimize glyph for Greek Capital Sho. (#2691)
This commit is contained in:
parent
85fe85ff2e
commit
550f7bdd86
3 changed files with 31 additions and 17 deletions
|
@ -9,6 +9,7 @@
|
|||
* Refine shape of the following characters:
|
||||
- GREEK CAPITAL LETTER HETA (`U+0370`).
|
||||
- GREEK SMALL LETTER HETA (`U+0371`).
|
||||
- GREEK CAPITAL LETTER SHO (`U+03F7`).
|
||||
- CYRILLIC CAPITAL LETTER SHHA (`U+04BA`).
|
||||
- CYRILLIC CAPITAL LETTER KOMI DJE (`U+0502`) ... CYRILLIC SMALL LETTER KOMI ZJE (`U+0505`).
|
||||
- CYRILLIC CAPITAL LETTER KOMI LJE (`U+0508`) ... CYRILLIC SMALL LETTER KOMI TJE (`U+050F`).
|
||||
|
|
|
@ -15,7 +15,10 @@ glyph-block Letter-Greek-Phi : begin
|
|||
include : VBar.m df.middle y2 y3 df.mvs
|
||||
include : if fFlatTB
|
||||
OShapeFlatTB y3 y2 df.leftSB df.rightSB df.mvs ada adb
|
||||
Math.max (0.25 * (df.rightSB - df.leftSB)) : HSwToV df.mvs
|
||||
Math.max
|
||||
(df.rightSB - df.leftSB) - (y3 - y2)
|
||||
(df.rightSB - df.leftSB) * 0.25
|
||||
HSwToV df.mvs
|
||||
OShape y3 y2 df.leftSB df.rightSB df.mvs ada adb
|
||||
|
||||
define [CyrlEfSplitRing fFlatTB df y2 y3 ada adb] : glyph-proc
|
||||
|
@ -100,9 +103,13 @@ glyph-block Letter-Greek-Phi : begin
|
|||
define [MtSerif df y sw] : tagged 'serifMT' : HSerif.lt df.middle y Jut sw
|
||||
define [MbSerif df y sw] : tagged 'serifMB' : HSerif.mb df.middle y Jut sw
|
||||
|
||||
glyph-block-export yCapitalPhiBowlBot yCapitalPhiBowlTop
|
||||
define [yCapitalPhiBowlBot top slab] : mix [if slab Stroke 0] [if slab (top - Stroke) top] 0.125
|
||||
define [yCapitalPhiBowlTop top slab] : mix [if slab Stroke 0] [if slab (top - Stroke) top] 0.875
|
||||
|
||||
define [GrekCapitalPhiImpl fFlatTB df] : glyph-proc
|
||||
local y2 : mix [if SLAB Stroke 0] [if SLAB (CAP - Stroke) CAP] 0.125
|
||||
local y3 : mix [if SLAB Stroke 0] [if SLAB (CAP - Stroke) CAP] 0.875
|
||||
local y2 : yCapitalPhiBowlBot CAP SLAB
|
||||
local y3 : yCapitalPhiBowlTop CAP SLAB
|
||||
include : VarPhiRing fFlatTB df y2 y3 df.archDepthA df.archDepthB
|
||||
include : StraightBar df 0 y2 y3 CAP
|
||||
|
||||
|
|
|
@ -8,29 +8,31 @@ glyph-block Letter-Latin-Thorn : begin
|
|||
glyph-block-import CommonShapes
|
||||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Mark-Adjustment : LeaningAnchor
|
||||
glyph-block-import Letter-Shared-Shapes : OBarLeft LetterBarOverlay SerifFrame
|
||||
glyph-block-import Letter-Latin-Lower-P
|
||||
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay SerifFrame
|
||||
glyph-block-import Letter-Greek-Phi : yCapitalPhiBowlBot yCapitalPhiBowlTop
|
||||
|
||||
define xThornLeftStroke : SB * 1.25
|
||||
|
||||
define [yThornBowlSymmetricBot top slab] : top * 0.19 + [if slab (Stroke * 0.375) 0]
|
||||
define [yThornBowlSymmetricTop top slab] : top - [yThornBowlSymmetricBot top slab]
|
||||
define [yThornBowlBot top slab] : top * 0.19 + [if slab (Stroke * 0.375) 0]
|
||||
define [yThornBowlTop top slab] : top - [yThornBowlBot top slab]
|
||||
|
||||
define [yThornBowlAsymmetricBot top slab] : top * 0.25 + [if slab (Stroke * 0.125) 0]
|
||||
define [yThornBowlAsymmetricTop top slab] : top - 0.7 * [yThornBowlAsymmetricBot top slab] + [if slab (-0.125) 0.25] * Stroke
|
||||
|
||||
define [ThornShapeImpl top slabTop slabBot yBowlBot yBowlTop] : glyph-proc
|
||||
local turn : mix yBowlTop yBowlBot (ArchDepthB / (ArchDepthA + ArchDepthB))
|
||||
local turnRadius : (yBowlTop - yBowlBot) / 2
|
||||
local xTurn : Math.max
|
||||
RightSB - (yBowlTop - yBowlBot) * 0.5
|
||||
mix xThornLeftStroke RightSB 0.25
|
||||
xThornLeftStroke + [HSwToV Stroke]
|
||||
|
||||
include : dispiro
|
||||
widths.rhs
|
||||
flat xThornLeftStroke yBowlTop [heading Rightward]
|
||||
curl [arch.adjust-x.top (RightSB - turnRadius)] yBowlTop
|
||||
curl [arch.adjust-x.top xTurn] yBowlTop
|
||||
archv
|
||||
g4 (RightSB - O) turn
|
||||
g4 (RightSB - O) [mix yBowlTop yBowlBot (ArchDepthB / (ArchDepthA + ArchDepthB))]
|
||||
arcvh
|
||||
flat [arch.adjust-x.bot (RightSB - turnRadius)] yBowlBot
|
||||
flat [arch.adjust-x.bot xTurn] yBowlBot
|
||||
curl xThornLeftStroke yBowlBot [heading Leftward]
|
||||
|
||||
include : VBar.l xThornLeftStroke 0 top
|
||||
|
@ -43,9 +45,9 @@ glyph-block Letter-Latin-Thorn : begin
|
|||
include : LeaningAnchor.Above.VBar.l xThornLeftStroke
|
||||
include : LeaningAnchor.Below.VBar.l xThornLeftStroke
|
||||
|
||||
define [ThornSymmetricShape top slabTop slabBot] : ThornShapeImpl top slabTop slabBot
|
||||
yThornBowlSymmetricBot top slabBot
|
||||
yThornBowlSymmetricTop top slabBot
|
||||
define [ThornShape top slabTop slabBot] : ThornShapeImpl top slabTop slabBot
|
||||
yThornBowlBot top slabBot
|
||||
yThornBowlTop top slabBot
|
||||
|
||||
define [ThornAsymmetricShape top slabTop slabBot] : ThornShapeImpl top slabTop slabBot
|
||||
yThornBowlAsymmetricBot top slabBot
|
||||
|
@ -53,7 +55,7 @@ glyph-block Letter-Latin-Thorn : begin
|
|||
|
||||
define ThornConfig : SuffixCfg.weave
|
||||
object # symmetry
|
||||
"" ThornSymmetricShape
|
||||
"" ThornShape
|
||||
asymmetric ThornAsymmetricShape
|
||||
object # serifs
|
||||
serifless { false false }
|
||||
|
@ -88,4 +90,8 @@ glyph-block Letter-Latin-Thorn : begin
|
|||
select-variant 'ThornStroke' 0xA764
|
||||
select-variant 'ThornStrokeBottom' 0xA766
|
||||
|
||||
alias 'grek/Sho' 0x3F7 : if SLAB 'Thorn.serifed' 'Thorn.serifless'
|
||||
create-glyph 'grek/Sho' 0x3F7 : glyph-proc
|
||||
include : MarkSet.capital
|
||||
include : ThornShapeImpl CAP SLAB SLAB
|
||||
yCapitalPhiBowlBot CAP SLAB
|
||||
yCapitalPhiBowlTop CAP SLAB
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue