Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
be5invis committed Jul 20, 2020
2 parents 90c8418 + 77c27fb commit 6b853b5
Show file tree
Hide file tree
Showing 78 changed files with 226 additions and 105 deletions.
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ Since version 2.0, Iosevka would no longer support building via `makefile`. To i

<!-- END Section-Private-Build-Plan-Sample -->

3. Run `npm run build -- contents::<your plan name>` and the built fonts would be avaliable in `dist/`. Aside from `contents::<plan>`, other options are:

Expand Down Expand Up @@ -314,6 +314,7 @@ The current available styles for `design`/`upright`/`italic`/`oblique` options a
* Styles for `a`:
* `v-a-doublestorey`, `cv01`: Double-storey `a` (default for Upright).
* `v-a-singlestorey`, `cv02`: Single-storey `a` (default for Italic).
* `v-a-singlestorey-tailed`, `VXBS`: Single-storey `a` with curly tail.
* Styles for `b`:
* `v-b-toothed`, `VXBK`: `b` with bottom-left tooth (default).
* `v-b-toothless-corner`, `VXBL`: `b` without botton-left tooth, with a corner transition.
Expand Down Expand Up @@ -373,6 +374,7 @@ The current available styles for `design`/`upright`/`italic`/`oblique` options a
* Styles for `u`:
* `v-u-with-bar`, `cv89`: Normal `u` with right bar (default).
* `v-u-without-bar`, `cv90`: Normal `u` without right bar, like a smaller uppercase `U`.
* `v-u-tailed`, `VXBT`: `u` with right bar and a slightly curly tail.
* Styles for `v`, `V`:
* `v-v-straight`, `cv71`: Standard, straight `V` and `v` (default).
* `v-v-curly`, `cv72`:  Slightly curly `V` and `v`, like Iosevka 2.x.
Expand Down
4 changes: 4 additions & 0 deletions changes/3.3.1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
* Add a slightly-curly tailed `a` and `u` (#631, #636).
* Add triangle operators, bowtie operators and diagonal ellipsis.
* Refine the crossbar width of `7` in `v-seven-crossbar` variant (#634).
* Fix the broken shape of U-horns.
1 change: 0 additions & 1 deletion font-src/gen/build-glyphs.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import '../support/point' as Point
import './kits/spiro-kit' as spirokit
import './kits/boole-kit' as BooleKit
import '../support/anchor' as Anchor
import '../support/monotonic-interpolate' as smoothreg

import [mix linreg clamp fallback] from '../support/utils'
import [calculateMetrics setFontMetrics MarksetDiv GenDivFrame] from '../meta/aesthetics'
Expand Down
44 changes: 36 additions & 8 deletions font-src/glyphs/letter-latin.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,15 @@ glyph-block Letter-Shared : begin
if [not sel] : assign-unicode unicode
include [f src sel] AS_BASE ALSO_METRICS

glyph-block Letter-Shared-Shapes : begin
glyph-block-import CommonShapes

glyph-block-export RightwardTailedBar
define [RightwardTailedBar low high] : dispiro
flat RightSB high [widths.rhs.heading Stroke Downward]
curl RightSB (low + Hook * 0.5 + Stroke + O * 2)
g4 (RightSB + Hook * 0.25) (low + Stroke * 0.75 + O * 2)

glyph-block Letter-Latin-Upper-I : begin
glyph-block-import CommonShapes
glyph-block-import Overmarks
Expand Down Expand Up @@ -949,6 +958,7 @@ glyph-block Letter-Latin-Upper-A : begin
glyph-block Letter-Latin-Lower-A : begin
glyph-block-import CommonShapes
glyph-block-import Overmarks
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar

sketch # a.doublestorey
set-width Width
Expand Down Expand Up @@ -998,6 +1008,14 @@ glyph-block Letter-Latin-Lower-A : begin
set-base-anchor 'bottomright' [mix SB RightSB 1.075] 0
save 'a.singlestorey'

sketch # a.singlestoreyTailed
set-width Width
include MarkSet.e
set-base-anchor 'trailing' (RightSB - markHalfStroke) 0
include : OBarRightShape
include : RightwardTailedBar 0 XH
save 'a.singlestoreyTailed'

select-variant 'a' 'a'
alias 'cyra' 0x430 'a'

Expand Down Expand Up @@ -3918,22 +3936,32 @@ glyph-block Letter-Latin-Upper-U : begin
glyph-block Letter-Latin-Lower-U : begin
glyph-block-import CommonShapes
glyph-block-import Overmarks
glyph-block-import Letter-Shared-Shapes : RightwardTailedBar

sketch # u
set-width Width
include MarkSet.e
set-base-anchor 'trailing' (RightSB - markHalfStroke) 0
include : refer-glyph "n"
eject-contour 'serifRB'
eject-contour 'serifLB'
currentGlyph.reTagContour 'serifLT' 'serifRB'
include : nShoulder
left -- (SB + Stroke * HVContrast)
right -- RightSB
fine -- ShoulderFine
include : FlipAround Middle (XH / 2)

if SLAB : begin
include : LeftwardTopSerif (RightSB - Stroke * HVContrast) XH SideJut
include : LeftwardTopSerif SB XH SideJut
branch
include : VBarRight RightSB 0 XH
if SLAB : begin
include : LeftwardTopSerif (RightSB - Stroke * HVContrast) XH SideJut
include : LeftwardTopSerif SB XH SideJut
include : RightwardBottomSerif RightSB 0 SideJut
save 'u.withBar'

save 'u.withBar'
branch
include : RightwardTailedBar 0 XH
if SLAB : begin
include : LeftwardTopSerif (RightSB - Stroke * HVContrast) XH SideJut
include : LeftwardTopSerif SB XH SideJut
save 'u.tailed'

create-glyph 'upsilon' 0x3C5 : glyph-construction
include MarkSet.e
Expand Down
4 changes: 2 additions & 2 deletions font-src/glyphs/numbers.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -480,10 +480,10 @@ glyph-block Numbers : begin
define [SevenCrossbarShape top] : glyph-construction
local cor : SevenSwCor top
local m : mix SevenXLeft (RightSB - HalfStroke * cor) 0.5
include : HOverlayBar
include : HBar
m - Stroke * cor * 0.25 - LongJut * 0.8
m + Stroke * cor * 0.25 + LongJut * 0.7
mix 0 (top - HalfStroke) 0.5
mix 0 (top - Stroke * 0.25) 0.5

sketch # seven.lnum
include MarkSet.capital
Expand Down
136 changes: 94 additions & 42 deletions font-src/glyphs/symbol-math.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -293,44 +293,77 @@ glyph-block Symbol-Math-Arith : begin
refer-glyph 'plus'
DotAt Middle (symbolMid * 2 - OperatorStroke / 2) (DotRadius + gap)

sketch # multiply
local radius : (RightSB - SB) / 2
include : dispiro
widths.center OperatorStroke
flat (Middle - radius) (symbolMid - radius)
curl (Middle + radius) (symbolMid + radius)
save 'multiplyStroke1'
sketch # multiply
local radius : (RightSB - SB) / 2
include : dispiro
widths.center OperatorStroke
flat (Middle + radius) (symbolMid - radius)
curl (Middle - radius) (symbolMid + radius)
save 'multiplyStroke2'
sketch # multiply
local radius : (RightSB - SB) / 2
include : dispiro
widths.center GeometryStroke
flat (Middle - radius) (symbolMid - radius)
curl (Middle + radius) (symbolMid + radius)
save 'innerMultiplyStroke1'
sketch # multiply
local radius : (RightSB - SB) / 2
include : dispiro
widths.center GeometryStroke
flat (Middle + radius) (symbolMid - radius)
curl (Middle - radius) (symbolMid + radius)
save 'innerMultiplyStroke2'
define MultiplyHalfHeight : (RightSB - SB) / 2
define swBowtie : adviceBlackness 4
define [MultiplyMask p1 p2] : spiro-outline
corner (Middle - p1 * MultiplyHalfHeight) (symbolMid - p1 * MultiplyHalfHeight)
corner (Middle + p2 * MultiplyHalfHeight) (symbolMid + p2 * MultiplyHalfHeight)
corner (Middle + p2 * MultiplyHalfHeight) (symbolMid - p2 * MultiplyHalfHeight)
corner (Middle - p1 * MultiplyHalfHeight) (symbolMid + p1 * MultiplyHalfHeight)

define [MultiplyStroke1Shape s p1 p2] : dispiro
widths.center s
flat (Middle - p1 * MultiplyHalfHeight) (symbolMid - p1 * MultiplyHalfHeight)
curl (Middle + p2 * MultiplyHalfHeight) (symbolMid + p2 * MultiplyHalfHeight)

define [MultiplyStroke2Shape s p1 p2] : dispiro
widths.center s
flat (Middle - p1 * MultiplyHalfHeight) (symbolMid + p1 * MultiplyHalfHeight)
curl (Middle + p2 * MultiplyHalfHeight) (symbolMid - p2 * MultiplyHalfHeight)

create-glyph 'multiply' 0xD7 : glyph-construction
include : MultiplyStroke1Shape OperatorStroke 1 1
include : MultiplyStroke2Shape OperatorStroke 1 1

create-glyph 'bowtie' 0x22C8 : glyph-construction
include : union
intersection
MultiplyMask 1 1
union
VBarLeft SB (symbolMid - MultiplyHalfHeight) (symbolMid + MultiplyHalfHeight) swBowtie
VBarRight RightSB (symbolMid - MultiplyHalfHeight) (symbolMid + MultiplyHalfHeight) swBowtie
intersection
Rect parenTop parenBot SB RightSB
union
MultiplyStroke1Shape swBowtie 1 1
MultiplyStroke2Shape swBowtie 1 1

sketch # multiply
include : refer-glyph "multiplyStroke1"
include : refer-glyph "multiplyStroke2"
save 'multiply' 0xD7
create-glyph 'bowtieLeft' 0x22C9 : glyph-construction
include : union
intersection
MultiplyMask 1 1
VBarLeft SB (symbolMid - MultiplyHalfHeight) (symbolMid + MultiplyHalfHeight) swBowtie
intersection
Rect parenTop parenBot SB [mix SB RightSB 2]
union
MultiplyStroke1Shape swBowtie 1 1
MultiplyStroke2Shape swBowtie 1 1

create-glyph 'bowtieRight' 0x22CA : glyph-construction
include : union
intersection
MultiplyMask 1 1
VBarRight RightSB (symbolMid - MultiplyHalfHeight) (symbolMid + MultiplyHalfHeight) swBowtie
intersection
Rect parenTop parenBot [mix RightSB SB 2] RightSB
union
MultiplyStroke1Shape swBowtie 1 1
MultiplyStroke2Shape swBowtie 1 1

create-glyph 'leftSemidirectProduct' 0x22CB : glyph-construction
include : MultiplyStroke1Shape OperatorStroke 1 0
include : MultiplyStroke2Shape OperatorStroke 1 1

create-glyph 'rightSemidirectProduct' 0x22CC : glyph-construction
include : MultiplyStroke1Shape OperatorStroke 1 1
include : MultiplyStroke2Shape OperatorStroke 0 1

create-glyph 'innerMultiplyStroke1' : glyph-construction
include : MultiplyStroke1Shape GeometryStroke 1 1

sketch # innerMultiply
include : refer-glyph "innerMultiplyStroke1"
include : refer-glyph "innerMultiplyStroke2"
save 'innerMultiply'
create-glyph 'innerMultiply' : glyph-construction
include : MultiplyStroke1Shape GeometryStroke 1 1
include : MultiplyStroke2Shape GeometryStroke 1 1

sketch # divide
include : refer-glyph "minus"
Expand Down Expand Up @@ -810,6 +843,8 @@ glyph-block Symbol-Math-Relation : begin
corner r top
Rect ([mix top bot 0.5] + gap / 2) ([mix top bot 0.5] - gap / 2) (l + O) (r - O)

define [NormalSubsetShape top bot l r s] : LigationLessShape top bot l r s s 0

define [GreaterShape top bot l r s] : union
GreaterShapeA top bot l r [fallback s OperatorStroke]
GreaterShapeB top bot l r [fallback s OperatorStroke]
Expand All @@ -829,6 +864,8 @@ glyph-block Symbol-Math-Relation : begin
corner l top
Rect ([mix top bot 0.5] + gap / 2) ([mix top bot 0.5] - gap / 2) (l + O) (r - O)

define [NormalSupersetShape top bot l r s] : LigationGreaterShape top bot l r s s 0

# Sym parameters
local approxDist : EqualHalfSpace * 1.75
local symMag : (operTop - symbolMid) * 0.17
Expand All @@ -846,14 +883,17 @@ glyph-block Symbol-Math-Relation : begin
flat (Middle + dist) (symbolBottom - dist + swo) [heading Downward]
flat (Middle - dist) (symbolBottom - dist - swo) [heading Downward]

sketch # less
create-glyph 'less' '<' : glyph-construction
include : LessShape (symbolMid + dH) (symbolMid - dH) SB RightSB
save 'less' '<'

sketch # greater
include [refer-glyph 'less'] AS_BASE
include : FlipAround Middle symbolMid
save 'greater' '>'
create-glyph 'normalSubsetOf' 0x22B2 : glyph-construction
include : NormalSubsetShape (symbolMid + dH) (symbolMid - dH) SB RightSB

create-glyph 'greater' '>' : glyph-construction
include : GreaterShape (symbolMid + dH) (symbolMid - dH) SB RightSB

create-glyph 'normalSupersetOf' 0x22B3 : glyph-construction
include : NormalSupersetShape (symbolMid + dH) (symbolMid - dH) SB RightSB

sketch # lesseq
include : LessShape (symbolMid + dH + lessEqDist) (symbolMid - dH + lessEqDist) SB RightSB
Expand All @@ -876,6 +916,10 @@ glyph-block Symbol-Math-Relation : begin
include : LessShapeB (symbolMid + dH - lessEqDist) (symbolMid - dH - lessEqDist) SB RightSB OperatorStroke
save 'lesseqslant' 0x2A7D

create-glyph 'normalSubsetEq' 0x22B4 : glyph-construction
include : NormalSubsetShape (symbolMid + dH + lessEqDist) (symbolMid - dH + lessEqDist) SB RightSB
include : HBar SB RightSB (symbolMid - dH - lessEqDist) OperatorStroke

sketch # greatereq
include : GreaterShape (symbolMid + dH + lessEqDist) (symbolMid - dH + lessEqDist) SB RightSB
branch
Expand All @@ -897,6 +941,10 @@ glyph-block Symbol-Math-Relation : begin
include : GreaterShapeB (symbolMid + dH - lessEqDist) (symbolMid - dH - lessEqDist) SB RightSB OperatorStroke
save 'greatereqslant' 0x2A7E

create-glyph 'normalSupersetEq' 0x22B5 : glyph-construction
include : NormalSupersetShape (symbolMid + dH + lessEqDist) (symbolMid - dH + lessEqDist) SB RightSB
include : HBar SB RightSB (symbolMid - dH - lessEqDist) OperatorStroke

# Ligation
sketch
define l : 0.3 * Width
Expand Down Expand Up @@ -1201,6 +1249,8 @@ glyph-block Symbol-Math-Negation : begin
notGlyph null 0x22AF 'doubleForces'
notGlyph.left null 0x226E 'less'
notGlyph.right null 0x226F 'greater'
notGlyph.left null 0x22EA 'normalSubsetOf'
notGlyph.right null 0x22EB 'normalSupersetOf'
notGlyph.left null 0x2280 'precedes'
notGlyph.right null 0x2281 'succeeds'
notGlyph null 0x2241 'sym' [mix symbolMid bgopTop 0.75] [mix symbolMid bgopBot 0.75]
Expand All @@ -1219,6 +1269,8 @@ glyph-block Symbol-Math-Negation : begin
notGlyph.right null 0x2271 'greatereq'
notGlyph.left null 0x2274 'lesssym'
notGlyph.right null 0x2275 'greatersym'
notGlyph.left null 0x22EC 'normalSubsetEq'
notGlyph.right null 0x22ED 'normalSupersetEq'
notGlyph.left null 0x22E0 'precedeseqslant'
notGlyph.right null 0x22E1 'succeedseqslant'
notGlyph null 0x2278 'lessgreater'
Expand Down
26 changes: 18 additions & 8 deletions font-src/glyphs/symbol-punctuation.ptl
Original file line number Diff line number Diff line change
Expand Up @@ -1391,12 +1391,13 @@ glyph-block Symbol-Punctuation-Ellipsis : begin
define [EllipsisDotRadius darkness space] : begin
return : 0.5 * [adviceBlackness darkness (space / Width)] * PeriodSize / Stroke

define [VerticalThreeDotsShape x bottom top] : glyph-construction
define [VerticalThreeDotsShape l r p bottom top] : glyph-construction
local radius : EllipsisDotRadius 5 (top - bottom)
local mid : mix bottom top 0.5
include : DotAt x (bottom + radius) (radius - O)
include : DotAt x mid (radius - O)
include : DotAt x (top - radius) (radius - O)
local xMid : mix l r 0.5
local yMid : mix bottom top 0.5
include : DotAt [mix xMid l p] (bottom + radius) (radius - O)
include : DotAt xMid yMid (radius - O)
include : DotAt [mix xMid r p] (top - radius) (radius - O)

for-width-kinds WideWidth1 "Ellipsis"
sketch # onedotLeader
Expand Down Expand Up @@ -1431,11 +1432,20 @@ glyph-block Symbol-Punctuation-Ellipsis : begin

sketch # mathCVDots
set-width MosaicWidth
include : VerticalThreeDotsShape (MosaicWidth / 2) operBot operTop
save [MangleName 'mathCVDots'] [MangleUnicode 0x22EE]
local left : mix 0 MosaicWidth (1 / 6)
local right : mix 0 MosaicWidth (5 / 6)
branch
include : VerticalThreeDotsShape left right 0 operBot operTop
save [MangleName 'mathCVDots'] [MangleUnicode 0x22EE]
branch
include : VerticalThreeDotsShape left right (-1) operBot operTop
save [MangleName 'mathCD1Dots'] [MangleUnicode 0x22F0]
branch
include : VerticalThreeDotsShape left right (+1) operBot operTop
save [MangleName 'mathCD2Dots'] [MangleUnicode 0x22F1]

sketch # tricolon
include : VerticalThreeDotsShape Middle 0 XH
include : VerticalThreeDotsShape 0 Width 0 0 XH
save 'tricolon' 0x205D

glyph-block Symbol-Punctuation-Percentages : begin
Expand Down
Loading

0 comments on commit 6b853b5

Please sign in to comment.