* Fix broken geometry of Single-arch Latin Capital Letter Turned M (U+019C) (#1083).

* Fix broken geometry of Single-arch Mathematical Bold Small M (`U+1D426`) (#1084).
This commit is contained in:
be5invis 2021-05-29 15:24:35 -07:00
parent e7f5a065e6
commit d22e4a4df8
6 changed files with 26 additions and 14 deletions

View file

@ -1,5 +1,7 @@
* Add cursive for Latin Small Letter W with Hook (`U+2C73`) (#1081).
* Fix missing variants of Latin Small Letter Turned M with Long Leg (`U+0270`) (#1082).
* Fix broken geometry of Single-arch Latin Capital Letter Turned M (`U+019C`) (#1083).
* Fix broken geometry of Single-arch Mathematical Bold Small M (`U+1D426`) (#1084).
* Fix missing serif and `cv39` variants of Latin Small Letter Feng Digraph (`U+02A9`) (#1085).
* Fix missing variant of Latin Small Letter Ue (`U+1D6B`) (#1086).
* Fix missing serif of Italic Latin Phi (#1087).

View file

@ -481,7 +481,8 @@ glyph-block Autobuild-Transformed-Mathematical : begin
define [createMathDerivedSeriesImpl groupName tfm _records] : begin
local { records relSets targetNameMap } : extendRelatedGlyphs groupName _records
local pendingGlyphs : records.map : [record] => record.1
local forked : Fork pendingGlyphs [para.reinit tfm]
local forkedPara : para.reinit tfm
local forked : Fork pendingGlyphs forkedPara
foreach {unicode glyphid} [items-of records] : if [not : query-glyph targetNameMap.(glyphid)]
create-glyph targetNameMap.(glyphid) unicode : glyph-proc
if [not : forked.queryByName glyphid] : console.log glyphid

View file

@ -172,14 +172,14 @@ glyph-block Letter-Latin-Lower-M : begin
fine -- (df.mvs * CThin)
define [EarlessSingleArchSmallMShape top lbot mbot rbot df] : glyph-proc
include : tagged 'barL' : VBarLeft df.leftSB lbot (XH - DToothlessRise) df.mvs
include : tagged 'barM' : VBar df.middle mbot XH df.mvs
include : tagged 'barL' : VBarLeft df.leftSB lbot (top - DToothlessRise) df.mvs
include : tagged 'barM' : VBar df.middle mbot top df.mvs
include : dispiro
widths.rhs df.mvs
g4 df.leftSB (XH - DToothlessRise)
g4 (df.middle - CorrectionOMidS) (XH - O)
g4 df.leftSB (top - DToothlessRise)
g4 (df.middle - CorrectionOMidS) (top - O)
archv
flat df.rightSB [Math.max (XH - [SmallMSmooth df]) (rbot + 0.1)]
flat df.rightSB [Math.max (top - [SmallMSmooth df]) (rbot + 0.1)]
curl df.rightSB rbot [heading Downward]
define SmallMConfig : object
@ -217,7 +217,7 @@ glyph-block Letter-Latin-Lower-M : begin
include : df.markSet.e
include : Body XH 0 [if shortLeg [SmallMShortLegHeight df] 0] [if tailed ([SmallMSmoothHeight df] + O) 0] df
if tailed : include : RightwardTailedBar df.rightSB 0 [SmallMSmoothHeight df] (sw -- df.mvs)
include : Serifs df XH 0 [SmallMSmoothHeight df] 0 tailed earless
include : Serifs df XH 0 [if shortLeg [SmallMShortLegHeight df] 0] 0 tailed earless
create-glyph "capitalSmallM.\(suffix)" : glyph-proc
local df : dfM
@ -225,7 +225,7 @@ glyph-block Letter-Latin-Lower-M : begin
include : df.markSet.capital
include : Body CAP 0 [if shortLeg [SmallMShortLegHeight df] 0] [if tailed ([SmallMSmoothHeight df] + O) 0] df
if tailed : include : RightwardTailedBar df.rightSB 0 [SmallMSmoothHeight df] (sw -- df.mvs)
include : Serifs df CAP 0 [SmallMSmoothHeight df] 0 tailed earless
include : Serifs df CAP 0 [if shortLeg [SmallMShortLegHeight df] 0] 0 tailed earless
create-glyph "mLTail.\(suffix)" : glyph-proc
local df : dfM

View file

@ -40,10 +40,10 @@ async function getParameters() {
const rawVariantsData = await tryParseToml(VARIANTS_TOML);
const rawLigationData = await tryParseToml(LIGATIONS_TOML);
function reinit(argv) {
let para = Parameters.init(parametersData, argv);
VariantData.apply(rawVariantsData, para, argv);
ApplyLigationData(rawLigationData, para, argv);
function createParaImpl(argv) {
let para = Parameters.init(deepClone(parametersData), argv);
VariantData.apply(deepClone(rawVariantsData), para, argv);
ApplyLigationData(deepClone(rawLigationData), para, argv);
if (argv.excludedCharRanges) para.excludedCharRanges = argv.excludedCharRanges;
if (argv.compatibilityLigatures) para.compLig = argv.compatibilityLigatures;
@ -57,9 +57,13 @@ async function getParameters() {
width: argv.menu.width - 0,
slope: argv.menu.slope
};
return para;
}
function reinit(argv) {
const para = createParaImpl(argv);
para.reinit = function (tf) {
const argv1 = JSON.parse(JSON.stringify(argv));
const argv1 = deepClone(argv);
tf(argv1, argv);
return reinit(argv1);
};
@ -78,6 +82,10 @@ async function tryParseToml(str) {
}
}
function deepClone(pod) {
return JSON.parse(JSON.stringify(pod));
}
// Save TTF
async function saveTTF(argv, font) {
const sfnt = FontIo.writeFont(font, {

View file

@ -37,6 +37,8 @@ overshoot = -8 # Vertical overshoot for arcs.
overshootx = -8 # Horizontal overshoot for arcs.
oxhook = -2 # Horizontal overshoot for hook tips.
refJut = 85
shoulderfineMin = 0.8
isItalic = false # Use italic shapes?

View file

@ -11,7 +11,6 @@ dotsize = 125 # Size of dots
periodsize = 140 # Size of period
jut = 85 # Length of slab serif
refJut = 85 # Reference JUT, used in `m`
vjut = 145 # Length of vertical slab serif
longjut = 175 # Length of long serifs, like that in `i`.