Add straight lambda (λ
) shape, and corresponded variant selector cv94
. Old shape is placed under cv95
(#467).
|
@ -315,6 +315,12 @@ The current available styles for `design`/`upright`/`italic`/`oblique` options a
|
|||
* Styles for `7`:
|
||||
* `v-seven-noserif`, `cv64`: `7` without serif (default for Sans).
|
||||
* `v-seven-serifed`, `cv65`: `7` with initial serif (default for Slab).
|
||||
* Styles for `ß`:
|
||||
* `v-eszet-traditional`, `cv34`: Traditional, Fraktur-like Eszet.
|
||||
* `v-eszet-sulzbacher`, `cv35`: A more modern, beta-like Eszet (default).
|
||||
* Styles for `λ`:
|
||||
* `v-lambda-straight`, `cv94`: More-straight letter `λ` (default).
|
||||
* `v-lambda-curly`, `cv95`: More curly letter `λ`, like Iosevka 2.x.
|
||||
* Styles for `~`:
|
||||
* `v-tilde-high`, `cv16`: Higher tilde `~`.
|
||||
* `v-tilde-low`, `cv17`: Lower tilde `~` (default).
|
||||
|
@ -353,9 +359,6 @@ The current available styles for `design`/`upright`/`italic`/`oblique` options a
|
|||
* Styles for `<=`, `>=`:
|
||||
* `v-lig-ltgteq-flat`, `cv66`: The lower bar of `<=` and `>=` ligation is flat (default).
|
||||
* `v-lig-ltgteq-slanted`, `cv67`: The lower bar of `<=` and `>=` ligation is slanted.
|
||||
* Styles for `ß`:
|
||||
* `v-eszet-traditional`, `cv34`: Traditional, Fraktur-like Eszet.
|
||||
* `v-eszet-sulzbacher`, `cv35`: A more modern, beta-like Eszet (default).
|
||||
|
||||
<!-- END Section-Cherry-Picking-Styles -->
|
||||
|
||||
|
|
|
@ -1 +1,2 @@
|
|||
* Add IEC power symbol.
|
||||
* Add IEC power symbol.
|
||||
* Add straight lambda (`λ`) shape, and corresponded variant selector `cv94`. Old shape is placed under `cv95` (#467).
|
|
@ -1306,9 +1306,10 @@ glyph-block LetterUnified-Basic : begin
|
|||
|
||||
### y
|
||||
do "y and related ============================================================================"
|
||||
define [GenSmallYShape straightBar] : begin
|
||||
local useStraightBottom : !SLAB && straightBar
|
||||
local useCurlyBottom : SLAB || straightBar
|
||||
define [GenSmallYShape straightBar serifless] : begin
|
||||
local slab : if serifless false SLAB
|
||||
local useStraightBottom : !slab && straightBar
|
||||
local useCurlyBottom : slab || straightBar
|
||||
local px1 0.84
|
||||
local py1 : linreg 18 0.8 126 0.76 STROKE
|
||||
local px2 0.95
|
||||
|
@ -1321,8 +1322,9 @@ glyph-block LetterUnified-Basic : begin
|
|||
local dpy2 : (1 - [linreg (1 - px1) (1 - py1) px2 py2 1]) / (1 - py2)
|
||||
local yrstrokel0 : MIDDLE - WIDTH * 0.1
|
||||
local yrstrokel : MIDDLE - WIDTH * 0.1 + (STROKE * HVCONTRAST * [if (useStraightBottom || useCurlyBottom) (2 / 3) (1 / 3)])
|
||||
local ySbCor : (XH / CAP) * (OX * [if SLAB 1 4])
|
||||
local yrstroker : RIGHTSB - [if straightBar ySbCor 0]
|
||||
local ySbCor : (XH / CAP) * (OX * [if slab 1 4])
|
||||
local sbScalar : if (straightBar && SLAB && !slab) 1.5 1
|
||||
local yrstroker : WIDTH - SB * sbScalar - [if straightBar ySbCor 0]
|
||||
local yshrink : [linreg 18 1 126 0.85 STROKE] * [if straightBar ([adviceBlackness 3.25] / STROKE) 1]
|
||||
local yBottomJut : JUT * 1.25
|
||||
local slabysize : JUT * 1.0625 * (WIDTH / UPM) + STROKE
|
||||
|
@ -1428,7 +1430,7 @@ glyph-block LetterUnified-Basic : begin
|
|||
yJoinKnots ds ds2 top bottom
|
||||
SmallYStrokeSplitMask top bottom false (-1)
|
||||
|
||||
if SLAB : begin
|
||||
if slab : begin
|
||||
include : AIVSerifs top
|
||||
|
||||
define [SmallYHookTopShape top bottom] : glyph-construction
|
||||
|
@ -1457,34 +1459,20 @@ glyph-block LetterUnified-Basic : begin
|
|||
yJoinKnots ds ds2 top bottom true
|
||||
SmallYStrokeSplitMask top bottom true (-1)
|
||||
|
||||
if SLAB : begin
|
||||
if slab : begin
|
||||
include : AIVSerifs top
|
||||
eject-contour 'serifRT'
|
||||
|
||||
define [SmallLambdaShape top bottom] : glyph-construction
|
||||
local ds : (top - bottom) * pds
|
||||
local ds2 : (top - bottom) * pds2
|
||||
local left yrstrokel0
|
||||
local right : yrstroker - HALFSTROKE * HVCONTRAST
|
||||
|
||||
include : dispiro
|
||||
widths.center
|
||||
flat right bottom [heading UPWARD]
|
||||
curl right (bottom + ds) [heading UPWARD]
|
||||
quadcontrols 0 dpy1 16
|
||||
flat [mix right left (1 - px1)] [mix (top - ds2) (bottom + ds) py1]
|
||||
curl [mix right left px2] [mix (top - ds2) (bottom + ds) (1 - py20)]
|
||||
quadcontrols 1 (1 - dpy20) 16
|
||||
flat left (top - ds2) [heading UPWARD]
|
||||
curl left top [heading UPWARD]
|
||||
|
||||
include : dispiro
|
||||
widths.center
|
||||
flat (WIDTH - right) bottom [heading UPWARD]
|
||||
curl (WIDTH - right) (bottom + ds) [heading UPWARD]
|
||||
quadcontrols 0 dpy1 16
|
||||
flat [mix (WIDTH - left) (WIDTH - right) px1] [mix (top - ds2) (bottom + ds) py1]
|
||||
curl MIDDLE [mix (top - ds2) (bottom + ds) [linreg (1 - px2) (1 - py20) px1 py1 ((MIDDLE - left) / (right - left))]]
|
||||
set currentGlyph.gizmo : Italify (-para.slantAngle)
|
||||
include : SmallYShape top bottom
|
||||
set currentGlyph.gizmo : Italify (+para.slantAngle)
|
||||
# apply-transform : Upright
|
||||
apply-transform : Translate 0 (-[mix bottom top 0.5])
|
||||
apply-transform : Scale 1 (-1)
|
||||
apply-transform : Translate 0 (+[mix bottom top 0.5])
|
||||
# apply-transform : Italify
|
||||
currentGlyph.reverse-all
|
||||
|
||||
return : object SmallYShape SmallYHookTopShape SmallLambdaShape
|
||||
|
||||
|
@ -1553,16 +1541,26 @@ glyph-block LetterUnified-Basic : begin
|
|||
turned 'turny.curly' nothing 'y.curly' MIDDLE (XH / 2) MarkSet.b
|
||||
select-variant 'turny' 0x28E (follow -- 'yhooktop')
|
||||
|
||||
sketch # lambda
|
||||
include MarkSet.b
|
||||
include : [GenSmallYShape false].SmallLambdaShape CAP 0
|
||||
set-anchor "overlay" BASE MIDDLE (XH / 2)
|
||||
save 'lambda' 0x3BB
|
||||
define [LambdaBarOverlayShape] : FlatSlashShape ([tp [Upright] [query-glyph 'l.serifed'].anchors.above].x / para.diversityI) [mix 0 CAP 0.7] (OVERLAYSTROKE / 2)
|
||||
|
||||
sketch # lambdaslash
|
||||
include [refer-glyph 'lambda'] AS_BASE
|
||||
include : FlatSlashShape ([tp [Upright] [query-glyph 'l.serifed'].anchors.above].x / para.diversityI) [mix 0 CAP 0.7] (OVERLAYSTROKE / 2)
|
||||
save 'lambdaslash' 0x19B
|
||||
sketch # lambda.straight
|
||||
include MarkSet.b
|
||||
include : [GenSmallYShape true true].SmallLambdaShape CAP 0
|
||||
set-anchor "overlay" BASE MIDDLE (XH / 2)
|
||||
save 'lambda.straight'
|
||||
include : LambdaBarOverlayShape
|
||||
save 'lambdaSlash.straight'
|
||||
|
||||
sketch # lambda.curly
|
||||
include MarkSet.b
|
||||
include : [GenSmallYShape false true].SmallLambdaShape CAP 0
|
||||
set-anchor "overlay" BASE MIDDLE (XH / 2)
|
||||
save 'lambda.curly'
|
||||
include : LambdaBarOverlayShape
|
||||
save 'lambdaSlash.curly'
|
||||
|
||||
select-variant 'lambda' 0x3BB
|
||||
select-variant 'lambdaSlash' 0x19B (follow -- 'lambda')
|
||||
|
||||
### K and k
|
||||
do "k and related ============================================================================"
|
||||
|
|
Before Width: | Height: | Size: 174 KiB After Width: | Height: | Size: 179 KiB |
Before Width: | Height: | Size: 398 KiB After Width: | Height: | Size: 399 KiB |
Before Width: | Height: | Size: 337 KiB After Width: | Height: | Size: 337 KiB |
Before Width: | Height: | Size: 174 KiB After Width: | Height: | Size: 174 KiB |
Before Width: | Height: | Size: 337 KiB After Width: | Height: | Size: 337 KiB |
Before Width: | Height: | Size: 957 KiB After Width: | Height: | Size: 957 KiB |
Before Width: | Height: | Size: 318 KiB After Width: | Height: | Size: 318 KiB |
|
@ -436,6 +436,30 @@
|
|||
<span class="sample italic" style="font-feature-settings:'cv65'">7</span>
|
||||
</li>
|
||||
</ol></li>
|
||||
<li><ol class="group">
|
||||
<li>
|
||||
<span class="tag">cv34</span>
|
||||
<span class="sample" style="font-feature-settings:'cv34'">ß</span>
|
||||
<span class="sample italic" style="font-feature-settings:'cv34'">ß</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="tag">cv35</span>
|
||||
<span class="sample" style="font-feature-settings:'cv35'">ß</span>
|
||||
<span class="sample italic" style="font-feature-settings:'cv35'">ß</span>
|
||||
</li>
|
||||
</ol></li>
|
||||
<li><ol class="group">
|
||||
<li>
|
||||
<span class="tag">cv94</span>
|
||||
<span class="sample" style="font-feature-settings:'cv94'">λ</span>
|
||||
<span class="sample italic" style="font-feature-settings:'cv94'">λ</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="tag">cv95</span>
|
||||
<span class="sample" style="font-feature-settings:'cv95'">λ</span>
|
||||
<span class="sample italic" style="font-feature-settings:'cv95'">λ</span>
|
||||
</li>
|
||||
</ol></li>
|
||||
<li><ol class="group">
|
||||
<li>
|
||||
<span class="tag">cv16</span>
|
||||
|
@ -593,18 +617,6 @@
|
|||
<span class="sample" style="font-feature-settings:'cv67'">>=</span>
|
||||
</li>
|
||||
</ol></li>
|
||||
<li><ol class="group">
|
||||
<li>
|
||||
<span class="tag">cv34</span>
|
||||
<span class="sample" style="font-feature-settings:'cv34'">ß</span>
|
||||
<span class="sample italic" style="font-feature-settings:'cv34'">ß</span>
|
||||
</li>
|
||||
<li>
|
||||
<span class="tag">cv35</span>
|
||||
<span class="sample" style="font-feature-settings:'cv35'">ß</span>
|
||||
<span class="sample italic" style="font-feature-settings:'cv35'">ß</span>
|
||||
</li>
|
||||
</ol></li>
|
||||
</ol>
|
||||
</section>
|
||||
<section id="stylesets" class="opentype">
|
||||
|
|
|
@ -89,6 +89,11 @@ export all : class Glyph
|
|||
return this
|
||||
public reverseLast : public reverse-last
|
||||
|
||||
public [reverse-all] : begin
|
||||
if this.contours : set this.contours : this.contours.map : lambda [c] : c.reverse
|
||||
return this
|
||||
public reverseAll : public reverse-all
|
||||
|
||||
public [tag-contour tag n] : begin
|
||||
if this.contours : begin
|
||||
local lastContour this.contours.(this.contours.length - 1)
|
||||
|
|
|
@ -339,6 +339,30 @@ description = 'Cursive-like `y`'
|
|||
y = "cursive"
|
||||
yhooktop = "straight"
|
||||
|
||||
[simple.v-eszet-traditional]
|
||||
tag = 'cv34'
|
||||
sampler = 'ß'
|
||||
description = 'Traditional, Fraktur-like Eszet'
|
||||
eszet = 'traditional'
|
||||
|
||||
[simple.v-eszet-sulzbacher]
|
||||
tag = 'cv35'
|
||||
sampler = 'ß'
|
||||
description = 'A more modern, beta-like Eszet'
|
||||
eszet = 'sulzbacher'
|
||||
|
||||
[simple.v-lambda-straight]
|
||||
tag = "cv94"
|
||||
sampler = 'λ'
|
||||
description = 'More-straight letter `λ`'
|
||||
lambda = "straight"
|
||||
|
||||
[simple.v-lambda-curly]
|
||||
tag = "cv95"
|
||||
sampler = 'λ'
|
||||
description = 'More curly letter `λ`, like Iosevka 2.x'
|
||||
lambda = "curly"
|
||||
|
||||
[simple.v-zero-slashed]
|
||||
tag = 'cv13'
|
||||
sampler = '0'
|
||||
|
@ -567,18 +591,6 @@ description = 'The lower bar of `<=` and `>=` ligation is slanted'
|
|||
"eq.at-lteq.lig2" = "slanted"
|
||||
"eq.at-gteq.lig2" = "slanted"
|
||||
|
||||
[simple.v-eszet-traditional]
|
||||
tag = 'cv34'
|
||||
sampler = 'ß'
|
||||
description = 'Traditional, Fraktur-like Eszet'
|
||||
eszet = 'traditional'
|
||||
|
||||
[simple.v-eszet-sulzbacher]
|
||||
tag = 'cv35'
|
||||
sampler = 'ß'
|
||||
description = 'A more modern, beta-like Eszet'
|
||||
eszet = 'sulzbacher'
|
||||
|
||||
########## "Untagged" variants, used for Aile, etc.
|
||||
|
||||
[simple.v-capital-i-straight]
|
||||
|
@ -641,7 +653,8 @@ design = [
|
|||
'v-capital-y-straight',
|
||||
'v-capital-r-straight',
|
||||
'v-u-with-bar',
|
||||
'v-capital-g-tooth'
|
||||
'v-capital-g-tooth',
|
||||
'v-lambda-straight'
|
||||
]
|
||||
upright = [
|
||||
'v-a-doublestorey',
|
||||
|
@ -700,9 +713,9 @@ design = ['v-at-fourfold', 'v-a-singlestorey', 'v-i-zshaped', 'v-l-zshaped', 'v-
|
|||
|
||||
[composite.ss08]
|
||||
description = 'Pragmata Pro Style'
|
||||
design = ['v-at-threefold', 'v-a-doublestorey', 'v-l-serifed', 'v-i-serifed', 'v-asterisk-low', 'v-zero-dotted', 'v-brace-straight', 'v-dollar-open', 'v-underscore-low', 'v-numbersign-slanted', 'v-percent-dots', 'v-v-curly', 'v-turn-v-curly', 'v-w-curly', 'v-x-curly', 'v-capital-y-curly', 'v-capital-r-curly']
|
||||
upright = ['v-k-curly', 'v-y-curly', 'v-g-doublestorey']
|
||||
italic = ['v-k-curly', 'v-y-curly', 'v-g-singlestorey']
|
||||
design = ['v-at-threefold', 'v-a-doublestorey', 'v-l-serifed', 'v-i-serifed', 'v-asterisk-low', 'v-zero-dotted', 'v-brace-straight', 'v-dollar-open', 'v-underscore-low', 'v-numbersign-slanted', 'v-percent-dots', 'v-v-curly', 'v-turn-v-curly', 'v-w-curly', 'v-x-curly', 'v-capital-y-curly', 'v-capital-r-curly', 'v-k-curly', 'v-y-curly', 'v-lambda-curly']
|
||||
upright = ['v-g-doublestorey']
|
||||
italic = ['v-g-singlestorey']
|
||||
|
||||
[composite.ss09]
|
||||
description = 'Source Code Pro Style'
|
||||
|
@ -732,6 +745,6 @@ design = ['v-i-serifed', 'v-l-italic', 'v-u-without-bar', 'v-zero-dotted', 'v-th
|
|||
|
||||
[composite.ss20]
|
||||
description = 'Curly Style'
|
||||
design = ['v-v-curly', 'v-turn-v-curly', 'v-w-curly', 'v-x-curly', 'v-capital-y-curly', 'v-capital-r-curly']
|
||||
design = ['v-v-curly', 'v-turn-v-curly', 'v-w-curly', 'v-x-curly', 'v-capital-y-curly', 'v-capital-r-curly', 'v-lambda-curly']
|
||||
upright = ['v-k-curly', 'v-y-curly']
|
||||
italic = ['v-k-cursive', 'v-y-cursive']
|
||||
|
|