* Add characters:

- LATIN CAPITAL LETTER K WITH STROKE (`U+A740`) (#1453).
  - LATIN SMALL LETTER K WITH STROKE (`U+A741`) (#1453).
  - LATIN CAPITAL LETTER THORN WITH STROKE (`U+A764`) (#1453).
  - LATIN SMALL LETTER THORN WITH STROKE (`U+A765`) (#1453).
  - LATIN CAPITAL LETTER F WITH STROKE (`U+A798`) (#1453).
  - LATIN SMALL LETTER F WITH STROKE (`U+A799`) (#1453).
  - LATIN CAPITAL LETTER U WITH STROKE (`U+A7B8`) (#1453).
  - LATIN SMALL LETTER U WITH STROKE (`U+A7B9`) (#1453).
This commit is contained in:
be5invis 2022-12-10 02:51:07 -08:00
parent 743828ba34
commit d94b60acaa
21 changed files with 96 additions and 72 deletions

View file

@ -1,13 +0,0 @@
* Fix metrics of ASCII single quotes under Aile (#1454).
* Fix overshoot of oval-shaped `0`, and open `6`/`9` (#1455).
* Fix serifs of certain letters (#1458):
- LATIN CAPITAL LETTER GAMMA (`U+0194`);
- LATIN CAPITAL LETTER OU (`U+0222`);
- LATIN SMALL LETTER OU (`U+0223`);
- LATIN SMALL LETTER ALPHA (`U+0251`);
- LATIN SMALL LETTER GAMMA (`U+0263`);
- LATIN SMALL LETTER RAMS HORN (`U+0264`);
- LATIN SMALL LETTER TURNED OPEN E (`U+1D08`);
- LATIN LETTER SMALL CAPITAL OU (`U+1D15`);
- LATIN LETTER AIN (`U+1D25`);
* Fix shape and variant assignment for LATIN SMALL LETTER DOTLESS J WITH STROKE (`U+025F`) (#1458).

22
changes/16.7.0.md Normal file
View file

@ -0,0 +1,22 @@
* Add characters:
- LATIN CAPITAL LETTER K WITH STROKE (`U+A740`) (#1453).
- LATIN SMALL LETTER K WITH STROKE (`U+A741`) (#1453).
- LATIN CAPITAL LETTER THORN WITH STROKE (`U+A764`) (#1453).
- LATIN SMALL LETTER THORN WITH STROKE (`U+A765`) (#1453).
- LATIN CAPITAL LETTER F WITH STROKE (`U+A798`) (#1453).
- LATIN SMALL LETTER F WITH STROKE (`U+A799`) (#1453).
- LATIN CAPITAL LETTER U WITH STROKE (`U+A7B8`) (#1453).
- LATIN SMALL LETTER U WITH STROKE (`U+A7B9`) (#1453).
* Fix metrics of ASCII single quotes under Aile (#1454).
* Fix overshoot of oval-shaped `0`, and open `6`/`9` (#1455).
* Fix serifs of certain letters (#1458):
- LATIN CAPITAL LETTER GAMMA (`U+0194`).
- LATIN CAPITAL LETTER OU (`U+0222`).
- LATIN SMALL LETTER OU (`U+0223`).
- LATIN SMALL LETTER ALPHA (`U+0251`).
- LATIN SMALL LETTER GAMMA (`U+0263`).
- LATIN SMALL LETTER RAMS HORN (`U+0264`).
- LATIN SMALL LETTER TURNED OPEN E (`U+1D08`).
- LATIN LETTER SMALL CAPITAL OU (`U+1D15`).
- LATIN LETTER AIN (`U+1D25`).
* Fix shape and variant assignment for LATIN SMALL LETTER DOTLESS J WITH STROKE (`U+025F`) (#1458).

View file

@ -20,7 +20,6 @@ glyph-block Letter-Cyrillic-Yat : begin
x -- SB
bot -- (CAP * pBar + HalfStroke)
top -- (CAP - [if SLAB Stroke 0])
py -- 0.5
create-glyph 'cyrl/yat.upright' : glyph-proc
include : MarkSet.b
@ -31,7 +30,6 @@ glyph-block Letter-Cyrillic-Yat : begin
x -- SB
bot -- (Ascender * pBar + HalfStroke)
top -- (Ascender - [if SLAB Stroke 0])
py -- 0.5
if SLAB : begin
eject-contour 'serifYeriLT'

View file

@ -170,7 +170,6 @@ glyph-block Letter-Cyrillic-Yeri : begin
x -- df.leftSB
bot -- top * DefaultBarPos + stroke / 2
top -- top - [if SLAB Stroke 0]
py -- 0.5
foreach { suffix { Yeri fTail } } [Object.entries YerConfig] : do
create-glyph "cyrl/Yeri.\(suffix)" : glyph-proc

View file

@ -28,6 +28,5 @@ glyph-block Letter-Greek-Lower-Rho : begin
g4 ([mix SB RightSB 0.75] + CorrectionOMidS) (Descender - 0.5 * O) [heading Rightward]
g4 (RightSB + CorrectionOMidS) (Descender + 0.5 * O) [heading Rightward]
create-glyph 'grek/rhoBar' 0x3FC : glyph-proc
include [refer-glyph 'grek/rho'] AS_BASE ALSO_METRICS
include : LetterBarOverlay.l.in SB Descender 0 (1 - OverlayPos)
create-glyph 'grek/rhoBar/overlay' : LetterBarOverlay.l.in SB Descender 0
derive-composites 'grek/rhoBar' 0x3FC 'grek/rho' 'grek/rhoBar/overlay'

View file

@ -84,8 +84,8 @@ glyph-block Letter-Latin-Glottal-Stop : begin
create-glyph 'glottalstopbar' 0x2A1 : glyph-proc
include [refer-glyph 'glottalstop'] AS_BASE
include : LetterBarOverlay.m.in Middle [if SLAB Stroke 0] (Ascender * 0.5)
include : LetterBarOverlay.m.in Middle [if SLAB Stroke 0] (Ascender * 0.5) 0.5
create-glyph 'revglottalstopbar' 0x2A2 : glyph-proc
include [refer-glyph 'revglottalstop'] AS_BASE
include : LetterBarOverlay.m.in Middle [if SLAB Stroke 0] (Ascender * 0.5)
include : LetterBarOverlay.m.in Middle [if SLAB Stroke 0] (Ascender * 0.5) 0.5

View file

@ -58,11 +58,13 @@ glyph-block Letter-Latin-Long-S : begin
x -- (m + HalfStroke * HVContrast)
bot -- (0.75 * XH - Stroke)
top -- (Ascender - Stroke)
py -- OverlayPos
define [LongSSymmetricOverlayBar m] : LetterBarOverlay.m.in
x -- m
bot -- (0.75 * XH - Stroke)
top -- (Ascender - Stroke)
py -- OverlayPos
create-glyph 'longs.bentHook' : glyph-proc
include : MarkSet.b

View file

@ -8,51 +8,68 @@ glyph-module
glyph-block Letter-Latin-Thorn : begin
glyph-block-import CommonShapes
glyph-block-import Common-Derivatives
glyph-block-import Letter-Latin-Lower-P : SmallPSerifLB
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
create-glyph 'Thorn' 0xDE : glyph-proc
include : MarkSet.capital
define xThornLeftStroke : SB * 1.25
define yThornBowlBot : CAP * 0.19 + [if SLAB (Stroke * 0.375) 0]
define [ThornShape yBowlBot] : glyph-proc
local yBowlTop : CAP - yBowlBot
local bowlTop (CAP * 0.81)
local bowlBottom (CAP * 0.19)
local turn : mix yBowlTop yBowlBot (ArchDepthB / (ArchDepthA + ArchDepthB))
local turnRadius : (yBowlTop - yBowlBot) / 2
local turn : mix bowlTop bowlBottom (ArchDepthB / (ArchDepthA + ArchDepthB))
local turnRadius : (bowlTop - bowlBottom) / 2
include : dispiro
widths.rhs
flat (SB * 1.25 + 1) bowlTop [heading Rightward]
curl (RightSB - turnRadius - CorrectionOMidS) bowlTop
flat xThornLeftStroke yBowlTop [heading Rightward]
curl (RightSB - turnRadius - CorrectionOMidS) yBowlTop
archv
g4 (RightSB - O) turn
arcvh
flat (RightSB - turnRadius + CorrectionOMidS) bowlBottom
curl (SB * 1.25 + 1) bowlBottom [heading Leftward]
flat (RightSB - turnRadius + CorrectionOMidS) yBowlBot
curl xThornLeftStroke yBowlBot [heading Leftward]
include : VBarLeft (SB * 1.25) 0 CAP
include : VBarLeft xThornLeftStroke 0 CAP
if SLAB : begin
include : CenterBottomSerif (SB * 1.25 + HalfStroke * HVContrast) 0 Jut
include : CenterTopSerif (SB * 1.25 + HalfStroke * HVContrast) CAP Jut
include : CenterBottomSerif (xThornLeftStroke + HalfStroke * HVContrast) 0 Jut
include : CenterTopSerif (xThornLeftStroke + HalfStroke * HVContrast) CAP Jut
alias 'grek/Sho' 0x3F7 'Thorn'
create-glyph 'Thorn' 0xDE : glyph-proc
include : MarkSet.capital
include : ThornShape yThornBowlBot
create-glyph 'thorn' 0xFE : glyph-proc
include : union
glyph-proc
include : refer-glyph "b"
eject-contour 'serifLB'
glyph-proc
include : refer-glyph "p"
eject-contour 'bowl'
eject-contour 'serifLT'
include : MarkSet.if
include : OBarLeftShape
include : VBarLeft SB Descender Ascender
if SLAB : begin
include : tagged 'serifLT' : LeftwardTopSerif SB Ascender SideJut
include : SmallPSerifLB
create-glyph 'ThornBarTop/Overlay' : LetterBarOverlay.l.in
x -- xThornLeftStroke
top -- (CAP - [if SLAB Stroke 0])
bot -- (CAP - yThornBowlBot)
create-glyph 'thornBarTop/Overlay' : LetterBarOverlay.l.in
x -- SB
top -- (Ascender - [if SLAB Stroke 0])
bot -- XH
create-glyph 'ThornBarBot/Overlay' : LetterBarOverlay.l.in
x -- xThornLeftStroke
bot -- (0 + [if SLAB Stroke 0])
top -- yThornBowlBot
create-glyph 'thornBarBot/Overlay' : LetterBarOverlay.l.in
x -- SB
bot -- (Descender + [if SLAB Stroke 0])
top -- 0
derive-composites 'ThornBarTop' 0xA764 'Thorn' 'ThornBarTop/Overlay'
derive-composites 'thornBarTop' 0xA765 'thorn' 'thornBarTop/Overlay'
derive-composites 'ThornBarBot' 0xA766 'Thorn' 'ThornBarBot/Overlay'
derive-composites 'thornBarBot' 0xA767 'thorn' 'thornBarBot/Overlay'
alias 'grek/Sho' 0x3F7 'Thorn'
create-glyph 'grek/sho' 0x3F8 : glyph-proc
include : new-glyph : glyph-proc
include : refer-glyph "b"
eject-contour 'serifLB'
eject-contour 'serifLT'
include : new-glyph : glyph-proc
include : refer-glyph "p"
eject-contour 'bowl'
eject-contour 'serifLT'
eject-contour 'serifLB'
include : MarkSet.if
include : OBarLeftShape
include : VBarLeft SB Descender Ascender

View file

@ -398,8 +398,8 @@ glyph-block Letter-Latin-C : begin
derive-composites 'grek/dotLunateSmallSigma' 0x37C 'grek/lunateSmallSigma' 'grek/lunateSigmaDotSmall'
derive-composites 'grek/dotRevLunateSmallSigma' 0x37D 'grek/revLunateSmallSigma' 'grek/lunateSigmaDotSmall'
create-glyph 'CBarOverlay' : LetterBarOverlay.l.in SB 0 CAP 0.5
create-glyph 'cBarOverlay' : LetterBarOverlay.l.in SB 0 XH 0.5
create-glyph 'CBarOverlay' : LetterBarOverlay.l.in SB 0 CAP
create-glyph 'cBarOverlay' : LetterBarOverlay.l.in SB 0 XH
derive-composites 'CBar' 0xA792 'C' 'CBarOverlay'
derive-composites 'cBar' 0xA793 'c' 'cBarOverlay'

View file

@ -402,7 +402,6 @@ glyph-block Letter-Latin-K : begin
x -- (SB + [KBalance slabTop straightBar])
bot -- XH
top -- (CAP - [if slabTop Stroke 0])
py -- (1 - OverlayPos)
space -- { 0 [mix SB RightSB 0.75] }
create-glyph "KVBar.\(suffix)" : glyph-proc
@ -515,7 +514,6 @@ glyph-block Letter-Latin-K : begin
x -- (SB + [KBalance slabTop straightBar])
bot -- XH
top -- (Ascender - [if slabTop Stroke 0])
py -- (1 - OverlayPos)
create-glyph "kHookTop.\(suffix)" : glyph-proc
include : MarkSet.b

View file

@ -49,7 +49,7 @@ glyph-block Letter-Latin-Lower-B : begin
set-base-anchor 'overlayOnBar' (SB + 0.5 * Stroke * HVContrast) yOverlay
create-glyph "bBar.\(suffix)" : glyph-proc
include [refer-glyph "b.\(suffix)"] AS_BASE ALSO_METRICS
include : LetterBarOverlay.l.in SB XH (Ascender - [if doTS Stroke 0]) (1 - OverlayPos)
include : LetterBarOverlay.l.in SB XH (Ascender - [if doTS Stroke 0])
create-glyph "bSlash.\(suffix)" : glyph-proc
include [refer-glyph "b.\(suffix)"] AS_BASE ALSO_METRICS
include : dispiro

View file

@ -66,7 +66,7 @@ glyph-block Letter-Latin-Lower-D : begin
create-glyph "dcroat.\(suffix)" : glyph-proc
include [refer-glyph "d.\(suffix)"] AS_BASE ALSO_METRICS
include : LetterBarOverlay.r.in RightSB XH (Ascender - [if topSerif Stroke 0]) (1 - OverlayPos)
include : LetterBarOverlay.r.in RightSB XH (Ascender - [if topSerif Stroke 0])
create-glyph "latn/de.\(suffix)" : glyph-proc
include [refer-glyph "d.\(suffix)"] AS_BASE ALSO_METRICS

View file

@ -10,6 +10,7 @@ glyph-block Letter-Latin-Lower-F : begin
glyph-block-import Common-Derivatives
glyph-block-import Letter-Shared : CreateAccentedComposition
glyph-block-import Letter-Shared-Shapes : FlatHookDepth DiagonalTailL DiagonalTailStdDepth
glyph-block-import Letter-Shared-Shapes : LetterBarOverlay
define fbar : XH * DesignParameters.fBarPosToXH + Stroke * DesignParameters.fbarStrokeAdj
define [SmallFBottomSerif df shift] : dispiro
@ -166,6 +167,7 @@ glyph-block Letter-Latin-Lower-F : begin
select-variant 'f/compLigLeft2' (shapeFrom -- 'f')
select-variant 'f/phoneticLeft' (shapeFrom -- 'f')
CreateAccentedComposition 'fBar' 0xA799 'f' 'barOver'
CreateAccentedComposition 'fTildeOver' 0x1D6E 'f' 'tildeOver'
glyph-block-import Letter-Blackboard : BBS BBD

View file

@ -12,6 +12,8 @@ glyph-block Letter-Latin-Lower-P : begin
glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend HooktopLeftBar
define [SmallPSerifLT] : tagged 'serifLT' : LeftwardTopSerif SB XH SideJut
glyph-block-export SmallPSerifLB
define [SmallPSerifLB] : tagged 'serifLB' : union
LeftwardBottomSerif (SB + HalfStroke * HVContrast) Descender Jut
RightwardBottomSerif (SB + HalfStroke * HVContrast) Descender MidJutSide

View file

@ -94,7 +94,7 @@ glyph-block Letter-Latin-Upper-B : begin
define [BOverlayBar top bp] : begin
local stroke : AdviceStroke2 2 3 top
return : LetterBarOverlay.l.in SB stroke (top * bp - 0.5 * stroke) 0.5
return : LetterBarOverlay.l.in SB stroke (top * bp - 0.5 * stroke)
space -- { 0 (RightSB - Stroke * HVContrast) }
define [BahtBar sw] : VBar [mix SB RightSB 0.475] (CAP - Descender / 2) (Descender / 2) sw

View file

@ -61,13 +61,12 @@ glyph-block Letter-Latin-Upper-F : begin
include : MarkSet.capital
include : FShape CAP (serifLT -- lt) (serifLB -- lb) (serifV -- v)
create-glyph "currency/frenchFrancSign.\(suffix)" : glyph-proc
create-glyph "FBar.\(suffix)" : glyph-proc
include [refer-glyph "F.\(suffix)"] AS_BASE ALSO_METRICS
include : LetterBarOverlay.l.in
x -- SB
x -- xFBarLeft
bot -- [if lb Stroke 0]
top -- [yMidBar CAP] - HalfStroke
py -- 0.5
create-glyph "smcpF.\(suffix)" : glyph-proc
include : MarkSet.e
@ -76,7 +75,8 @@ glyph-block Letter-Latin-Upper-F : begin
select-variant 'F' 'F'
link-reduced-variant 'F/sansSerif' 'F' MathSansSerif
select-variant 'smcpF' 0xA730 (follow -- 'F')
select-variant 'currency/frenchFrancSign' 0x20A3 (follow -- 'F')
select-variant 'FBar' 0xA798 (follow -- 'F')
select-variant 'currency/frenchFrancSign' 0x20A3 (follow -- 'F') (shapeFrom -- 'FBar')
glyph-block-import Letter-Blackboard : BBS BBD
create-glyph 'mathbb/F' 0x1D53D : glyph-proc

View file

@ -67,9 +67,6 @@ glyph-block Letter-Latin-Upper-G : begin
[Just TOOTHLESS-CORNER] : VBarRight RightSB DToothlessRise yBar
[Just TOOTHLESS-ROUNDED] : glyph-proc
define [OverlayBarOfG top] : begin
return : LetterBarOverlay.r.in RightSB 0 (top / 2) OverlayPos (space -- {(SB + Stroke * HVContrast) Width})
create-glyph 'GBarOverlay' : LetterBarOverlay.r.in
x -- RightSB
bot -- 0

View file

@ -189,7 +189,6 @@ glyph-block Letter-Latin-Upper-P : begin
x -- (SB * PShape.defaultMul)
bot -- ([PBarPosY CAP Stroke PShape.BarPos] + Stroke)
top -- (CAP - Stroke)
py -- 0.5
space -- { 0 (RightSB - Stroke * HVContrast) }
derive-composites 'PBar' 0x2C63 'P' 'PBar/overlay'

View file

@ -583,17 +583,17 @@ glyph-block Letter-Shared-Shapes : begin
return { y sw1 }
set LetterBarOverlay.l.in : function []
params [x bot top [py OverlayPos] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]]
params [x bot top [py 0.5] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]]
: begin
local { y sw1 } : calcYAndSw bot top py sw
LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 0) (sw -- sw1)
set LetterBarOverlay.m.in : function []
params [x bot top [py OverlayPos] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]]
params [x bot top [py 0.5] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]]
: begin
local { y sw1 } : calcYAndSw bot top py sw
LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 0.5) (sw -- sw1)
set LetterBarOverlay.r.in : function []
params [x bot top [py OverlayPos] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]]
params [x bot top [py 0.5] [space {0 Width}] [refSw Stroke] [sw OverlayStroke]]
: begin
local { y sw1 } : calcYAndSw bot top py sw
LetterBarOverlay x y (space -- space) (refSw -- refSw) (pXInSw -- 1) (sw -- sw1)

View file

@ -162,6 +162,8 @@ export : define decompositionOverrides : object
."\u0385" "\uE00D\u0308\u0301"
."\u037A" "\uE00D\u0345"
."\uAB30" "\u0251\uE001"
."\uA7B8" "U\u0338"
."\uA7B9" "u\u0337"
."\uA7BB" "a\uE010"
."\uA7BD" "i\uE010"
."\uA7BF" "u\uE010"

View file

@ -3,5 +3,5 @@ import ucdNames from "@unicode/unicode-14.0.0/Names/index.js";
for (let i = 2; i < process.argv.length; i++) {
const lch = parseInt(process.argv[i], 16);
const name = ucdNames.get(lch);
console.log(" -", name, `(\`U+${lch.toString(16).toUpperCase().padStart(4, "0")}\`);`);
console.log(" -", name, `(\`U+${lch.toString(16).toUpperCase().padStart(4, "0")}\`).`);
}