Skip to content

Commit d176efd

Browse files
Add cursive variant for Greek Lower Theta. (be5invis#2702)
* Add `cursive` variants for Greek Lower Theta. * Cleanup. --------- Co-authored-by: Belleve <[email protected]>
1 parent 627a219 commit d176efd

File tree

4 files changed

+43
-29
lines changed

4 files changed

+43
-29
lines changed

changes/33.1.0.md

+1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
* Add full-serifed variants for `K` and `k`, and related letters (#2696).
2+
* Add cursive variant for Greek Lower Theta (`θ`).
23
* Add IPA localization form for Latin Lower G with Stroke (`ǥ`).

packages/font-glyphs/src/letter/greek/lower-theta.ptl

+5-7
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,7 @@ glyph-block Letter-Greek-Lower-Theta : begin
3232
ShapeBase.Mask Ascender
3333
HBar.m SB RightSB (0.5 * Ascender)
3434

35-
select-variant 'grek/theta' 0x3B8
36-
37-
glyph-block Letter-Greek-Lower-Theta-Var : begin
38-
glyph-block-import CommonShapes
39-
glyph-block-import Common-Derivatives
40-
41-
create-glyph 'grek/thetaSymbol' 0x03D1 : glyph-proc
35+
create-glyph 'grek/theta.cursive' : glyph-proc
4236
include : MarkSet.b
4337

4438
define pXTopLeft 0.2
@@ -59,3 +53,7 @@ glyph-block Letter-Greek-Lower-Theta-Var : begin
5953
g4 [mix xTopLeft RightSB 0.5] [mix (Ascender - topSMA) (Ascender / 2 - HalfStroke) 0.9]
6054
g4 [mix RightSB Width 0.5] (Ascender / 2 - HalfStroke)
6155
g4 coXTopLeft (Ascender - topSMA)
56+
57+
select-variant 'grek/theta' 0x3B8
58+
select-variant 'grek/theta/nonCursive' (shapeFrom -- 'grek/theta')
59+
alias 'grek/thetaSymbol' 0x03D1 'grek/theta.cursive'

packages/font-glyphs/src/letter/greek/orthography.ptl

+4-3
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ glyph-block Letter-Greek-Orthography : begin
99

1010
# Link localization forms
1111

12-
link-gr LocalizedForm.IPPH 'gBar' 'gScriptBar'
13-
link-gr LocalizedForm.IPPH 'grek/beta' 'latn/beta'
14-
link-gr LocalizedForm.IPPH 'grek/chi' 'latn/chi'
12+
link-gr LocalizedForm.IPPH 'gBar' 'gScriptBar'
13+
link-gr LocalizedForm.IPPH 'grek/beta' 'latn/beta'
14+
link-gr LocalizedForm.IPPH 'grek/theta' 'grek/theta/nonCursive'
15+
link-gr LocalizedForm.IPPH 'grek/chi' 'latn/chi'

params/variants.toml

+33-19
Original file line numberDiff line numberDiff line change
@@ -2154,28 +2154,28 @@ rank = 1
21542154
next = "double-storey-hook"
21552155
descriptionAffix = "double-storey body"
21562156
selectorAffix.a = "doubleStorey"
2157-
selectorAffix."ae/a" = "doubleStorey"
21582157
selectorAffix."a/sansSerif" = "doubleStorey"
21592158
selectorAffix."aRetroflexHook" = "doubleStorey"
21602159
selectorAffix."a/doubleStorey" = "doubleStorey"
21612160
selectorAffix."a/singleStorey/autoSerifed/slab" = "singleStorey"
21622161
selectorAffix."a/singleStorey/autoSerifed/sans" = "singleStorey"
21632162
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/slab" = "singleStorey"
21642163
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/sans" = "singleStorey"
2164+
selectorAffix."ae/a" = "doubleStorey"
21652165

21662166
[prime.a.variants-buildup.stages.storey.single-storey]
21672167
rank = 2
21682168
next = "ear"
21692169
descriptionAffix = "single-storey body"
21702170
selectorAffix.a = "singleStorey"
2171-
selectorAffix."ae/a" = "doubleStorey"
21722171
selectorAffix."a/sansSerif" = "singleStorey"
21732172
selectorAffix."aRetroflexHook" = "singleStorey"
21742173
selectorAffix."a/doubleStorey" = "doubleStorey"
21752174
selectorAffix."a/singleStorey/autoSerifed/slab" = "singleStorey"
21762175
selectorAffix."a/singleStorey/autoSerifed/sans" = "singleStorey"
21772176
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/slab" = "singleStorey"
21782177
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/sans" = "singleStorey"
2178+
selectorAffix."ae/a" = "doubleStorey"
21792179

21802180
[prime.a.variants-buildup.stages.double-storey-hook."*"]
21812181
next = "bar"
@@ -2185,28 +2185,28 @@ rank = 1
21852185
keyAffix = ""
21862186
descriptionAffix = "serifless hook"
21872187
selectorAffix.a = ""
2188-
selectorAffix."ae/a" = ""
21892188
selectorAffix."a/sansSerif" = ""
21902189
selectorAffix."aRetroflexHook" = ""
21912190
selectorAffix."a/doubleStorey" = ""
21922191
selectorAffix."a/singleStorey/autoSerifed/slab" = ""
21932192
selectorAffix."a/singleStorey/autoSerifed/sans" = ""
21942193
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/slab" = ""
21952194
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/sans" = ""
2195+
selectorAffix."ae/a" = ""
21962196

21972197
[prime.a.variants-buildup.stages.double-storey-hook.hook-serifed]
21982198
rank = 2
21992199
keyAffix = "hook-inward-serifed"
22002200
descriptionAffix = "serifed hook"
22012201
selectorAffix.a = "hookInwardSerifed"
2202-
selectorAffix."ae/a" = "hookInwardSerifed"
22032202
selectorAffix."a/sansSerif" = ""
22042203
selectorAffix."aRetroflexHook" = "hookInwardSerifed"
22052204
selectorAffix."a/doubleStorey" = "hookInwardSerifed"
22062205
selectorAffix."a/singleStorey/autoSerifed/slab" = ""
22072206
selectorAffix."a/singleStorey/autoSerifed/sans" = ""
22082207
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/slab" = ""
22092208
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/sans" = ""
2209+
selectorAffix."ae/a" = "hookInwardSerifed"
22102210

22112211
[prime.a.variants-buildup.stages.ear."*"]
22122212
next = "bar"
@@ -2215,149 +2215,149 @@ next = "bar"
22152215
rank = 1
22162216
keyAffix = ""
22172217
selectorAffix.a = ""
2218-
selectorAffix."ae/a" = ""
22192218
selectorAffix."a/sansSerif" = ""
22202219
selectorAffix."aRetroflexHook" = ""
22212220
selectorAffix."a/doubleStorey" = ""
22222221
selectorAffix."a/singleStorey/autoSerifed/slab" = ""
22232222
selectorAffix."a/singleStorey/autoSerifed/sans" = ""
22242223
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/slab" = ""
22252224
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/sans" = ""
2225+
selectorAffix."ae/a" = ""
22262226

22272227
[prime.a.variants-buildup.stages.ear.top-cut]
22282228
rank = 2
22292229
descriptionAffix = "a diagonal cut at top"
22302230
selectorAffix.a = "topCut"
2231-
selectorAffix."ae/a" = ""
22322231
selectorAffix."a/sansSerif" = "topCut"
22332232
selectorAffix."aRetroflexHook" = "topCut"
22342233
selectorAffix."a/doubleStorey" = ""
22352234
selectorAffix."a/singleStorey/autoSerifed/slab" = "topCut"
22362235
selectorAffix."a/singleStorey/autoSerifed/sans" = "topCut"
22372236
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/slab" = "topCut"
22382237
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/sans" = "topCut"
2238+
selectorAffix."ae/a" = ""
22392239

22402240
[prime.a.variants-buildup.stages.ear.earless-corner]
22412241
rank = 3
22422242
descriptionAffix = "earless (cornered top-right)"
22432243
selectorAffix.a = "earlessCorner"
2244-
selectorAffix."ae/a" = ""
22452244
selectorAffix."a/sansSerif" = "earlessCorner"
22462245
selectorAffix."aRetroflexHook" = "earlessCorner"
22472246
selectorAffix."a/doubleStorey" = ""
22482247
selectorAffix."a/singleStorey/autoSerifed/slab" = "earlessCorner"
22492248
selectorAffix."a/singleStorey/autoSerifed/sans" = "earlessCorner"
22502249
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/slab" = "earlessCorner"
22512250
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/sans" = "earlessCorner"
2251+
selectorAffix."ae/a" = ""
22522252

22532253
[prime.a.variants-buildup.stages.ear.earless-rounded]
22542254
rank = 4
22552255
descriptionAffix = "earless (rounded top-right)"
22562256
selectorAffix.a = "earlessRounded"
2257-
selectorAffix."ae/a" = ""
22582257
selectorAffix."a/sansSerif" = "earlessRounded"
22592258
selectorAffix."aRetroflexHook" = "earlessRounded"
22602259
selectorAffix."a/doubleStorey" = ""
22612260
selectorAffix."a/singleStorey/autoSerifed/slab" = "earlessRounded"
22622261
selectorAffix."a/singleStorey/autoSerifed/sans" = "earlessRounded"
22632262
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/slab" = "earlessRounded"
22642263
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/sans" = "earlessRounded"
2264+
selectorAffix."ae/a" = ""
22652265

22662266
[prime.a.variants-buildup.stages.bar.serifless]
22672267
rank = 1
22682268
descriptionAffix = "serif at terminal"
22692269
descriptionJoiner = "without"
22702270
selectorAffix.a = "serifless"
2271-
selectorAffix."ae/a" = "serifless"
22722271
selectorAffix."a/sansSerif" = "serifless"
22732272
selectorAffix."aRetroflexHook" = "serifless"
22742273
selectorAffix."a/doubleStorey" = "serifless"
22752274
selectorAffix."a/singleStorey/autoSerifed/slab" = "serifless"
22762275
selectorAffix."a/singleStorey/autoSerifed/sans" = "serifless"
22772276
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/slab" = "serifless"
22782277
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/sans" = "serifless"
2278+
selectorAffix."ae/a" = "serifless"
22792279

22802280
[prime.a.variants-buildup.stages.bar.serifed]
22812281
rank = 2
22822282
descriptionAffix = "serif at terminal"
22832283
selectorAffix.a = "serifed"
2284-
selectorAffix."ae/a" = "serifless"
22852284
selectorAffix."a/sansSerif" = "serifless"
22862285
selectorAffix."aRetroflexHook" = "serifless"
22872286
selectorAffix."a/doubleStorey" = "serifed"
22882287
selectorAffix."a/singleStorey/autoSerifed/slab" = { if = [{ storey = "double-storey" }], then = "doubleSerifed", else = "serifed" }
22892288
selectorAffix."a/singleStorey/autoSerifed/sans" = "serifed"
22902289
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/slab" = { if = [{ storey = "double-storey" }], then = "topSerifed", else = "serifless" }
22912290
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/sans" = "serifless"
2291+
selectorAffix."ae/a" = "serifless"
22922292

22932293
[prime.a.variants-buildup.stages.bar.double-serifed]
22942294
rank = 3
22952295
disableIf = [{ storey = "double-storey" }, { ear = "NOT eared" }]
22962296
descriptionAffix = "serifs at top and bottom"
22972297
selectorAffix.a = "doubleSerifed"
2298-
selectorAffix."ae/a" = "serifless"
22992298
selectorAffix."a/sansSerif" = "serifless"
23002299
selectorAffix."aRetroflexHook" = "topSerifed"
23012300
selectorAffix."a/doubleStorey" = "serifed"
23022301
selectorAffix."a/singleStorey/autoSerifed/slab" = "doubleSerifed"
23032302
selectorAffix."a/singleStorey/autoSerifed/sans" = "doubleSerifed"
23042303
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/slab" = "topSerifed"
23052304
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/sans" = "topSerifed"
2305+
selectorAffix."ae/a" = "serifless"
23062306

23072307
[prime.a.variants-buildup.stages.bar.tailed]
23082308
rank = 4
23092309
descriptionAffix = "curly tail"
23102310
selectorAffix.a = "tailed"
2311-
selectorAffix."ae/a" = "serifless"
23122311
selectorAffix."a/sansSerif" = "tailed"
23132312
selectorAffix."aRetroflexHook" = "serifless"
23142313
selectorAffix."a/doubleStorey" = "tailed"
23152314
selectorAffix."a/singleStorey/autoSerifed/slab" = { if = [{ storey = "double-storey" }], then = "tailedSerifed", else = "tailed" }
23162315
selectorAffix."a/singleStorey/autoSerifed/sans" = "tailed"
23172316
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/slab" = { if = [{ storey = "double-storey" }], then = "topSerifed", else = "serifless" }
23182317
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/sans" = "serifless"
2318+
selectorAffix."ae/a" = "serifless"
23192319

23202320
[prime.a.variants-buildup.stages.bar.tailed-serifed]
23212321
rank = 5
23222322
disableIf = [{ storey = "double-storey" }, { ear = "NOT eared" }]
23232323
descriptionAffix = "curly tail; with serifs at top and bottom"
23242324
selectorAffix.a = "tailedSerifed"
2325-
selectorAffix."ae/a" = "serifless"
23262325
selectorAffix."a/sansSerif" = "tailed"
23272326
selectorAffix."aRetroflexHook" = "topSerifed"
23282327
selectorAffix."a/doubleStorey" = "tailed"
23292328
selectorAffix."a/singleStorey/autoSerifed/slab" = "tailedSerifed"
23302329
selectorAffix."a/singleStorey/autoSerifed/sans" = "tailedSerifed"
23312330
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/slab" = "topSerifed"
23322331
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/sans" = "topSerifed"
2332+
selectorAffix."ae/a" = "serifless"
23332333

23342334
[prime.a.variants-buildup.stages.bar.toothless-corner]
23352335
rank = 6
23362336
disableIf = [{ storey = "single-storey" }]
23372337
descriptionAffix = "toothless (cornered bottom-right)"
23382338
selectorAffix.a = "toothlessCorner"
2339-
selectorAffix."ae/a" = "serifless"
23402339
selectorAffix."a/sansSerif" = "toothlessCorner"
23412340
selectorAffix."aRetroflexHook" = "serifless"
23422341
selectorAffix."a/doubleStorey" = "toothlessCorner"
23432342
selectorAffix."a/singleStorey/autoSerifed/slab" = "doubleSerifed"
23442343
selectorAffix."a/singleStorey/autoSerifed/sans" = "serifless"
23452344
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/slab" = "topSerifed"
23462345
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/sans" = "serifless"
2346+
selectorAffix."ae/a" = "serifless"
23472347

23482348
[prime.a.variants-buildup.stages.bar.toothless-rounded]
23492349
rank = 7
23502350
disableIf = [{ storey = "single-storey" }]
23512351
descriptionAffix = "toothless (rounded bottom-right)"
23522352
selectorAffix.a = "toothlessRounded"
2353-
selectorAffix."ae/a" = "serifless"
23542353
selectorAffix."a/sansSerif" = "toothlessRounded"
23552354
selectorAffix."aRetroflexHook" = "serifless"
23562355
selectorAffix."a/doubleStorey" = "toothlessRounded"
23572356
selectorAffix."a/singleStorey/autoSerifed/slab" = "doubleSerifed"
23582357
selectorAffix."a/singleStorey/autoSerifed/sans" = "serifless"
23592358
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/slab" = "topSerifed"
23602359
selectorAffix."aRetroflexHook/singleStorey/autoSerifed/sans" = "serifless"
2360+
selectorAffix."ae/a" = "serifless"
23612361

23622362

23632363

@@ -5785,16 +5785,25 @@ tagKind = "letter"
57855785
rank = 1
57865786
description = "Greek lower Theta (`θ`) with a capsule (O-like) body shape"
57875787
selector."grek/theta" = "capsule"
5788+
selector."grek/theta/nonCursive" = "capsule"
57885789

57895790
[prime.lower-theta.variants.oval]
57905791
rank = 2
57915792
description = "Greek lower Theta (`θ`) with a standard (oval) body shape"
57925793
selector."grek/theta" = "oval"
5794+
selector."grek/theta/nonCursive" = "oval"
57935795

57945796
[prime.lower-theta.variants.diamond]
57955797
rank = 3
57965798
description = "Greek lower Theta (`θ`) with a diamond body shape"
57975799
selector."grek/theta" = "diamond"
5800+
selector."grek/theta/nonCursive" = "diamond"
5801+
5802+
[prime.lower-theta.variants.cursive]
5803+
rank = 4
5804+
description = "Greek lower Theta (`θ`) with a cursive body shape"
5805+
selector."grek/theta" = "cursive"
5806+
selector."grek/theta/nonCursive" = "oval"
57985807

57995808

58005809

@@ -6350,12 +6359,12 @@ tagKind = "letter"
63506359

63516360
[prime.partial-derivative.variants.straight-bar]
63526361
rank = 1
6353-
description = "Partial derivative symbol (`∂`) with a straight upper bar"
6362+
description = "Partial derivative symbol (`∂`) with a straight bar"
63546363
selector."partial" = "straight-bar"
63556364

63566365
[prime.partial-derivative.variants.curly-bar]
63576366
rank = 2
6358-
description = "Partial derivative symbol (`∂`) with a curly upper bar"
6367+
description = "Partial derivative symbol (`∂`) with a curly bar"
63596368
selector."partial" = "curly-bar"
63606369

63616370
[prime.partial-derivative.variants.closed-contour]
@@ -9366,11 +9375,12 @@ y = "straight-turn-serifless"
93669375
capital-eszet = "rounded-serifless"
93679376
long-s = "flat-hook-serifless"
93689377
eszet = "longs-s-lig-serifless"
9369-
lower-beta = "standard"
9370-
lower-chi = "semi-chancery-straight-serifless"
93719378
lower-eth = "straight-bar"
9379+
lower-beta = "standard"
9380+
lower-theta = "oval"
93729381
lower-lambda = "tailed-turn"
93739382
lower-phi = "straight"
9383+
lower-chi = "semi-chancery-straight-serifless"
93749384
partial-derivative = "closed-contour"
93759385
cyrl-a = "double-storey-serifless"
93769386
cyrl-ve = "standard-serifless"
@@ -9411,6 +9421,7 @@ l = "tailed"
94119421
long-s = "flat-hook-descending"
94129422
eszet = "longs-s-lig-descending-serifless"
94139423
lower-beta = "cursive"
9424+
lower-theta = "cursive"
94149425
lower-phi = "cursive"
94159426
cyrl-a = "single-storey-top-cut-serifless"
94169427
cyrl-ve = "cursive-tall"
@@ -10668,6 +10679,7 @@ capital-eszet = "corner-serifless"
1066810679
long-s = "flat-hook-double-serifed-xh"
1066910680
eszet = "traditional-flat-hook-serifless"
1067010681
lower-delta = "flat-top"
10682+
lower-theta = "oval"
1067110683
lower-iota = "serifed-flat-tailed"
1067210684
lower-lambda = "tailed-turn"
1067310685
lower-tau = "flat-tailed"
@@ -10719,6 +10731,7 @@ x = "cursive"
1071910731
y = "cursive-serifless"
1072010732
z = "cursive"
1072110733
long-s = "flat-hook-diagonal-tailed-middle-serifed-xh"
10734+
lower-theta = "cursive"
1072210735
lower-iota = "serifed-diagonal-tailed"
1072310736
lower-tau = "diagonal-tailed"
1072410737
cyrl-a = "single-storey-tailed"
@@ -10930,6 +10943,7 @@ long-s = "bent-hook-serifless"
1093010943
eszet = "longs-s-lig-serifless"
1093110944
lower-eth = "straight-bar"
1093210945
capital-thorn = "motion-serifed"
10946+
lower-theta = "capsule"
1093310947
lower-iota = "serifed-flat-tailed"
1093410948
lower-lambda = "tailed-turn"
1093510949
lower-tau = "flat-tailed"

0 commit comments

Comments
 (0)