fixed /alpha, /de and /partial. 1.0 will be soon.

This commit is contained in:
be5invis 2015-11-22 18:29:03 +08:00
parent c45943546e
commit 56d28e82fc
10 changed files with 96 additions and 60 deletions

View file

@ -8,9 +8,9 @@ Coders' typeface, built from code.
Quit your editor/program. Unzip and open the folder. Quit your editor/program. Unzip and open the folder.
* **Mac + Linux (with font-viewer)** : Select the .ttf files and double click → Follow the on-screen guide. * **Mac + Linux (with font-viewer)** : Select the .ttf files and double click → Follow the on-screen guide.
* **Windows** : Right click the .ttf files → Install. * **Windows** : Right click the .ttf files → Install.
* **Linux (manually)** : Copy the .ttf files to your fonts-directory → Run `sudo fc-cache`. * **Linux (manually)** : Copy the .ttf files to your fonts-directory → Run `sudo fc-cache`.
### Detailed Instructions ### Detailed Instructions
* [How to](http://www.howtogeek.com/192980/how-to-install-remove-and-manage-fonts-on-windows-mac-and-linux/) Install, Remove, and Manage Fonts on Windows, Mac, and Linux. * [How to](http://www.howtogeek.com/192980/how-to-install-remove-and-manage-fonts-on-windows-mac-and-linux/) Install, Remove, and Manage Fonts on Windows, Mac, and Linux.
@ -29,7 +29,7 @@ You will find ttfs in the `build/` directory.
## Build your own style ## Build your own style
![](https://cloud.githubusercontent.com/assets/240091/10895370/cc80f088-81ee-11e5-919b-a6daefdbc3f0.png) ![Styles Preview](https://cloud.githubusercontent.com/assets/240091/10895370/cc80f088-81ee-11e5-919b-a6daefdbc3f0.png)
Iosevka comes with several visual styles, however they are inactive using the default build. To build these variants you should use style variables in the `make` procedure: Iosevka comes with several visual styles, however they are inactive using the default build. To build these variants you should use style variables in the `make` procedure:

View file

@ -465,19 +465,18 @@ define [buildFont para recursive] : begin
libspiro.spiroToBezierOnContext knots closed s libspiro.spiroToBezierOnContext knots closed s
foreach af [items-of lastafs] : if af : af.call s foreach af [items-of lastafs] : if af : af.call s
local {.lhs lhs .rhs rhs} : s.expand CONTRAST local {.lhs lhs .rhs rhs} : s.expand CONTRAST
if closed if closed : then
then local g : new Glyph
local g : new Glyph libspiro.spiroToBezierOnContext [lhs.slice 0 (-1)] true g true
libspiro.spiroToBezierOnContext [lhs.slice 0 (-1)] true g true local lhsContour g.contours.0
local lhsContour g.contours.0 set g.contours {}
set g.contours {} libspiro.spiroToBezierOnContext [rhs.reverse :.slice 0 (-1)] true g true
libspiro.spiroToBezierOnContext [rhs.reverse :.slice 0 (-1)] true g true local rhsContour g.contours.0
local rhsContour g.contours.0 set g.contours {[lhsContour.concat rhsContour]}
set g.contours {[lhsContour.concat rhsContour]} : else
else local g : new Glyph
local g : new Glyph lhs.0.type = rhs.0.type = lhs.(lhs.length - 1).type = rhs.(rhs.length - 1).type = 'corner'
lhs.0.type = rhs.0.type = lhs.(lhs.length - 1).type = rhs.(rhs.length - 1).type = 'corner' libspiro.spiroToBezierOnContext [lhs.concat : rhs.reverse] true g true
libspiro.spiroToBezierOnContext [lhs.concat : rhs.reverse] true g true
local r g.contours local r g.contours
r.knots = knots r.knots = knots
return r return r

View file

@ -106,13 +106,14 @@ define [AIHSerifs top _left _right] : glyph-construction
include : AIVSerifs top _left _right include : AIVSerifs top _left _right
include : CenterBottomSerif (left + STROKE * sideSerifK * CORRECTION_HX) 0 JUT include : CenterBottomSerif (left + STROKE * sideSerifK * CORRECTION_HX) 0 JUT
include : CenterBottomSerif (right - STROKE * sideSerifK * CORRECTION_HX) 0 JUT include : CenterBottomSerif (right - STROKE * sideSerifK * CORRECTION_HX) 0 JUT
define [AINSerifs top _left _right] : glyph-construction define [AINSerifs top _left _right sw xn] : glyph-construction
local left : fallback _left SB local left : fallback _left SB
local right : fallback _right RIGHTSB local right : fallback _right RIGHTSB
local jut : JUT * [fallback xn 1]
if SLAB : begin if SLAB : begin
include : LeftwardTopSerif (left + STROKE * (sideSerifK - 0.5) * CORRECTION_HX) top SIDEJUT include : LeftwardTopSerif (left + sw * (sideSerifK - 0.5) * CORRECTION_HX) top (jut - sw / 2 * CORRECTION_HX)
include : CenterTopSerif (right - STROKE * sideSerifK * CORRECTION_HX) top JUT include : CenterTopSerif (right - sw * sideSerifK * CORRECTION_HX) top jut
include : CenterBottomSerif (left + STROKE * sideSerifK * CORRECTION_HX) 0 JUT include : CenterBottomSerif (left + sw * sideSerifK * CORRECTION_HX) 0 jut
tag-contour 'serifLB' tag-contour 'serifLB'
#include : CenterdBottomSerif (right - STROKE * (sideSerifK - 0.5) * CORRECTION_HX) 0 (JUT / 2) #include : CenterdBottomSerif (right - STROKE * (sideSerifK - 0.5) * CORRECTION_HX) 0 (JUT / 2)
define [AICyrISerifs top _left _right] : glyph-construction define [AICyrISerifs top _left _right] : glyph-construction
@ -447,6 +448,11 @@ define [vdual newid unicode id spacing] : create-glyph [fallback newid : 'double
apply-transform : Translate 0 (spacing / 2) apply-transform : Translate 0 (spacing / 2)
apply-transform : Italify apply-transform : Italify
define [composite newid unicode parts] : create-glyph [fallback newid ('glyph' + [set nTemp (nTemp + 1)])] : glyph-construction
if unicode : assign-unicode unicode
include parts.0 AS_BASE
foreach [part : items-of [parts.slice 1]] : include part
# Full-width derivatives # Full-width derivatives
define [fwl newid unicode id] : create-glyph [fallback newid : 'fwl' + id] : glyph-construction define [fwl newid unicode id] : create-glyph [fallback newid : 'fwl' + id] : glyph-construction
if unicode : assign-unicode unicode if unicode : assign-unicode unicode

View file

@ -1,5 +1,10 @@
###### Cyrillic glyphs ###### Cyrillic glyphs
# Style parameters
define [CyrDescender x shift] : glyph-construction
local descenderOverflow : if SLAB SIDEJUT ((RIGHTSB - SB) * [fallback shift 0.1])
include : VBarRight (x + descenderOverflow) (HALFSTROKE - LONGJUT) STROKE
# Copy and turned characters
alias 'cyrA' 0x410 'A' alias 'cyrA' 0x410 'A'
alias 'cyra' 0x430 'a' alias 'cyra' 0x430 'a'
alias 'cyrVe' 0x412 'B' alias 'cyrVe' 0x412 'B'
@ -237,18 +242,23 @@ create-glyph 'cyrghe.serbian' : glyph-construction
italic-variant 'cyrghe' 0x433 italic-variant 'cyrghe' 0x433
define [CyrDeShape top] : glyph-construction define [CyrDeShape top] : glyph-construction
local cutleft : mix SB RIGHTSB 0.2 local descenderOverflow : if SLAB SIDEJUT ((RIGHTSB - SB) * 0.05)
local cutright : mix SB RIGHTSB 0.92 local cutleft : if SLAB SB (SB + descenderOverflow)
include : HBar (SB + O * 2) RIGHTSB HALFSTROKE local cutright : if SLAB RIGHTSB (RIGHTSB - descenderOverflow)
include : VBar (cutright - HALFSTROKE * CORRECTION_HX) 0 top local topleft : mix cutleft cutright 0.15
include : halfXStrand (cutleft + STROKE * CORRECTION_HX) top (SB + HALFSTROKE * CORRECTION_HX) HALFSTROKE 0.1 0.75 0.5 include : HBarBottom (cutleft - descenderOverflow) (cutright + descenderOverflow) 0
include : VBar (SB + HALFSTROKE * CORRECTION_HX + O * 2) (-LONGJUT + HALFSTROKE) 0 include : VBarRight cutright 0 top
include : VBar (RIGHTSB - HALFSTROKE * CORRECTION_HX) (-LONGJUT + HALFSTROKE) 0 include : halfXStrand (topleft + STROKE * CORRECTION_HX) top (cutleft + HALFSTROKE * CORRECTION_HX) HALFSTROKE 0.1 0.75 0.5
include : VBarLeft (cutleft - descenderOverflow) (-LONGJUT + HALFSTROKE) 0
include : VBarRight (cutright + descenderOverflow) (-LONGJUT + HALFSTROKE) 0
if SLAB : then if SLAB : then
include : HBarTop (cutleft - (RIGHTSB - cutright)) RIGHTSB top include : dispiro
widths.rhs
flat (topleft - descenderOverflow) top
curl (cutright + descenderOverflow) top
: else : else
include : HBarTop cutleft cutright top include : HBarTop topleft cutright top
create-glyph 'cyrDe' : glyph-construction create-glyph 'cyrDe' : glyph-construction
assign-unicode 0x414 assign-unicode 0x414
@ -263,18 +273,18 @@ create-glyph 'cyrde.italic' : glyph-construction
include bMarks include bMarks
include : dispiro include : dispiro
widths.lhs widths.lhs
flat (RIGHTSB - O) SMALLSMOOTHA flat (RIGHTSB - OX) SMALLSMOOTHA
curl (RIGHTSB - O) (XH - SMALLSMOOTHB) curl (RIGHTSB - OX) (XH - SMALLSMOOTHB)
arcvh arcvh
g4 (MIDDLE - CORRECTION_OMIDS) (CAP * 0.7 - O) g4 (MIDDLE - CORRECTION_OMIDS) (CAP * 0.7 - O)
archv archv
flat.ai (SB + O) (XH - SMALLSMOOTHA) flat.ai (SB + OX) (XH - SMALLSMOOTHA)
curl.ai (SB + O) SMALLSMOOTHB curl.ai (SB + OX) SMALLSMOOTHB
arcvh arcvh
g4 (MIDDLE + CORRECTION_OMIDS) O g4 (MIDDLE + CORRECTION_OMIDS) O
archv archv
flat (RIGHTSB - O) SMALLSMOOTHA flat (RIGHTSB - OX) SMALLSMOOTHA
curl (RIGHTSB - O) (XH - SMALLSMOOTHB) curl (RIGHTSB - OX) (XH - SMALLSMOOTHB)
quadcontrols 0 0.8 quadcontrols 0 0.8
g4 (SB + STROKE * 1.1) CAP g4 (SB + STROKE * 1.1) CAP
@ -379,7 +389,7 @@ define [CyrTseShape top] : glyph-construction
include : VBarLeft SB 0 top include : VBarLeft SB 0 top
include : HBarBottom SB RIGHTSB 0 include : HBarBottom SB RIGHTSB 0
include : VBarRight RIGHTSB 0 top include : VBarRight RIGHTSB 0 top
include : VBarRight [mix SB RIGHTSB 1.05] (HALFSTROKE - LONGJUT) STROKE include : CyrDescender RIGHTSB 0.05
if SLAB : begin if SLAB : begin
include : AIVSerifs top include : AIVSerifs top
include : LeftwardBottomSerif SB 0 SIDEJUT include : LeftwardBottomSerif SB 0 SIDEJUT
@ -396,7 +406,7 @@ create-glyph 'cyrtse.italic' : glyph-construction
include eMarks include eMarks
include glyphs.u include glyphs.u
eject-contour 'serifLT' eject-contour 'serifLT'
include : VBarRight [mix SB RIGHTSB 1.05] (HALFSTROKE - LONGJUT) STROKE include : CyrDescender RIGHTSB 0.05
italic-variant 'cyrtse' 0x446 italic-variant 'cyrtse' 0x446
define [CyrCheShape top _barp] : glyph-construction define [CyrCheShape top _barp] : glyph-construction
@ -448,7 +458,7 @@ italic-variant 'cyrsha' 0x448
define [CyrShchaShape top] : glyph-construction define [CyrShchaShape top] : glyph-construction
include : CyrShaShape top include : CyrShaShape top
eject-contour 'serifRB' eject-contour 'serifRB'
include : VBarRight [mix SB RIGHTSB 1.05] (HALFSTROKE - LONGJUT) STROKE include : CyrDescender RIGHTSB 0.05
create-glyph 'cyrShcha' : glyph-construction create-glyph 'cyrShcha' : glyph-construction
assign-unicode 0x429 assign-unicode 0x429
@ -462,7 +472,7 @@ create-glyph 'cyrshcha.italic' : glyph-construction
include eMarks include eMarks
include glyphs.'cyrsha.italic' include glyphs.'cyrsha.italic'
eject-contour 'serifLT' eject-contour 'serifLT'
include : VBarRight [mix SB RIGHTSB 1.05] (HALFSTROKE - LONGJUT) STROKE include : CyrDescender RIGHTSB 0.05
italic-variant 'cyrshcha' 0x449 italic-variant 'cyrshcha' 0x449
define [CyrYerShape top] : glyph-construction define [CyrYerShape top] : glyph-construction

View file

@ -31,7 +31,7 @@ create-glyph 'cyrdzhe' : glyph-construction
define [CyrLjeShape top] : glyph-construction define [CyrLjeShape top] : glyph-construction
local xlefttop : mix SB RIGHTSB 0.075 local xlefttop : mix SB RIGHTSB 0.075
local jut : JUT * 0.72 local jut : JUT * 0.72
include : LegShape xlefttop [mix SB RIGHTSB 0.025] [mix SB 0 [if SLAB 0.25 0.5]] top 0 MVERTSTROKE include : LegShape xlefttop [mix SB RIGHTSB 0.025] [mix SB 0 [if SLAB 0.75 0.5]] top 0 MVERTSTROKE
include : CyrYeriShape top (MIDDLE - MVERTSTROKE / 2 * CORRECTION_HX) (RIGHTSB - O) MVERTSTROKE jut include : CyrYeriShape top (MIDDLE - MVERTSTROKE / 2 * CORRECTION_HX) (RIGHTSB - O) MVERTSTROKE jut
include : HBarTop xlefttop MIDDLE top include : HBarTop xlefttop MIDDLE top
if SLAB : begin if SLAB : begin
@ -139,4 +139,18 @@ alias 'cyrUe' 0x4AE 'Y'
alias 'cyrQa' 0x51A 'Q' alias 'cyrQa' 0x51A 'Q'
alias 'cyrqa' 0x51B 'q' alias 'cyrqa' 0x51B 'q'
alias 'cyrWe' 0x51C 'W' alias 'cyrWe' 0x51C 'W'
alias 'cyrwe' 0x51D 'w' alias 'cyrwe' 0x51D 'w'
composite nothing 0x4A2 { glyphs.cyrEn [CyrDescender RIGHTSB] }
composite nothing 0x4A3 { glyphs.cyren [CyrDescender RIGHTSB] }
composite nothing 0x4B2 { glyphs.cyrHa [CyrDescender RIGHTSB] }
composite nothing 0x4B3 { glyphs.cyrha [CyrDescender RIGHTSB] }
composite nothing 0x4B6 { glyphs.cyrChe [CyrDescender RIGHTSB] }
composite nothing 0x4B7 { glyphs.cyrche [CyrDescender RIGHTSB] }
composite nothing 0x49A { glyphs.cyrKa [CyrDescender (RIGHTSB - O)] }
composite nothing 0x49B { glyphs.cyrka [CyrDescender (RIGHTSB - O)] }
composite nothing 0x4AC { glyphs.cyrTe [CyrDescender (MIDDLE + HALFSTROKE * CORRECTION_HX)] ifMarks}
composite nothing 0x4AD { glyphs.cyrte [CyrDescender (MIDDLE + HALFSTROKE * CORRECTION_HX)] pMarks}
composite nothing 0x496 { glyphs.cyrZhe [CyrDescender (RIGHTSB - O * 4)] }
composite nothing 0x497 { glyphs.cyrzhe [CyrDescender (RIGHTSB - O * 4)] }

View file

@ -215,20 +215,21 @@ create-glyph 'alpha' : glyph-construction
assign-unicode 0x3B1 assign-unicode 0x3B1
include eMarks include eMarks
local middle : mix SB RIGHTSB 0.5 local middle : mix SB RIGHTSB 0.42
local fine : adviceBlackness 3.25 local fine : adviceBlackness 3.25
local k1 0.25 local k1 0.25
local k2 0.5 local k2 0.5
local k3 0.35 local k3 0.35
include : dispiro include : dispiro
widths.rhs fine widths.rhs fine
g4 (RIGHTSB - OX * 1.5) XH [heading DOWNWARD] g4 (RIGHTSB - OX * 1.75) XH [heading DOWNWARD]
bezcontrols k1 k2 k3 1 6 bezcontrols k1 k2 k3 1 6
g4 (middle + CORRECTION_OMIDS) O [widths 0 STROKE] g4.left.mid (middle + CORRECTION_OMIDS) O [widths 0 STROKE]
g4 (SB + OX) SMALLSMOOTHB unimportant archv
g4 (SB + OX - (RIGHTSB - SB) * 0.006) [mix SMALLSMOOTHB (XH - SMALLSMOOTHA) 0.5] flat.ai (SB + OX) SMALLSMOOTHB
g4 (SB + OX) (XH - SMALLSMOOTHA) unimportant curl.ai (SB + OX) (XH - SMALLSMOOTHA)
g4 (middle - CORRECTION_OMIDS) XO [widths 0 STROKE] arcvh
g4.right.mid (middle - CORRECTION_OMIDS) XO [widths 0 STROKE]
bezcontrols (1 - k3) 0 (1 - k1) (1 - k2) 6 bezcontrols (1 - k3) 0 (1 - k1) (1 - k2) 6
g4 (RIGHTSB - OX * 2) 0 [widths.heading 0 fine DOWNWARD] g4 (RIGHTSB - OX * 2) 0 [widths.heading 0 fine DOWNWARD]

View file

@ -427,8 +427,8 @@ select-variant 'I' 'I' 'serifed'
define [TShape top] : glyph-construction define [TShape top] : glyph-construction
include : VBar MIDDLE 0 top include : VBar MIDDLE 0 top
local l : SB + OX local l : SB + OXE
local r : RIGHTSB - OX local r : RIGHTSB - OXE
include : HBarTop l r top include : HBarTop l r top
if SLAB : begin if SLAB : begin
include : DownwardRightSerif r top VJUT MVERTSTROKE include : DownwardRightSerif r top VJUT MVERTSTROKE
@ -520,7 +520,7 @@ create-glyph 'J.serifed' : glyph-construction
select-variant 'J' 'J' 'serifed' select-variant 'J' 'J' 'serifed'
### M N ### M N
define [NShape top left right coward diagcoward] : glyph-construction define [NShape top left right coward diagcoward xn] : glyph-construction
local topstroke : adviceBlackness [fallback diagcoward 4] local topstroke : adviceBlackness [fallback diagcoward 4]
local stroke : adviceBlackness [fallback coward 1] local stroke : adviceBlackness [fallback coward 1]
local halftopstroke : topstroke / 2 local halftopstroke : topstroke / 2
@ -536,7 +536,7 @@ define [NShape top left right coward diagcoward] : glyph-construction
include : dispiro include : dispiro
flat (left + halftopstroke) top [widths.heading topstroke 0 DOWNWARD] flat (left + halftopstroke) top [widths.heading topstroke 0 DOWNWARD]
curl (right - halftopstroke) 0 [widths.heading 0 topstroke DOWNWARD] curl (right - halftopstroke) 0 [widths.heading 0 topstroke DOWNWARD]
include : AINSerifs top left right include : AINSerifs top left right stroke xn
create-glyph 'N' : glyph-construction create-glyph 'N' : glyph-construction
set-width WIDTH set-width WIDTH

View file

@ -75,7 +75,7 @@ create-glyph 'numero' : glyph-construction
assign-unicode 0x2116 assign-unicode 0x2116
local fine : adviceBlackness 4.5 local fine : adviceBlackness 4.5
include : smallo XH (fine * 2) (MIDDLE + fine / 2) [mix RIGHTSB WIDTH 0.5] fine (SMOOTHA * fine / STROKE) (SMOOTHB * fine / STROKE) include : smallo XH (fine * 2) (MIDDLE + fine / 2) [mix RIGHTSB WIDTH 0.5] fine (SMOOTHA * fine / STROKE) (SMOOTHB * fine / STROKE)
include : NShape CAP (SB / 2) MIDDLE 4.5 5.5 include : NShape CAP (SB / 2) MIDDLE 4.5 5.5 0.7
include : HBarBottom (MIDDLE + fine / 2) [mix RIGHTSB WIDTH 0.5] 0 fine include : HBarBottom (MIDDLE + fine / 2) [mix RIGHTSB WIDTH 0.5] 0 fine
alias 'Ohm' 0x2126 'Omega' alias 'Ohm' 0x2126 'Omega'

View file

@ -71,8 +71,8 @@ create-glyph 'partial' : glyph-construction
include : smallo (CAP * 0.65) 0 SB RIGHTSB OPERATORSTROKE include : smallo (CAP * 0.65) 0 SB RIGHTSB OPERATORSTROKE
include : dispiro include : dispiro
widths.lhs OPERATORSTROKE widths.lhs OPERATORSTROKE
flat (RIGHTSB - O) SMALLSMOOTHA flat (RIGHTSB - OX) SMALLSMOOTHA
curl (RIGHTSB - O) (XH - SMALLSMOOTHB) curl (RIGHTSB - OX) (XH - SMALLSMOOTHB)
hookend CAPO 0.6 hookend CAPO 0.6
g4 [mix SB RIGHTSB 0.075] [mix XH CAP 0.8] g4 [mix SB RIGHTSB 0.075] [mix XH CAP 0.8]

View file

@ -1,7 +1,7 @@
[iosevka] [iosevka]
family = 'Iosevka' family = 'Iosevka'
version = '1.0-beta9' version = '1.0'
codename = 'Tshai-Lieng' codename = 'Tabris'
copyright = 'Copyright (c) 2015 Belleve Invis.' copyright = 'Copyright (c) 2015 Belleve Invis.'
licence = '''This font software is licenced under the SIL Open Font Licence, Version 1.1. This is licence is avaliable with a FAQ at: http://scripts.sil.org/OFL. This font software is distributes on an 'AS IS' basis, without warranties or conditions of any kind, either express or implied. See the SIL Open Font licence fot the specific language, premissions and limitations governing your use of this font software.''' licence = '''This font software is licenced under the SIL Open Font Licence, Version 1.1. This is licence is avaliable with a FAQ at: http://scripts.sil.org/OFL. This font software is distributes on an 'AS IS' basis, without warranties or conditions of any kind, either express or implied. See the SIL Open Font licence fot the specific language, premissions and limitations governing your use of this font software.'''
@ -143,19 +143,25 @@ sbalance = 0.53
[x-slab-regular] [x-slab-regular]
style = 'Regular' style = 'Regular'
sb = 65 sb = 70
rbalance = 60
[x-slab-bold] [x-slab-bold]
style = 'Bold' style = 'Bold'
sb = 55
rbalance = 80
[x-slab-italic] [x-slab-italic]
style = 'Italic' style = 'Italic'
sb = 65 sb = 70
rbalance = 60
[x-slab-bolditalic] [x-slab-bolditalic]
style = 'Bold Italic' style = 'Bold Italic'
ebalance = 0.375 ebalance = 0.375
sbalance = 0.53 sbalance = 0.53
sb = 55
rbalance = 80
# Variants # Variants
[v-l-hooky.variantSelector] [v-l-hooky.variantSelector]