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`).
|
* 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).
|
* 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.Above.VBar.l xThornLeftStroke
|
||||||
# include : LeaningAnchor.Below.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 : MarkSet.capital
|
||||||
include : ThornShape CAP (CAP - [yThornBowlTop CAP]) (CAP - [yThornBowlBot CAP])
|
include : ThornShape CAP (CAP - [yThornBowlTop CAP]) (CAP - [yThornBowlBot CAP])
|
||||||
include : LeaningAnchor.Above.VBar.l xThornLeftStroke
|
include : LeaningAnchor.Above.VBar.l xThornLeftStroke
|
||||||
include : LeaningAnchor.Below.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
|
x -- xThornLeftStroke
|
||||||
top -- (CAP - [if SLAB Stroke 0])
|
top -- (CAP - [if SLAB Stroke 0])
|
||||||
bot -- (CAP - [yThornBowlBot CAP])
|
bot -- (CAP - [yThornBowlBot CAP])
|
||||||
create-glyph 'thornBarTop/Overlay' : LetterBarOverlay.l.in
|
derive-composites 'ThornStroke' 0xA764 'ThornStroke/base' 'ThornStroke/Overlay'
|
||||||
x -- SB
|
|
||||||
top -- (Ascender - [if SLAB Stroke 0])
|
create-glyph 'ThornStrokeBot/Overlay' : LetterBarOverlay.l.in
|
||||||
bot -- XH
|
|
||||||
create-glyph 'ThornBarBot/Overlay' : LetterBarOverlay.l.in
|
|
||||||
x -- xThornLeftStroke
|
x -- xThornLeftStroke
|
||||||
bot -- (0 + [if SLAB Stroke 0])
|
bot -- (0 + [if SLAB Stroke 0])
|
||||||
top -- (0 + [yThornBowlBot CAP])
|
top -- (0 + [yThornBowlBot CAP])
|
||||||
create-glyph 'thornBarBot/Overlay' : LetterBarOverlay.l.in
|
derive-composites 'ThornStrokeBot' 0xA766 'Thorn' 'ThornStrokeBot/Overlay'
|
||||||
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'
|
|
||||||
|
|
|
@ -10,7 +10,8 @@ glyph-block Letter-Latin-Lower-P : begin
|
||||||
glyph-block-import Common-Derivatives
|
glyph-block-import Common-Derivatives
|
||||||
glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors LeaningAnchor
|
glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors LeaningAnchor
|
||||||
glyph-block-import Letter-Shared : CreateAccentedComposition
|
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
|
glyph-block-import Letter-Shared-Shapes : TopHook PalatalHook SerifFrame
|
||||||
|
|
||||||
|
|
||||||
|
@ -55,12 +56,12 @@ glyph-block Letter-Latin-Lower-P : begin
|
||||||
earlessCorner EarlessCornerBody
|
earlessCorner EarlessCornerBody
|
||||||
earlessRounded EarlessRoundedBody
|
earlessRounded EarlessRoundedBody
|
||||||
object # serifs
|
object # serifs
|
||||||
serifless { no-shape false }
|
serifless { no-shape false false }
|
||||||
motionSerifed { MotionSerif false }
|
motionSerifed { MotionSerif true false }
|
||||||
bottomSerifed { BottomSerif true }
|
bottomSerifed { BottomSerif false true }
|
||||||
serifed { FullSerifs 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 yOverlay : mix 0 (Descender + [if doBS Stroke 0]) 0.5
|
||||||
local df : DivFrame 1
|
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 'overlayOnExtension' (SB + [HSwToV : 0.5 * Stroke]) yOverlay
|
||||||
set-base-anchor 'strike' Middle (XH / 2)
|
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
|
create-glyph "thorn.\(suffix)" : glyph-proc
|
||||||
include : MarkSet.bp
|
include : MarkSet.bp
|
||||||
include : SmallThornEaredBody
|
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 'overlayOnExtension' (SB + [HSwToV : 0.5 * Stroke]) yOverlay
|
||||||
set-base-anchor 'strike' Middle (XH / 2)
|
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
|
create-glyph "pPalatalHook.\(suffix)" : glyph-proc
|
||||||
include [refer-glyph "p.\(suffix)"] AS_BASE ALSO_METRICS
|
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/sansSerif' 'p' MathSansSerif
|
||||||
link-reduced-variant 'p/hookTopBase' 'p'
|
link-reduced-variant 'p/hookTopBase' 'p'
|
||||||
select-variant 'cyrl/er' 0x440 (shapeFrom -- '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
|
select-variant 'thorn' 0xFE
|
||||||
alias 'grek/sho' 0x3F8 'thorn.earedSerifless'
|
alias 'grek/sho' 0x3F8 'thorn.earedSerifless'
|
||||||
|
|
||||||
|
select-variant 'thornStroke' 0xA765 (follow -- 'thorn')
|
||||||
|
select-variant 'thornStrokeBot' 0xA767 (follow -- 'thorn')
|
||||||
|
|
||||||
CreateAccentedComposition 'pTildeOver' 0x1D71 'p' 'tildeOverOnExension'
|
CreateAccentedComposition 'pTildeOver' 0x1D71 'p' 'tildeOverOnExension'
|
||||||
|
|
||||||
derive-glyphs 'cyrl/erTick' 0x48F 'cyrl/er' : lambda [src gr] : glyph-proc
|
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)
|
PShape XH (slab -- slabs)
|
||||||
if fGap [PShape.OpenGap (top -- XH) (bot -- [if fSlabBot Stroke 0])] [glyph-proc]
|
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
|
if (!fGap) : create-glyph "currency/rubleSign.\(suffix)" : glyph-proc
|
||||||
include [refer-glyph "P.\(suffix)"] AS_BASE ALSO_METRICS
|
include [refer-glyph "P.\(suffix)"] AS_BASE ALSO_METRICS
|
||||||
define bar1pos : [PBarPosY CAP Stroke PShape.BarPos] + HalfStroke
|
define bar1pos : [PBarPosY CAP Stroke PShape.BarPos] + HalfStroke
|
||||||
|
@ -192,7 +199,7 @@ glyph-block Letter-Latin-Upper-P : begin
|
||||||
define xCrossBarLeft : SB - SideJut
|
define xCrossBarLeft : SB - SideJut
|
||||||
define xPLeft : SB * PShape.defaultMul + [HSwToV HalfStroke]
|
define xPLeft : SB * PShape.defaultMul + [HSwToV HalfStroke]
|
||||||
define xCrossBarRight : mix SB RightSB 0.8
|
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
|
define yCrossbar : Math.max
|
||||||
mix yBase (bar1pos - HalfStroke) (1 / 2)
|
mix yBase (bar1pos - HalfStroke) (1 / 2)
|
||||||
[mix yBase (bar1pos - HalfStroke) (2 / 3)] - OverlayStroke / 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)
|
flat [mix SB RightSB 0.5] (yBowl + XH * 0.25)
|
||||||
curl [mix SB RightSB 0.875] (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)
|
x -- (SB * PShape.defaultMul)
|
||||||
bot -- ([PBarPosY CAP Stroke PShape.BarPos] + Stroke)
|
bot -- ([PBarPosY CAP Stroke PShape.BarPos] + Stroke)
|
||||||
top -- (CAP - Stroke)
|
top -- (CAP - Stroke)
|
||||||
space -- { 0 (RightSB - [HSwToV 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 [BBPShape] : with-params [[mul PShape.defaultMul] [overshoot PShape.defaultOvershoot]] : glyph-proc
|
||||||
define sb : SB * mul
|
define sb : SB * mul
|
||||||
|
|
|
@ -155,7 +155,6 @@ export : define decompOverrides : object
|
||||||
0x1D76 { 'z/reduced' 'tildeStrike2' }
|
0x1D76 { 'z/reduced' 'tildeStrike2' }
|
||||||
|
|
||||||
0x1D7C { 'latn/iota' 'barOver' }
|
0x1D7C { 'latn/iota' 'barOver' }
|
||||||
0x1D7D { 'p' 'hStrike' }
|
|
||||||
0x1D7F { 'latn/upsilon' 'hStrike' }
|
0x1D7F { 'latn/upsilon' 'hStrike' }
|
||||||
|
|
||||||
0x1E9C { 'longs' 'shortSlashOver' }
|
0x1E9C { 'longs' 'shortSlashOver' }
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue