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:
|
* Refine shape of the following characters:
|
||||||
- GREEK CAPITAL LETTER HETA (`U+0370`).
|
- GREEK CAPITAL LETTER HETA (`U+0370`).
|
||||||
- GREEK SMALL LETTER HETA (`U+0371`).
|
- GREEK SMALL LETTER HETA (`U+0371`).
|
||||||
|
- GREEK CAPITAL LETTER SHO (`U+03F7`).
|
||||||
- CYRILLIC CAPITAL LETTER SHHA (`U+04BA`).
|
- CYRILLIC CAPITAL LETTER SHHA (`U+04BA`).
|
||||||
- CYRILLIC CAPITAL LETTER KOMI DJE (`U+0502`) ... CYRILLIC SMALL LETTER KOMI ZJE (`U+0505`).
|
- 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`).
|
- 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 : VBar.m df.middle y2 y3 df.mvs
|
||||||
include : if fFlatTB
|
include : if fFlatTB
|
||||||
OShapeFlatTB y3 y2 df.leftSB df.rightSB df.mvs ada adb
|
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
|
OShape y3 y2 df.leftSB df.rightSB df.mvs ada adb
|
||||||
|
|
||||||
define [CyrlEfSplitRing fFlatTB df y2 y3 ada adb] : glyph-proc
|
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 [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
|
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
|
define [GrekCapitalPhiImpl fFlatTB df] : glyph-proc
|
||||||
local y2 : mix [if SLAB Stroke 0] [if SLAB (CAP - Stroke) CAP] 0.125
|
local y2 : yCapitalPhiBowlBot CAP SLAB
|
||||||
local y3 : mix [if SLAB Stroke 0] [if SLAB (CAP - Stroke) CAP] 0.875
|
local y3 : yCapitalPhiBowlTop CAP SLAB
|
||||||
include : VarPhiRing fFlatTB df y2 y3 df.archDepthA df.archDepthB
|
include : VarPhiRing fFlatTB df y2 y3 df.archDepthA df.archDepthB
|
||||||
include : StraightBar df 0 y2 y3 CAP
|
include : StraightBar df 0 y2 y3 CAP
|
||||||
|
|
||||||
|
|
|
@ -8,29 +8,31 @@ glyph-block Letter-Latin-Thorn : begin
|
||||||
glyph-block-import CommonShapes
|
glyph-block-import CommonShapes
|
||||||
glyph-block-import Common-Derivatives
|
glyph-block-import Common-Derivatives
|
||||||
glyph-block-import Mark-Adjustment : LeaningAnchor
|
glyph-block-import Mark-Adjustment : LeaningAnchor
|
||||||
glyph-block-import Letter-Shared-Shapes : OBarLeft LetterBarOverlay SerifFrame
|
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay SerifFrame
|
||||||
glyph-block-import Letter-Latin-Lower-P
|
glyph-block-import Letter-Greek-Phi : yCapitalPhiBowlBot yCapitalPhiBowlTop
|
||||||
|
|
||||||
define xThornLeftStroke : SB * 1.25
|
define xThornLeftStroke : SB * 1.25
|
||||||
|
|
||||||
define [yThornBowlSymmetricBot top slab] : top * 0.19 + [if slab (Stroke * 0.375) 0]
|
define [yThornBowlBot top slab] : top * 0.19 + [if slab (Stroke * 0.375) 0]
|
||||||
define [yThornBowlSymmetricTop top slab] : top - [yThornBowlSymmetricBot top slab]
|
define [yThornBowlTop top slab] : top - [yThornBowlBot top slab]
|
||||||
|
|
||||||
define [yThornBowlAsymmetricBot top slab] : top * 0.25 + [if slab (Stroke * 0.125) 0]
|
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 [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
|
define [ThornShapeImpl top slabTop slabBot yBowlBot yBowlTop] : glyph-proc
|
||||||
local turn : mix yBowlTop yBowlBot (ArchDepthB / (ArchDepthA + ArchDepthB))
|
local xTurn : Math.max
|
||||||
local turnRadius : (yBowlTop - yBowlBot) / 2
|
RightSB - (yBowlTop - yBowlBot) * 0.5
|
||||||
|
mix xThornLeftStroke RightSB 0.25
|
||||||
|
xThornLeftStroke + [HSwToV Stroke]
|
||||||
|
|
||||||
include : dispiro
|
include : dispiro
|
||||||
widths.rhs
|
widths.rhs
|
||||||
flat xThornLeftStroke yBowlTop [heading Rightward]
|
flat xThornLeftStroke yBowlTop [heading Rightward]
|
||||||
curl [arch.adjust-x.top (RightSB - turnRadius)] yBowlTop
|
curl [arch.adjust-x.top xTurn] yBowlTop
|
||||||
archv
|
archv
|
||||||
g4 (RightSB - O) turn
|
g4 (RightSB - O) [mix yBowlTop yBowlBot (ArchDepthB / (ArchDepthA + ArchDepthB))]
|
||||||
arcvh
|
arcvh
|
||||||
flat [arch.adjust-x.bot (RightSB - turnRadius)] yBowlBot
|
flat [arch.adjust-x.bot xTurn] yBowlBot
|
||||||
curl xThornLeftStroke yBowlBot [heading Leftward]
|
curl xThornLeftStroke yBowlBot [heading Leftward]
|
||||||
|
|
||||||
include : VBar.l xThornLeftStroke 0 top
|
include : VBar.l xThornLeftStroke 0 top
|
||||||
|
@ -43,9 +45,9 @@ glyph-block Letter-Latin-Thorn : begin
|
||||||
include : LeaningAnchor.Above.VBar.l xThornLeftStroke
|
include : LeaningAnchor.Above.VBar.l xThornLeftStroke
|
||||||
include : LeaningAnchor.Below.VBar.l xThornLeftStroke
|
include : LeaningAnchor.Below.VBar.l xThornLeftStroke
|
||||||
|
|
||||||
define [ThornSymmetricShape top slabTop slabBot] : ThornShapeImpl top slabTop slabBot
|
define [ThornShape top slabTop slabBot] : ThornShapeImpl top slabTop slabBot
|
||||||
yThornBowlSymmetricBot top slabBot
|
yThornBowlBot top slabBot
|
||||||
yThornBowlSymmetricTop top slabBot
|
yThornBowlTop top slabBot
|
||||||
|
|
||||||
define [ThornAsymmetricShape top slabTop slabBot] : ThornShapeImpl top slabTop slabBot
|
define [ThornAsymmetricShape top slabTop slabBot] : ThornShapeImpl top slabTop slabBot
|
||||||
yThornBowlAsymmetricBot top slabBot
|
yThornBowlAsymmetricBot top slabBot
|
||||||
|
@ -53,7 +55,7 @@ glyph-block Letter-Latin-Thorn : begin
|
||||||
|
|
||||||
define ThornConfig : SuffixCfg.weave
|
define ThornConfig : SuffixCfg.weave
|
||||||
object # symmetry
|
object # symmetry
|
||||||
"" ThornSymmetricShape
|
"" ThornShape
|
||||||
asymmetric ThornAsymmetricShape
|
asymmetric ThornAsymmetricShape
|
||||||
object # serifs
|
object # serifs
|
||||||
serifless { false false }
|
serifless { false false }
|
||||||
|
@ -88,4 +90,8 @@ glyph-block Letter-Latin-Thorn : begin
|
||||||
select-variant 'ThornStroke' 0xA764
|
select-variant 'ThornStroke' 0xA764
|
||||||
select-variant 'ThornStrokeBottom' 0xA766
|
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