Fix variant selector of Cyrillic TE’s italics to better respect m
’s tailed-ness (#734).
This commit is contained in:
parent
10f2596115
commit
fe53c125fe
5 changed files with 28 additions and 27 deletions
|
@ -5,6 +5,7 @@
|
|||
* Fix inconsistent italic serif of U+0463 CYRILLIC SMALL LETTER YAT (#729).
|
||||
* Fix dotless form of mathematical derived letters if it ia aliased (#731).
|
||||
* Fix inconsistent serif on Bulgarian U+044E CYRILLIC SMALL LETTER YU (#732).
|
||||
* Fix variant selector of Cyrillic TE’s italics to better respect `m`’s tailed-ness (#734).
|
||||
* Fix middle bar placement of U+2180 under quasi-proportional.
|
||||
* Add Characters:
|
||||
* U+1D6A4 MATHEMATICAL ITALIC SMALL DOTLESS I, U+1D6A5 MATHEMATICAL ITALIC SMALL DOTLESS J (#730).
|
||||
|
|
|
@ -5876,7 +5876,6 @@ glyph-block Letter-Latin-Lower-F : begin
|
|||
|
||||
|
||||
define fbar : XH * DesignParameters.fBarPosToXH + Stroke * DesignParameters.fbarStrokeAdj
|
||||
define fbarFH : XH * DesignParameters.fBarPosToXH + Stroke * DesignParameters.fbarStrokeAdjFH
|
||||
define [SmallFBottomSerif] : dispiro
|
||||
widths.lhs
|
||||
flat ([mix SB RightSB 0.02] + HalfStroke * TanSlope) 0
|
||||
|
@ -5944,29 +5943,29 @@ glyph-block Letter-Latin-Lower-F : begin
|
|||
|
||||
create-glyph 'f.serifless' : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : StandardSmallFShape [DivFrame 1] 0.95 fbarFH
|
||||
include : StandardSmallFShape [DivFrame 1] 0.95 fbar
|
||||
|
||||
create-glyph 'f.phoneticLeft' : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : StandardSmallFShape [DivFrame 1] 1 fbarFH
|
||||
include : StandardSmallFShape [DivFrame 1] 1 fbar
|
||||
if SLAB : include : SmallFBottomSerif
|
||||
|
||||
create-glyph 'f.serifed' : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : StandardSmallFShape [DivFrame 1] 0.95 fbarFH
|
||||
include : StandardSmallFShape [DivFrame 1] 0.95 fbar
|
||||
include : SmallFBottomSerif
|
||||
|
||||
create-glyph 'fltail' 0x192 : glyph-proc
|
||||
include : MarkSet.if
|
||||
include : StandardSmallFShape [DivFrame 1] 1 fbarFH 2
|
||||
include : StandardSmallFShape [DivFrame 1] 1 fbar 2
|
||||
|
||||
create-glyph 'f.tailed' : glyph-proc
|
||||
include : MarkSet.if
|
||||
include : StandardSmallFShape [DivFrame 1] 1 fbarFH 2
|
||||
include : StandardSmallFShape [DivFrame 1] 1 fbar 2
|
||||
|
||||
create-glyph 'f.extended' : glyph-proc
|
||||
include : MarkSet.if
|
||||
include : StandardSmallFShape [DivFrame 1] 0.95 fbarFH 1
|
||||
include : StandardSmallFShape [DivFrame 1] 0.95 fbar 1
|
||||
|
||||
create-glyph 'f.seriflessCrossbarAtXHeight' : glyph-proc
|
||||
include : MarkSet.b
|
||||
|
@ -5989,11 +5988,11 @@ glyph-block Letter-Latin-Lower-F : begin
|
|||
define df : DivFrame para.diversityF
|
||||
set-width df.width
|
||||
include : df.markSet.b
|
||||
include : NarrowFShape df 0.5 fbarFH
|
||||
include : NarrowFShape df 0.5 fbar
|
||||
|
||||
create-glyph 'f.flatHook' : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : NarrowFShape [DivFrame 1] 1 fbarFH
|
||||
include : NarrowFShape [DivFrame 1] 1 fbar
|
||||
|
||||
create-glyph 'f.flatHookCrossbarAtXHeight' : glyph-proc
|
||||
include : MarkSet.b
|
||||
|
@ -6001,7 +6000,7 @@ glyph-block Letter-Latin-Lower-F : begin
|
|||
|
||||
create-glyph 'f.flatHookSerifed' : glyph-proc
|
||||
include : MarkSet.b
|
||||
include : NarrowFShape [DivFrame 1] 1 fbarFH
|
||||
include : NarrowFShape [DivFrame 1] 1 fbar
|
||||
include : WithTransform [Translate ((RightSB - SB) * 0.035) 0] : SmallFBottomSerif
|
||||
|
||||
create-glyph 'f.flatHookSerifedCrossbarAtXHeight' : glyph-proc
|
||||
|
@ -6011,7 +6010,7 @@ glyph-block Letter-Latin-Lower-F : begin
|
|||
|
||||
create-glyph 'f.flatHookTailed' : glyph-proc
|
||||
include : MarkSet.if
|
||||
include : NarrowFShape [DivFrame 1] 1 fbarFH 2
|
||||
include : NarrowFShape [DivFrame 1] 1 fbar 2
|
||||
|
||||
create-glyph 'f.flatHookTailedCrossbarAtXHeight' : glyph-proc
|
||||
include : MarkSet.if
|
||||
|
@ -6019,7 +6018,7 @@ glyph-block Letter-Latin-Lower-F : begin
|
|||
|
||||
create-glyph 'f.flatHookExtended' : glyph-proc
|
||||
include : MarkSet.if
|
||||
include : NarrowFShape [DivFrame 1] 1 fbarFH 1
|
||||
include : NarrowFShape [DivFrame 1] 1 fbar 1
|
||||
|
||||
create-glyph 'f.flatHookExtendedCrossbarAtXHeight' : glyph-proc
|
||||
include : MarkSet.if
|
||||
|
|
|
@ -324,7 +324,6 @@ export : define DesignParameters : object
|
|||
upperEBarPos : lambda [slab] : if slab 0.52 0.53
|
||||
# Fine adjustments
|
||||
fbarStrokeAdj 0.25
|
||||
fbarStrokeAdjFH 0.125
|
||||
superness 2.275
|
||||
tightHookSuperness 2.30
|
||||
|
||||
|
|
|
@ -656,13 +656,13 @@ selector."cyrl/te.italic" = "normal"
|
|||
rank = 7
|
||||
description = "Earless (corner top-left) `m` with normal middle leg touching baseline, and a curly tail"
|
||||
selector.m = 'earlessCornerDoubleArchTailed'
|
||||
selector."cyrl/te.italic" = "normal"
|
||||
selector."cyrl/te.italic" = "tailed"
|
||||
|
||||
[prime.m.variants.earless-corner-double-arch-shortleg-tailed]
|
||||
rank = 8
|
||||
description = "Earless (corner top-left) `m` with a shorter middle leg like Ubuntu Mono, and a curly tail"
|
||||
selector.m = 'earlessCornerDoubleArchShortlegTailed'
|
||||
selector."cyrl/te.italic" = "normal"
|
||||
selector."cyrl/te.italic" = "tailed"
|
||||
|
||||
[prime.m.variants.earless-rounded-double-arch]
|
||||
rank = 9
|
||||
|
@ -680,13 +680,13 @@ selector."cyrl/te.italic" = "normal"
|
|||
rank = 11
|
||||
description = "Earless (rounded top-left) `m` with normal middle leg touching baseline, and a curly tail"
|
||||
selector.m = 'earlessRoundedDoubleArchTailed'
|
||||
selector."cyrl/te.italic" = "normal"
|
||||
selector."cyrl/te.italic" = "tailed"
|
||||
|
||||
[prime.m.variants.earless-rounded-double-arch-shortleg-tailed]
|
||||
rank = 12
|
||||
description = "Earless (rounded top-left) `m` with a shorter middle leg like Ubuntu Mono, and a curly tail"
|
||||
selector.m = 'earlessRoundedDoubleArchShortlegTailed'
|
||||
selector."cyrl/te.italic" = "normal"
|
||||
selector."cyrl/te.italic" = "tailed"
|
||||
|
||||
[prime.m.variants.earless-single-arch]
|
||||
rank = 13
|
||||
|
@ -704,13 +704,13 @@ selector."cyrl/te.italic" = "normal"
|
|||
rank = 15
|
||||
description = "Earless (single-arch) `m` with normal middle leg touching baseline, and a curly tail"
|
||||
selector.m = 'earlessSingleArchTailed'
|
||||
selector."cyrl/te.italic" = "normal"
|
||||
selector."cyrl/te.italic" = "tailed"
|
||||
|
||||
[prime.m.variants.earless-single-arch-shortleg-tailed]
|
||||
rank = 16
|
||||
description = "Earless (single-arch) `m` with a shorter middle leg like Ubuntu Mono, and a curly tail"
|
||||
selector.m = 'earlessSingleArchShortlegTailed'
|
||||
selector."cyrl/te.italic" = "normal"
|
||||
selector."cyrl/te.italic" = "tailed"
|
||||
|
||||
[prime.m.variants.motion-serifed]
|
||||
rank = 17
|
||||
|
@ -728,13 +728,13 @@ selector."cyrl/te.italic" = "motionSerifed"
|
|||
rank = 19
|
||||
description = "`m` with motion serifs, normal middle leg touching baseline, and a curly tail"
|
||||
selector.m = 'motionSerifedTailed'
|
||||
selector."cyrl/te.italic" = "motionSerifed"
|
||||
selector."cyrl/te.italic" = "motionSerifedTailed"
|
||||
|
||||
[prime.m.variants.motion-serifed-shortleg-tailed]
|
||||
rank = 20
|
||||
description = "`m` with motion serifs, a shorter middle leg like Ubuntu Mono, and a curly tail"
|
||||
selector.m = 'motionSerifedShortlegTailed'
|
||||
selector."cyrl/te.italic" = "motionSerifed"
|
||||
selector."cyrl/te.italic" = "motionSerifedTailed"
|
||||
|
||||
|
||||
|
||||
|
|
14
verdafile.js
14
verdafile.js
|
@ -857,7 +857,7 @@ const JavaScriptFromPtl = computed("scripts-js-from-ptl", async target => {
|
|||
return ptl.map(x => replaceExt(".js", x));
|
||||
});
|
||||
function replaceExt(extNew, file) {
|
||||
return Path.join(Path.dirname(file), Path.basename(file, Path.extname(file)) + extNew);
|
||||
return Path.posix.join(Path.dirname(file), Path.basename(file, Path.extname(file)) + extNew);
|
||||
}
|
||||
|
||||
const CompiledJs = file.make(
|
||||
|
@ -871,13 +871,15 @@ const CompiledJs = file.make(
|
|||
);
|
||||
const Scripts = task("scripts", async target => {
|
||||
await target.need(Parameters);
|
||||
const [_jsFromPtl] = await target.need(JavaScriptFromPtl);
|
||||
const [js] = await target.need(ScriptFiles("js"));
|
||||
const jsFromPtl = new Set(_jsFromPtl);
|
||||
const [jsFromPtlList] = await target.need(JavaScriptFromPtl);
|
||||
const [jsList] = await target.need(ScriptFiles("js"));
|
||||
const jsFromPtlSet = new Set(jsFromPtlList);
|
||||
|
||||
let subGoals = [];
|
||||
for (const item of jsFromPtl) subGoals.push(CompiledJs(item));
|
||||
for (const item of js) if (!jsFromPtl.has(js)) subGoals.push(sfu(item));
|
||||
for (const js of jsList) {
|
||||
if (jsFromPtlSet.has(js)) subGoals.push(CompiledJs(js));
|
||||
else subGoals.push(sfu(js));
|
||||
}
|
||||
await target.need(subGoals);
|
||||
});
|
||||
const UtilScripts = task("util-scripts", async target => {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue