Add P with Stroke Through Descender. (#2131)
This commit is contained in:
parent
28b84bfe29
commit
ab2535d163
5 changed files with 53 additions and 27 deletions
|
@ -1,2 +1,5 @@
|
|||
* Add characters:
|
||||
- LATIN CAPITAL LETTER P WITH STROKE THROUGH DESCENDER (`U+A750`) (#1797).
|
||||
- LATIN SMALL LETTER P WITH STROKE THROUGH DESCENDER (`U+A751`) (#1797).
|
||||
* Remove tailless variants for Latin Iota (`U+0196`, `U+0269`) and Cyrillic Iota (`U+A646`, `U+A647`).
|
||||
* Fix slash ligations when `frac` feature is enabled (#2130).
|
||||
|
|
|
@ -61,30 +61,20 @@ glyph-block Letter-Latin-Thorn : begin
|
|||
# include : LeaningAnchor.Above.VBar.l xThornLeftStroke
|
||||
# include : LeaningAnchor.Below.VBar.l xThornLeftStroke
|
||||
|
||||
create-glyph 'ThornBarTop/base' : glyph-proc
|
||||
create-glyph 'ThornStroke/base' : glyph-proc
|
||||
include : MarkSet.capital
|
||||
include : ThornShape CAP (CAP - [yThornBowlTop CAP]) (CAP - [yThornBowlBot CAP])
|
||||
include : LeaningAnchor.Above.VBar.l xThornLeftStroke
|
||||
include : LeaningAnchor.Below.VBar.l xThornLeftStroke
|
||||
|
||||
create-glyph 'ThornBarTop/Overlay' : LetterBarOverlay.l.in
|
||||
create-glyph 'ThornStroke/Overlay' : LetterBarOverlay.l.in
|
||||
x -- xThornLeftStroke
|
||||
top -- (CAP - [if SLAB Stroke 0])
|
||||
bot -- (CAP - [yThornBowlBot CAP])
|
||||
create-glyph 'thornBarTop/Overlay' : LetterBarOverlay.l.in
|
||||
x -- SB
|
||||
top -- (Ascender - [if SLAB Stroke 0])
|
||||
bot -- XH
|
||||
create-glyph 'ThornBarBot/Overlay' : LetterBarOverlay.l.in
|
||||
derive-composites 'ThornStroke' 0xA764 'ThornStroke/base' 'ThornStroke/Overlay'
|
||||
|
||||
create-glyph 'ThornStrokeBot/Overlay' : LetterBarOverlay.l.in
|
||||
x -- xThornLeftStroke
|
||||
bot -- (0 + [if SLAB Stroke 0])
|
||||
top -- (0 + [yThornBowlBot CAP])
|
||||
create-glyph 'thornBarBot/Overlay' : LetterBarOverlay.l.in
|
||||
x -- SB
|
||||
bot -- (Descender + [if SLAB Stroke 0])
|
||||
top -- 0
|
||||
|
||||
derive-composites 'ThornBarTop' 0xA764 'ThornBarTop/base' 'ThornBarTop/Overlay'
|
||||
derive-composites 'thornBarTop' 0xA765 'thorn' 'thornBarTop/Overlay'
|
||||
derive-composites 'ThornBarBot' 0xA766 'Thorn' 'ThornBarBot/Overlay'
|
||||
derive-composites 'thornBarBot' 0xA767 'thorn' 'thornBarBot/Overlay'
|
||||
derive-composites 'ThornStrokeBot' 0xA766 'Thorn' 'ThornStrokeBot/Overlay'
|
||||
|
|
|
@ -10,7 +10,8 @@ glyph-block Letter-Latin-Lower-P : begin
|
|||
glyph-block-import Common-Derivatives
|
||||
glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors LeaningAnchor
|
||||
glyph-block-import Letter-Shared : CreateAccentedComposition
|
||||
glyph-block-import Letter-Shared-Shapes : OBarLeft DToothlessRise DMBlend
|
||||
glyph-block-import Letter-Shared-Shapes : OBarLeft LetterBarOverlay
|
||||
glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend
|
||||
glyph-block-import Letter-Shared-Shapes : TopHook PalatalHook SerifFrame
|
||||
|
||||
|
||||
|
@ -55,12 +56,12 @@ glyph-block Letter-Latin-Lower-P : begin
|
|||
earlessCorner EarlessCornerBody
|
||||
earlessRounded EarlessRoundedBody
|
||||
object # serifs
|
||||
serifless { no-shape false }
|
||||
motionSerifed { MotionSerif false }
|
||||
bottomSerifed { BottomSerif true }
|
||||
serifed { FullSerifs true }
|
||||
serifless { no-shape false false }
|
||||
motionSerifed { MotionSerif true false }
|
||||
bottomSerifed { BottomSerif false true }
|
||||
serifed { FullSerifs true true }
|
||||
|
||||
foreach { suffix { Body {Serifs doBS} }} [Object.entries PConfig] : do
|
||||
foreach { suffix { Body {Serifs doTS doBS} }} [Object.entries PConfig] : do
|
||||
local yOverlay : mix 0 (Descender + [if doBS Stroke 0]) 0.5
|
||||
local df : DivFrame 1
|
||||
|
||||
|
@ -72,6 +73,13 @@ glyph-block Letter-Latin-Lower-P : begin
|
|||
set-base-anchor 'overlayOnExtension' (SB + [HSwToV : 0.5 * Stroke]) yOverlay
|
||||
set-base-anchor 'strike' Middle (XH / 2)
|
||||
|
||||
create-glyph "pStrokeBot.\(suffix)" : glyph-proc
|
||||
include [refer-glyph "p.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
include : LetterBarOverlay.l.in
|
||||
x -- SB
|
||||
bot -- (Descender + [if doBS Stroke 0])
|
||||
top -- 0
|
||||
|
||||
create-glyph "thorn.\(suffix)" : glyph-proc
|
||||
include : MarkSet.bp
|
||||
include : SmallThornEaredBody
|
||||
|
@ -81,6 +89,17 @@ glyph-block Letter-Latin-Lower-P : begin
|
|||
set-base-anchor 'overlayOnExtension' (SB + [HSwToV : 0.5 * Stroke]) yOverlay
|
||||
set-base-anchor 'strike' Middle (XH / 2)
|
||||
|
||||
create-glyph "thornStroke.\(suffix)" : glyph-proc
|
||||
include [refer-glyph "thorn.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
include : LetterBarOverlay.l.in SB XH (Ascender - [if doTS Stroke 0])
|
||||
|
||||
create-glyph "thornStrokeBot.\(suffix)" : glyph-proc
|
||||
include [refer-glyph "thorn.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
include : LetterBarOverlay.l.in
|
||||
x -- SB
|
||||
bot -- (Descender + [if doBS Stroke 0])
|
||||
top -- 0
|
||||
|
||||
create-glyph "pPalatalHook.\(suffix)" : glyph-proc
|
||||
include [refer-glyph "p.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
|
||||
|
@ -99,11 +118,17 @@ glyph-block Letter-Latin-Lower-P : begin
|
|||
link-reduced-variant 'p/sansSerif' 'p' MathSansSerif
|
||||
link-reduced-variant 'p/hookTopBase' 'p'
|
||||
select-variant 'cyrl/er' 0x440 (shapeFrom -- 'p')
|
||||
select-variant "pPalatalHook" 0x1D88 (follow -- 'p')
|
||||
select-variant 'pPalatalHook' 0x1D88 (follow -- 'p')
|
||||
|
||||
CreateAccentedComposition 'pStroke' 0x1D7D 'p' 'hStrike'
|
||||
select-variant 'pStrokeBot' 0xA751 (follow -- 'p')
|
||||
|
||||
select-variant 'thorn' 0xFE
|
||||
alias 'grek/sho' 0x3F8 'thorn.earedSerifless'
|
||||
|
||||
select-variant 'thornStroke' 0xA765 (follow -- 'thorn')
|
||||
select-variant 'thornStrokeBot' 0xA767 (follow -- 'thorn')
|
||||
|
||||
CreateAccentedComposition 'pTildeOver' 0x1D71 'p' 'tildeOverOnExension'
|
||||
|
||||
derive-glyphs 'cyrl/erTick' 0x48F 'cyrl/er' : lambda [src gr] : glyph-proc
|
||||
|
|
|
@ -185,6 +185,13 @@ glyph-block Letter-Latin-Upper-P : begin
|
|||
PShape XH (slab -- slabs)
|
||||
if fGap [PShape.OpenGap (top -- XH) (bot -- [if fSlabBot Stroke 0])] [glyph-proc]
|
||||
|
||||
create-glyph "PStrokeBot.\(suffix)" : glyph-proc
|
||||
include [refer-glyph "P.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
include : LetterBarOverlay.l.in
|
||||
x -- (SB * PShape.defaultMul)
|
||||
bot -- [if fSlabBot Stroke 0]
|
||||
top -- [PBarPosY CAP Stroke PShape.BarPos]
|
||||
|
||||
if (!fGap) : create-glyph "currency/rubleSign.\(suffix)" : glyph-proc
|
||||
include [refer-glyph "P.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
define bar1pos : [PBarPosY CAP Stroke PShape.BarPos] + HalfStroke
|
||||
|
@ -192,7 +199,7 @@ glyph-block Letter-Latin-Upper-P : begin
|
|||
define xCrossBarLeft : SB - SideJut
|
||||
define xPLeft : SB * PShape.defaultMul + [HSwToV HalfStroke]
|
||||
define xCrossBarRight : mix SB RightSB 0.8
|
||||
define yBase : if (slabs === PShape.SlabAsymmetric) Stroke 0
|
||||
define yBase : if fSlabBot Stroke 0
|
||||
define yCrossbar : Math.max
|
||||
mix yBase (bar1pos - HalfStroke) (1 / 2)
|
||||
[mix yBase (bar1pos - HalfStroke) (2 / 3)] - OverlayStroke / 2
|
||||
|
@ -231,12 +238,14 @@ glyph-block Letter-Latin-Upper-P : begin
|
|||
flat [mix SB RightSB 0.5] (yBowl + XH * 0.25)
|
||||
curl [mix SB RightSB 0.875] (yBowl - XH * 0.25)
|
||||
|
||||
create-glyph 'PBar/overlay' : LetterBarOverlay.l.in
|
||||
create-glyph 'PStroke/overlay' : LetterBarOverlay.l.in
|
||||
x -- (SB * PShape.defaultMul)
|
||||
bot -- ([PBarPosY CAP Stroke PShape.BarPos] + Stroke)
|
||||
top -- (CAP - Stroke)
|
||||
space -- { 0 (RightSB - [HSwToV Stroke]) }
|
||||
derive-composites 'PBar' 0x2C63 'P' 'PBar/overlay'
|
||||
derive-composites 'PStroke' 0x2C63 'P' 'PStroke/overlay'
|
||||
|
||||
select-variant 'PStrokeBot' 0xA750 (follow -- 'P')
|
||||
|
||||
define [BBPShape] : with-params [[mul PShape.defaultMul] [overshoot PShape.defaultOvershoot]] : glyph-proc
|
||||
define sb : SB * mul
|
||||
|
|
|
@ -155,7 +155,6 @@ export : define decompOverrides : object
|
|||
0x1D76 { 'z/reduced' 'tildeStrike2' }
|
||||
|
||||
0x1D7C { 'latn/iota' 'barOver' }
|
||||
0x1D7D { 'p' 'hStrike' }
|
||||
0x1D7F { 'latn/upsilon' 'hStrike' }
|
||||
|
||||
0x1E9C { 'longs' 'shortSlashOver' }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue