Add P with Stroke Through Descender. (#2131)

This commit is contained in:
John McWilliams 2023-12-26 23:24:58 -05:00 committed by GitHub
parent 28b84bfe29
commit ab2535d163
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 53 additions and 27 deletions

View file

@ -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).

View file

@ -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'

View file

@ -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

View file

@ -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

View file

@ -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' }