Updated test page for the three more weights. Fixed several defects.

This commit is contained in:
be5invis 2015-12-15 03:06:37 +08:00
parent b26ba95258
commit 0c5ef8051e
7 changed files with 103 additions and 31 deletions

View file

@ -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

View file

@ -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'

View file

@ -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

View file

@ -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

View file

@ -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]

View file

@ -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()

View file

@ -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){