Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve serifs of Bulgarian Cyrillic Lower Zhe. #2625

Merged
merged 2 commits into from
Dec 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions changes/32.3.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
- LATIN CAPITAL LETTER REVERSED HALF H (`U+A7F5`).
- LATIN SMALL LETTER REVERSED HALF H (`U+A7F6`).
* Fix shape of `U+276E` and `U+276E` (#2603).
* Improve serifs of Bulgarian Cyrillic Lower Zhe (`ж`).
* Add characters:
- OPEN CENTRE CROSS (`U+271B`).
- HEAVY OPEN CENTRE CROSS (`U+271C`).
Expand Down
25 changes: 15 additions & 10 deletions packages/font-glyphs/src/letter/cyrillic/zhe.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,18 @@ glyph-block Letter-Cyrillic-Zhe : begin
define [ZheSw df] : AdviceStroke 3.3 df.div
define [ZheSw2 df] : AdviceStroke 4.0 df.div
define [ZheSw3 df] : AdviceStroke 3.7 df.div
define [Overshoot fSlab df] : if fSlab 0 (O * 3 * df.div)
define [Overshoot fSlab df] : if fSlab 0 : O * 3 * df.div

define [CenterBar fSlab df bot midTop] : glyph-proc
include : VBar.m df.middle bot midTop [ZheSw df]
if (fSlab && !para.isItalic && (df.width > 7 * para.refJut)) : begin
include : HSerif.mb df.middle bot Jut
include : HSerif.mt df.middle midTop Jut
define [CenterBar fSlab df bot top midTop] : glyph-proc
define fine : ZheSw df
include : VBar.m df.middle bot midTop fine
if fSlab : begin
local fBGR : midTop > top
local fEnoughSpaceForFullSerifs : df.width > 7 * para.refJut
if (!para.isItalic && fEnoughSpaceForFullSerifs) : begin
include : HSerif.mb df.middle bot Jut
if (!fBGR) : include : HSerif.mt df.middle midTop Jut
if fBGR : include : HSerif.lt (df.middle - [HSwToV : 0.5 * fine]) midTop SideJut

define [LegSerifs fSlab fHalf df bot top] : glyph-proc
define fine : ZheSw df
Expand All @@ -36,7 +41,7 @@ glyph-block Letter-Cyrillic-Zhe : begin
define sw : ZheSw df
define fineK 0.1
return : CyrDescender.rSideJut
x -- df.rightSB - fineK * sw - [Overshoot fSlab df]
x -- (df.rightSB - fineK * sw - [Overshoot fSlab df])
y -- 0
refSw -- sw
sideJut -- SideJut
Expand Down Expand Up @@ -76,7 +81,7 @@ glyph-block Letter-Cyrillic-Zhe : begin
export : define [CurlyLegs fSlab fHalf df bot top] : begin
define fine : ZheSw df
define fine2 : ZheSw3 df
define overshoot : if fSlab 0 (2 * O * df.div)
define overshoot : if fSlab 0 : 2 * O * df.div

define attach1X : df.middle - [HSwToV : 0.5 * fine]
define attach1Y : mix bot top : if fSlab 0.325 0.375
Expand Down Expand Up @@ -167,12 +172,12 @@ glyph-block Letter-Cyrillic-Zhe : begin
return : union fullShape : HBar.m [if fHalf df.middle (midX + 0.5 * fine)] (df.width - (midX + 0.5 * fine)) midY fine

export : define [Shape Legs fSlab fMidSlab df bot top midTop] : glyph-proc
include : CenterBar fMidSlab df bot midTop
include : CenterBar fMidSlab df bot top midTop
include : Legs fSlab false df bot top
include : LegSerifs fSlab false df bot top

export : define [HalfShape Legs fSlab fMidSlab df bot top midTop] : glyph-proc
include : CenterBar fMidSlab df bot midTop
include : CenterBar fMidSlab df bot top midTop
include : Legs fSlab true df bot top
include : LegSerifs fSlab true df bot top

Expand Down
Loading