Fix: Make lowercase g single-storey

This commit is contained in:
2025-11-09 13:02:06 -08:00
parent aeb19641d6
commit a1fc9bf226

View File

@@ -40,32 +40,41 @@ export const glyphg=(opentype,adv)=>
"g", "g",
"g".codePointAt(0), "g".codePointAt(0),
p=>{ p=>{
// lower bowl (main counter) // single-storey "g" with open top, bowl and right descender
p.moveTo(310,-10); const xMin=80,xMax=520;
p.curveTo(190,-10,100,80,100,230); const bowlTop=260,bowlBottom=-10;
p.curveTo(100,380,190,470,310,470); const base=480,desc=-150;
p.curveTo(430,470,520,380,520,230);
p.curveTo(520,80,430,-10,310,-10); // bowl outer
p.moveTo(300,bowlBottom);
p.curveTo(180,bowlBottom,xMin,80,xMin,230);
p.curveTo(xMin,380,190,470,310,470);
p.curveTo(410,470,480,430,510,360);
// join into stem
p.lineTo(510,base);
// stem down to descender
p.lineTo(450,base);
p.lineTo(450,desc);
p.lineTo(510,desc);
p.lineTo(510,200);
p.curveTo(510,80,430,bowlBottom,300,bowlBottom);
p.close(); p.close();
// inner counter
p.moveTo(310,50); // bowl inner
p.curveTo(400,50,460,110,460,230); p.moveTo(300,50);
p.curveTo(460,350,400,410,310,410); p.curveTo(390,50,450,110,450,230);
p.curveTo(220,410,160,350,160,230); p.curveTo(450,350,390,410,300,410);
p.curveTo(160,110,220,50,310,50); p.curveTo(210,410,150,350,150,230);
p.curveTo(150,110,210,50,300,50);
p.close(); p.close();
// stem + ear: descender and top terminal
p.moveTo(430,470); // open ear/top hook on right side
p.curveTo(430,560,390,600,320,600); p.moveTo(450,320);
p.curveTo(280,600,250,590,220,570); p.curveTo(420,260,370,230,310,230);
p.lineTo(200,620); p.lineTo(310,170);
p.curveTo(240,645,280,660,330,660); p.curveTo(395,170,460,205,500,270);
p.curveTo(430,660,490,600,490,480);
p.lineTo(490,-150);
p.lineTo(430,-150);
p.lineTo(430,40);
p.curveTo(400,10,360,-10,310,-10);
p.close(); p.close();
return p; return p;
}, },
adv adv