Updated test page for the three more weights. Fixed several defects.
This commit is contained in:
parent
b26ba95258
commit
0c5ef8051e
7 changed files with 103 additions and 31 deletions
|
@ -5,6 +5,7 @@ import './support/stroke' as Stroke
|
|||
import './support/spirokit' as spirokit
|
||||
import './support/transform' as : Transform && [object [transformPoint tp] [untransform utp] inverse]
|
||||
import './support/anchor' as Anchor
|
||||
import './support/monotonic-interpolate' as smoothreg
|
||||
|
||||
extern global
|
||||
|
||||
|
|
|
@ -508,6 +508,7 @@ symbol-block 'A'
|
|||
include : FlipAround MIDDLE (CAP / 2)
|
||||
|
||||
local p : linreg 18 0.075 108 0.075 STROKE
|
||||
if (SLAB && !para.isItalic) : set p : p * 1.275
|
||||
include : HBarTop [mix SB RIGHTSB p] [mix RIGHTSB SB p] (XH / 2)
|
||||
alias 'Alpha' 0x391 'A'
|
||||
alias 'cyrA' 0x410 'A'
|
||||
|
|
|
@ -558,7 +558,7 @@ symbol-block 'Psi'
|
|||
|
||||
symbol-block 'Omega'
|
||||
define [OmegaShape top extend sma smb] : glyph-construction
|
||||
local fine : STROKE * 0.75
|
||||
local fine : STROKE * CTHIN
|
||||
local x1 [mix SB RIGHTSB 0.4]
|
||||
local x2 (WIDTH - x1)
|
||||
local yattach : top * extend + STROKE
|
||||
|
|
|
@ -14,6 +14,7 @@ local aboveMarkBot (XH + ACCENT * 0.35)
|
|||
local belowMarkBot (0 - ACCENT * 1.38)
|
||||
local belowMarkTop (0 - ACCENT * 0.35)
|
||||
|
||||
local commaOvershoot : O * [linreg 16 1 90 (-1) (markHalfStroke * 2)]
|
||||
|
||||
### Above marks
|
||||
symbol-block 'Above marks'
|
||||
|
@ -39,7 +40,7 @@ symbol-block 'Above marks'
|
|||
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
||||
|
||||
local radiusIn : ACCENT * 0.24
|
||||
local radiusOut : radiusIn + markFine * 1.75
|
||||
local radiusOut : radiusIn + markFine * [linreg 16 2 90 1.75 (markHalfStroke * 2)]
|
||||
include : Ring (XH + ACCENT + radiusOut) (XH + ACCENT - radiusOut) (markMiddle - radiusOut) (markMiddle + radiusOut) true
|
||||
include : Ring (XH + ACCENT + radiusIn) (XH + ACCENT - radiusIn) (markMiddle - radiusIn) (markMiddle + radiusIn) true
|
||||
reverse-last
|
||||
|
@ -109,7 +110,7 @@ symbol-block 'Above marks'
|
|||
|
||||
local tildeWave [linreg 16 2.5 90 1.33 (markHalfStroke * 2)]
|
||||
local tildeWaveX 0.52
|
||||
local tildeWaveEnd [linreg 16 (-0.01) 90 0 (markHalfStroke * 2)]
|
||||
local tildeWaveEnd : [smoothreg {16 60 90} {0 (-0.1) 0}] (markHalfStroke * 2)
|
||||
|
||||
local s : new Stroke
|
||||
local outlines : s.set-transform globalTransform
|
||||
|
@ -243,10 +244,10 @@ symbol-block 'Above marks'
|
|||
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
||||
|
||||
local radius : adviceBlackness 6
|
||||
include : Ring aboveMarkTop (aboveMarkTop - radius * 2) (markMiddle - radius) (markMiddle + radius)
|
||||
include : Ring (aboveMarkTop + commaOvershoot) (aboveMarkTop - radius * 2 + commaOvershoot) (markMiddle - radius) (markMiddle + radius)
|
||||
include : dispiro
|
||||
widths.rhs : Math.min radius (markFine * 1.75)
|
||||
straight.down.start (markMiddle + radius) (aboveMarkTop - radius)
|
||||
widths.rhs : Math.min radius (markFine * [linreg 16 2 90 1.75 (markHalfStroke * 2)])
|
||||
straight.down.start (markMiddle + radius) (aboveMarkTop - radius + commaOvershoot)
|
||||
quadcontrols 0 0.6
|
||||
g4 [mix markMiddle (markMiddle - radius) 0.2] (aboveMarkBot - radius)
|
||||
apply-transform : Upright
|
||||
|
@ -268,10 +269,10 @@ symbol-block 'Above marks'
|
|||
set-anchor 'above' MARK markMiddle XH markMiddle aboveMarkTop
|
||||
|
||||
local radius : adviceBlackness 6
|
||||
include : Ring aboveMarkTop (aboveMarkTop - radius * 2) (markMiddle - radius) (markMiddle + radius)
|
||||
include : Ring (aboveMarkTop + commaOvershoot) (aboveMarkTop - radius * 2 + commaOvershoot) (markMiddle - radius) (markMiddle + radius)
|
||||
include : dispiro
|
||||
widths.lhs : Math.min radius (markFine * 1.75)
|
||||
straight.down.start (markMiddle - radius) (aboveMarkTop - radius)
|
||||
widths.lhs : Math.min radius (markFine * [linreg 16 2 90 1.75 (markHalfStroke * 2)])
|
||||
straight.down.start (markMiddle - radius) (aboveMarkTop - radius + commaOvershoot)
|
||||
quadcontrols 0 0.6
|
||||
g4 [mix markMiddle (markMiddle + radius) 0.2] (aboveMarkBot - radius)
|
||||
apply-transform : Upright
|
||||
|
@ -394,7 +395,7 @@ symbol-block 'Below marks'
|
|||
set-width 0
|
||||
assign-unicode 0x328
|
||||
|
||||
local fine : markHalfStroke * 0.2
|
||||
local fine : markHalfStroke * [linreg 16 1 90 0.2 (markHalfStroke * 2)]
|
||||
local ogonekBot : [mix belowMarkTop belowMarkBot 0.75] + markStress * 2
|
||||
local ogonekLeft : markMiddle - markExtend * 0.5
|
||||
local ogonekRight : markMiddle + markExtend * 0.85
|
||||
|
@ -871,7 +872,7 @@ symbol-block 'Greek Polytonic Marks'
|
|||
GreekLRDoubleMark 'dasiavaria' 0x1FDD glyphs.revCommaAbove glyphs.variaAbove
|
||||
GreekLRDoubleMark 'dasiaoxia' 0x1FDE glyphs.revCommaAbove glyphs.oxiaAbove
|
||||
|
||||
local yc : aboveMarkTop - [adviceBlackness 6] + DOTRADIUS * 0.3
|
||||
local yc : aboveMarkTop - [adviceBlackness 6] + DOTRADIUS * 0.3 + commaOvershoot
|
||||
|
||||
create-glyph 'psiliperispomeni' : glyph-construction
|
||||
set-width 0
|
||||
|
|
|
@ -173,7 +173,7 @@ symbol-block 'Geometric'
|
|||
create-glyph 'dottedcircle' : glyph-construction
|
||||
assign-unicode 0x25CC
|
||||
local n 12
|
||||
local fine : [adviceBlackness 5] / 2
|
||||
local fine : adviceBlackness 10
|
||||
foreach j [range 0 n] : begin
|
||||
local angle : Math.PI * 2 * j / n
|
||||
local cx : MIDDLE + (right - MIDDLE) * [Math.cos angle]
|
||||
|
|
|
@ -9,11 +9,11 @@ font = fontforge.open(source)
|
|||
# Replace accented characters into references
|
||||
print " Reference finding: ", font.fontname
|
||||
font.selection.select(("ranges", "unicode", None), 0x1FCD, 0x1FCF, 0x1FDD, 0x1FDF)
|
||||
font.replaceWithReference(1)
|
||||
font.replaceWithReference()
|
||||
font.selection.all()
|
||||
font.selection.select(("less", None), "I.straight", "dotlessi.straight", "l.straight", "ltailBR", "rtailBR")
|
||||
font.selection.select(("less", "ranges", "unicode"), 0x207A, 0x207E, 0x208A, 0x208E)
|
||||
font.replaceWithReference(1)
|
||||
font.replaceWithReference()
|
||||
|
||||
# Remove overlapped area
|
||||
print " Overlap Removal: ", font.fontname
|
||||
|
@ -24,8 +24,8 @@ for i in font:
|
|||
if len(glyph.references) > 0 and len(glyph.layers["Fore"]) > 0: # a mixed glyph
|
||||
glyph.unlinkRef()
|
||||
glyph.removeOverlap()
|
||||
font.selection.all()
|
||||
font.replaceWithReference(1)
|
||||
#font.selection.all()
|
||||
#font.replaceWithReference()
|
||||
|
||||
print " Simplify: ", font.fontname
|
||||
font.selection.all()
|
||||
|
|
|
@ -6,6 +6,39 @@
|
|||
html {
|
||||
font-size: 14px;
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaWEB;
|
||||
font-weight: 100;
|
||||
src: url('assets/iosevka-hair.woff') format('woff'), url('assets/iosevka-hair.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaWEB;
|
||||
font-weight: 100;
|
||||
font-style: italic;
|
||||
src: url('assets/iosevka-hairitalic.woff') format('woff'), url('assets/iosevka-hairitalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaWEB;
|
||||
font-weight: 200;
|
||||
src: url('assets/iosevka-thin.woff') format('woff'), url('assets/iosevka-thin.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaWEB;
|
||||
font-weight: 200;
|
||||
font-style: italic;
|
||||
src: url('assets/iosevka-thinitalic.woff') format('woff'), url('assets/iosevka-thinitalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaWEB;
|
||||
font-weight: 300;
|
||||
src: url('assets/iosevka-light.woff') format('woff'), url('assets/iosevka-light.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaWEB;
|
||||
font-weight: 300;
|
||||
font-style: italic;
|
||||
src: url('assets/iosevka-lightitalic.woff') format('woff'), url('assets/iosevka-lightitalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaWEB;
|
||||
src: url('assets/iosevka-regular.woff') format('woff'), url('assets/iosevka-regular.ttf') format('truetype');
|
||||
|
@ -26,6 +59,39 @@
|
|||
font-weight: bold;
|
||||
src: url('assets/iosevka-bolditalic.woff') format('woff'), url('assets/iosevka-bolditalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaSlabWEB;
|
||||
font-weight: 100;
|
||||
src: url('assets/iosevka-slab-hair.woff') format('woff'), url('assets/iosevka-slab-hair.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaSlabWEB;
|
||||
font-weight: 100;
|
||||
font-style: italic;
|
||||
src: url('assets/iosevka-slab-hairitalic.woff') format('woff'), url('assets/iosevka-slab-hairitalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaSlabWEB;
|
||||
font-weight: 200;
|
||||
src: url('assets/iosevka-slab-thin.woff') format('woff'), url('assets/iosevka-slab-thin.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaSlabWEB;
|
||||
font-weight: 200;
|
||||
font-style: italic;
|
||||
src: url('assets/iosevka-slab-thinitalic.woff') format('woff'), url('assets/iosevka-slab-thinitalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaSlabWEB;
|
||||
font-weight: 300;
|
||||
src: url('assets/iosevka-slab-light.woff') format('woff'), url('assets/iosevka-slab-light.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaSlabWEB;
|
||||
font-weight: 300;
|
||||
font-style: italic;
|
||||
src: url('assets/iosevka-slab-lightitalic.woff') format('woff'), url('assets/iosevka-slab-lightitalic.ttf') format('truetype');
|
||||
}
|
||||
@font-face {
|
||||
font-family: IosevkaSlabWEB;
|
||||
src: url('assets/iosevka-slab-regular.woff') format('woff'), url('assets/iosevka-slab-regular.ttf') format('truetype');
|
||||
|
@ -82,7 +148,10 @@
|
|||
font-size: 2rem;
|
||||
width: 68rem;
|
||||
}
|
||||
.bold { font-weight: bold }
|
||||
.hair { font-weight: 100 }
|
||||
.thin { font-weight: 200 }
|
||||
.light { font-weight: 300 }
|
||||
.bold { font-weight: 700 }
|
||||
.italic { font-style: italic }
|
||||
.show table.block {
|
||||
width: 68rem;
|
||||
|
@ -186,6 +255,7 @@
|
|||
min-width: 10rem;
|
||||
background: #eee;
|
||||
text-shadow: none;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
#picker:hover .menu .group a:hover {
|
||||
background: #ddd;
|
||||
|
@ -249,19 +319,18 @@
|
|||
}
|
||||
var BLOCKSIZE = 16 * 4;
|
||||
var fonts = [
|
||||
[
|
||||
{name: 'iosevka-regular', cls: '', display: 'Iosevka'},
|
||||
{name: 'iosevka-bold', cls: 'bold', display: 'Iosevka Bold'},
|
||||
{name: 'iosevka-italic', cls:'italic', display: 'Iosevka Italic'},
|
||||
{name: 'iosevka-bolditalic', cls:'bold italic', display: 'Iosevka Bold Italic'}
|
||||
],
|
||||
[
|
||||
{name: 'iosevka-slab-regular', cls: 'slab', display: 'Iosevka Slab'},
|
||||
{name: 'iosevka-slab-bold', cls: 'slab bold', display: 'Iosevka Slab Bold'},
|
||||
{name: 'iosevka-slab-italic', cls:'slab italic', display: 'Iosevka Slab Italic'},
|
||||
{name: 'iosevka-slab-bolditalic', cls:'slab bold italic', display: 'Iosevka Slab Bold Italic'}
|
||||
]
|
||||
[ {name: 'iosevka-hair', cls: 'hair', display: 'Iosevka Ultralight'}, {name: 'iosevka-slab-hair', cls: 'slab hair', display: 'Iosevka Slab Ultralight'},
|
||||
{name: 'iosevka-hairitalic', cls:'hair italic', display: 'Iosevka Ultralight Italic'}, {name: 'iosevka-slab-hairitalic', cls:'slab hair italic', display: 'Iosevka Slab Ultralight Italic'} ],
|
||||
[ {name: 'iosevka-thin', cls: 'thin', display: 'Iosevka Thin'}, {name: 'iosevka-slab-thin', cls: 'slab thin', display: 'Iosevka Slab Thin'},
|
||||
{name: 'iosevka-thinitalic', cls:'thin italic', display: 'Iosevka Thin Italic'}, {name: 'iosevka-slab-thinitalic', cls:'slab thin italic', display: 'Iosevka Slab Thin Italic'} ],
|
||||
[ {name: 'iosevka-light', cls: 'light', display: 'Iosevka Light'}, {name: 'iosevka-slab-light', cls: 'slab light', display: 'Iosevka Slab Light'},
|
||||
{name: 'iosevka-lightitalic', cls:'light italic', display: 'Iosevka Light Italic'}, {name: 'iosevka-slab-lightitalic', cls:'slab light italic', display: 'Iosevka Slab Light Italic'} ],
|
||||
[ {name: 'iosevka-regular', cls: '', display: 'Iosevka'}, {name: 'iosevka-slab-regular', cls: 'slab', display: 'Iosevka Slab'},
|
||||
{name: 'iosevka-italic', cls:'italic', display: 'Iosevka Italic'}, {name: 'iosevka-slab-italic', cls:'slab italic', display: 'Iosevka Slab Italic'} ],
|
||||
[ {name: 'iosevka-bold', cls: 'bold', display: 'Iosevka Bold'}, {name: 'iosevka-slab-bold', cls: 'slab bold', display: 'Iosevka Slab Bold'},
|
||||
{name: 'iosevka-bolditalic', cls:'bold italic', display: 'Iosevka Bold Italic'}, {name: 'iosevka-slab-bolditalic', cls:'slab bold italic', display: 'Iosevka Slab Bold Italic'} ]
|
||||
];
|
||||
var REGULAR = 3;
|
||||
var lipsums = ['Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur semper ipsum quam, at molestie libero euismod vitae. Etiam vehicula felis mi, et ultricies libero consequat at. Donec consequat, nunc id elementum tempor, lectus orci vulputate leo, eget lobortis lectus nulla sed orci. Donec in dolor non orci aliquet gravida. Nulla volutpat magna et nulla pretium, quis consequat nibh euismod. Suspendisse eget metus enim. Fusce vulputate scelerisque eros et consequat. Quisque dapibus accumsan augue, et semper lectus vehicula sit amet. Ut ornare venenatis tortor, non gravida tellus mattis interdum. In hac habitasse platea dictumst. Donec interdum commodo ex eu tincidunt. Curabitur non fermentum enim. Proin luctus orci ut commodo auctor. Pellentesque accumsan id sem eu semper. Sed non pharetra nibh. Vivamus mattis luctus arcu, a rutrum dui venenatis sit amet. aja ojo ojoined',
|
||||
'Troh tper es sos, bo slisxil spôrtjư uzx, cxital posteluf hrvatzem ili bi. Tenis lubôvijm roksăfnâvơi da din. Bo cxtir dajte lubim onă, dev ti silăju môrkva vecxer. Din om leto glfădju problêm. Sâm slơzxju răzumim vnimanie na, vsê ăzia kưdrju prôgram nô. Slôzxju zavoduf nơ den, hcê licơ sxkol toplju so. Vi knigis sidili polozxij bil, ne polnfju ovơcxjư dla, es ônâ mamâ pisajut mălôstis.',
|
||||
'Жят эним либриз аюдиам ад. Мыа ан одео нонумй опортэры, но дуо вэре эчжынт ыпикурэи. Ан вим алёквюам пыртенакж. Эжт но оратио факэтэ, дольорэ индоктум дыфинитеоным эжт ты.',
|
||||
|
@ -305,7 +374,7 @@
|
|||
for(var j = 0; j < ss.length; j++){ ss[j].spaces = new Array(langlen - ss[j].lang.length + 2).join(' ') };
|
||||
return ss;
|
||||
})(sampleSentences),
|
||||
currentFont: fonts[0][0],
|
||||
currentFont: fonts[REGULAR][0],
|
||||
waterfall: [36, 28, 24, 20, 18, 16, 14, 12, 11, 10],
|
||||
sampleRows: []
|
||||
},
|
||||
|
@ -350,7 +419,7 @@
|
|||
el: '#picker',
|
||||
data: {
|
||||
fonts: fonts,
|
||||
current: fonts[0][0]
|
||||
current: fonts[REGULAR][0] // regular
|
||||
},
|
||||
methods: {
|
||||
choose: function(item){
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue