* Improve T's metrics for Etoile (#1449).
* Fix custom build of ligations when `ineq` is disabled but `ltgt-diamond-tag` or `ltgt-slash-tag` are enabled (#1450).
This commit is contained in:
parent
7fd0cb1a44
commit
153cf38e85
3 changed files with 102 additions and 91 deletions
2
changes/16.5.0.md
Normal file
2
changes/16.5.0.md
Normal file
|
@ -0,0 +1,2 @@
|
|||
* Improve T's metrics for Etoile (#1449).
|
||||
* Fix custom build of ligations when `ineq` is disabled but `ltgt-diamond-tag` or `ltgt-slash-tag` are enabled (#1450).
|
|
@ -12,58 +12,69 @@ glyph-block Letter-Latin-Upper-T : begin
|
|||
glyph-block-import Letter-Latin-Lower-M
|
||||
glyph-block-import Letter-Shared-Shapes : CyrDescender
|
||||
|
||||
define TLeftX : SB + OX * 1.5
|
||||
define TRightX : RightSB - OX * 1.5
|
||||
define [TShape top doTopSerifs doBottomSerifs] : glyph-proc
|
||||
include : VBar Middle 0 top
|
||||
local l TLeftX
|
||||
local r TRightX
|
||||
include : tagged 'strokeLT' : HBarTop l Middle top
|
||||
include : tagged 'strokeRT' : HBarTop Middle r top
|
||||
define [TLeftX df] : df.leftSB + OX * 1.5
|
||||
define [TRightX df] : df.rightSB - OX * 1.5
|
||||
define [TShape df top doTopSerifs doBottomSerifs] : glyph-proc
|
||||
include : VBar df.middle 0 top
|
||||
local l : TLeftX df
|
||||
local r : TRightX df
|
||||
include : tagged 'strokeLT' : HBarTop l df.middle top
|
||||
include : tagged 'strokeRT' : HBarTop df.middle r top
|
||||
|
||||
if doTopSerifs : begin
|
||||
include : tagged 'serifRT' : DownwardRightSerif r top VJut
|
||||
include : tagged 'serifLT' : DownwardLeftSerif l top VJut
|
||||
if doBottomSerifs : begin
|
||||
include : tagged 'serifMB' : RightwardBottomSerif Middle 0 MidJutCenter
|
||||
include : tagged 'serifMB' : LeftwardBottomSerif Middle 0 MidJutCenter
|
||||
include : tagged 'serifMB' : RightwardBottomSerif df.middle 0 MidJutCenter
|
||||
include : tagged 'serifMB' : LeftwardBottomSerif df.middle 0 MidJutCenter
|
||||
|
||||
define TConfig : object
|
||||
serifless { false false }
|
||||
motionSerifed { true false }
|
||||
serifed { true true }
|
||||
serifless { 1 false false }
|
||||
motionSerifed { [mix 1 para.diversityM 0.5] true false }
|
||||
serifed { [mix 1 para.diversityM 0.5] true true }
|
||||
|
||||
foreach { suffix { div doST doSB } } [Object.entries TConfig] : do
|
||||
local df : DivFrame div
|
||||
|
||||
foreach { suffix { doST doSB } } [Object.entries TConfig] : do
|
||||
create-glyph "T.\(suffix)" : glyph-proc
|
||||
include : MarkSet.capital
|
||||
set-base-anchor 'bottomright' (Middle + HalfStroke * HVContrast) 0
|
||||
include : TShape CAP doST doSB
|
||||
set-width df.width
|
||||
include : df.markSet.capital
|
||||
set-base-anchor 'bottomright' (df.middle + HalfStroke * HVContrast) 0
|
||||
include : TShape df CAP doST doSB
|
||||
|
||||
create-glyph "cyrl/TeDescender.\(suffix)" : glyph-proc
|
||||
include : MarkSet.if
|
||||
set-base-anchor 'bottomright' (Middle + HalfStroke * HVContrast) 0
|
||||
include : TShape CAP doST doSB
|
||||
include : CyrDescender (Middle + HalfStroke * HVContrast) (overflow -- [if doSB (MidJutCenter - HalfStroke * HVContrast)])
|
||||
set-width df.width
|
||||
include : df.markSet.if
|
||||
set-base-anchor 'bottomright' (df.middle + HalfStroke * HVContrast) 0
|
||||
include : TShape df CAP doST doSB
|
||||
include : CyrDescender (df.middle + HalfStroke * HVContrast) (overflow -- [if doSB (MidJutCenter - HalfStroke * HVContrast)])
|
||||
|
||||
create-glyph "TBar.\(suffix)" : glyph-proc
|
||||
include [refer-glyph "T.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
include : HOverlayBar [mix Middle SB 0.8] [mix Middle RightSB 0.8] [mix 0 CAP 0.45]
|
||||
include : HOverlayBar
|
||||
mix df.middle df.leftSB 0.8
|
||||
mix df.middle df.rightSB 0.8
|
||||
mix 0 CAP 0.45
|
||||
|
||||
create-glyph "Thookleft.\(suffix)" : glyph-proc
|
||||
include [refer-glyph "T.\(suffix)"] AS_BASE ALSO_METRICS
|
||||
eject-contour 'serifLT'
|
||||
eject-contour 'strokeLT'
|
||||
include : LeftHook (SB + LeftHook.extension) CAP Middle
|
||||
include : LeftHook (df.leftSB + LeftHook.extension) CAP df.middle
|
||||
|
||||
create-glyph "smcpT.\(suffix)" : glyph-proc
|
||||
include : MarkSet.e
|
||||
set-base-anchor 'bottomright' (Middle + HalfStroke * HVContrast) 0
|
||||
include : TShape XH doST doSB
|
||||
set-width df.width
|
||||
include : df.markSet.e
|
||||
set-base-anchor 'bottomright' (df.middle + HalfStroke * HVContrast) 0
|
||||
include : TShape df XH doST doSB
|
||||
|
||||
create-glyph "cyrl/teDescender.upright.\(suffix)" : glyph-proc
|
||||
include : MarkSet.p
|
||||
include : TShape XH doST doSB
|
||||
include : CyrDescender (Middle + HalfStroke * HVContrast) (overflow -- [if doSB (MidJutCenter - HalfStroke * HVContrast)])
|
||||
set-width df.width
|
||||
include : df.markSet.p
|
||||
include : TShape df XH doST doSB
|
||||
include : CyrDescender (df.middle + HalfStroke * HVContrast) (overflow -- [if doSB (MidJutCenter - HalfStroke * HVContrast)])
|
||||
|
||||
turned "turnT.\(suffix)" nothing "T.\(suffix)" df.middle (CAP / 2)
|
||||
|
||||
select-variant 'T' 'T'
|
||||
link-reduced-variant 'T/sansSerif' 'T' MathSansSerif
|
||||
|
@ -72,11 +83,11 @@ glyph-block Letter-Latin-Upper-T : begin
|
|||
select-variant "TBar" 0x166 (follow -- 'T')
|
||||
select-variant "Thookleft" 0x1AC (follow -- 'T')
|
||||
select-variant "cyrl/TeDescender" 0x4AC (follow -- 'T')
|
||||
select-variant 'turnT' 0xA7B1 (follow -- 'T')
|
||||
|
||||
alias 'grek/Tau' 0x3A4 'T'
|
||||
alias-reduced-variant 'grek/Tau/sansSerif' 'grek/Tau' 'T/sansSerif' MathSansSerif
|
||||
alias 'cyrl/Te' 0x422 'T'
|
||||
turned 'turnT' 0xA7B1 'T' Middle (CAP / 2)
|
||||
|
||||
alias 'cyrl/te.upright' null 'smcpT'
|
||||
select-variant 'cyrl/teDescender.upright' (follow -- 'T')
|
||||
|
@ -84,8 +95,9 @@ glyph-block Letter-Latin-Upper-T : begin
|
|||
derive-composites 'TRtailBR' 0x1AE 'T/rtailBase' 'rtailBR'
|
||||
|
||||
create-glyph 'mathbb/T' 0x1D54B : glyph-proc
|
||||
include : MarkSet.capital
|
||||
include : HBarTop TLeftX TRightX CAP BBS
|
||||
include : VBar (Middle - BBD / 2) 0 CAP BBS
|
||||
include : VBar (Middle + BBD / 2) 0 CAP BBS
|
||||
include : HBarBottom (Middle - BBD / 2) (Middle + BBD / 2) 0 BBS
|
||||
local df : DivFrame 1
|
||||
include : df.markSet.capital
|
||||
include : HBarTop [TLeftX df] [TRightX df] CAP BBS
|
||||
include : VBar (df.middle - BBD / 2) 0 CAP BBS
|
||||
include : VBar (df.middle + BBD / 2) 0 CAP BBS
|
||||
include : HBarBottom (df.middle - BBD / 2) (df.middle + BBD / 2) 0 BBS
|
||||
|
|
|
@ -838,65 +838,62 @@ define [buildLigationsImpl sink para featureName mappedFeature rankedLookups] :
|
|||
equal ~> {'equal.cf'}
|
||||
|
||||
# <= and >=
|
||||
do "inequals" : if [hasLG 'ineq'] : begin
|
||||
CreateLigationLookup : list
|
||||
# Disable regular expression lookaheads
|
||||
chain-rule
|
||||
{'parenLeft'} ~> look-around
|
||||
{'question'} ~> look-around
|
||||
regexLookAround ~> advance
|
||||
regexLookAround ~> advance
|
||||
regexLookAround ~> advance
|
||||
regexLookAround ~> advance
|
||||
chain-rule
|
||||
{'parenLeft'} ~> look-around
|
||||
{'question'} ~> look-around
|
||||
regexLookAround ~> advance
|
||||
regexLookAround ~> advance
|
||||
regexLookAround ~> advance
|
||||
chain-rule
|
||||
{'parenLeft'} ~> look-around
|
||||
{'question'} ~> look-around
|
||||
regexLookAround ~> advance
|
||||
regexLookAround ~> advance
|
||||
do "inequals" : CreateLigationLookup : list
|
||||
# Disable regular expression lookaheads
|
||||
if [hasLG 'ineq'] : chain-rule
|
||||
{'parenLeft'} ~>look-around
|
||||
{'question'} ~> look-around
|
||||
regexLookAround ~> advance
|
||||
regexLookAround ~> advance
|
||||
regexLookAround ~> advance
|
||||
regexLookAround ~> advance
|
||||
if [hasLG 'ineq'] : chain-rule
|
||||
{'parenLeft'} ~> look-around
|
||||
{'question'} ~> look-around
|
||||
regexLookAround ~> advance
|
||||
regexLookAround ~> advance
|
||||
regexLookAround ~> advance
|
||||
if [hasLG 'ineq'] : chain-rule
|
||||
{'parenLeft'} ~> look-around
|
||||
{'question'} ~> look-around
|
||||
regexLookAround ~> advance
|
||||
regexLookAround ~> advance
|
||||
|
||||
# <>
|
||||
piecewise
|
||||
[hasLG 'ltgt-diamond'] : chain-rule
|
||||
lessAndEquiv ~> [just 'less.lig.diamond']
|
||||
greaterAndEquiv ~> [just 'greater.lig.diamond']
|
||||
[hasLG 'ltgt-diamond-tag'] : chain-rule
|
||||
lessAndEquiv ~> [just 'less.lig.diamond.tag']
|
||||
greaterAndEquiv ~> [just 'greater.lig.diamond.tag']
|
||||
[hasLG 'ltgt-ne'] : chain-rule
|
||||
lessAndEquiv ~> [just 'neq.bar-only.2l']
|
||||
greaterAndEquiv ~> [just 'equal.fc+cf']
|
||||
# <>
|
||||
piecewise
|
||||
[hasLG 'ltgt-diamond'] : chain-rule
|
||||
lessAndEquiv ~> [just 'less.lig.diamond']
|
||||
greaterAndEquiv ~> [just 'greater.lig.diamond']
|
||||
[hasLG 'ltgt-diamond-tag'] : chain-rule
|
||||
lessAndEquiv ~> [just 'less.lig.diamond.tag']
|
||||
greaterAndEquiv ~> [just 'greater.lig.diamond.tag']
|
||||
[hasLG 'ltgt-ne'] : chain-rule
|
||||
lessAndEquiv ~> [just 'neq.bar-only.2l']
|
||||
greaterAndEquiv ~> [just 'equal.fc+cf']
|
||||
|
||||
# <=, >=
|
||||
chain-rule
|
||||
[acops] ~> look-around
|
||||
lessOrGreaterAndEquiv ~> advance
|
||||
equal ~> advance
|
||||
chain-rule
|
||||
lessOrGreaterAndEquiv ~> advance
|
||||
equal ~> advance
|
||||
[acops] ~> look-around
|
||||
chain-rule
|
||||
lessAndEquiv ~> [just 'less.lig2']
|
||||
equal ~> {'eq.at-lteq.lig2'}
|
||||
chain-rule
|
||||
greaterAndEquiv ~> [just 'greater.lig2']
|
||||
equal ~> {'eq.at-gteq.lig2'}
|
||||
# <=, >=
|
||||
if [hasLG 'ineq'] : chain-rule
|
||||
[acops] ~> look-around
|
||||
lessOrGreaterAndEquiv ~> advance
|
||||
equal ~> advance
|
||||
if [hasLG 'ineq'] : chain-rule
|
||||
lessOrGreaterAndEquiv ~> advance
|
||||
equal ~> advance
|
||||
[acops] ~> look-around
|
||||
if [hasLG 'ineq'] : chain-rule
|
||||
lessAndEquiv ~> [just 'less.lig2']
|
||||
equal ~> {'eq.at-lteq.lig2'}
|
||||
if [hasLG 'ineq'] : chain-rule
|
||||
greaterAndEquiv ~> [just 'greater.lig2']
|
||||
equal ~> {'eq.at-gteq.lig2'}
|
||||
|
||||
# </, /> and </>
|
||||
piecewise
|
||||
[hasLG 'ltgt-slash-tag'] : chain-rule
|
||||
lessAndEquiv ~> [just 'less.lig.tag-slash']
|
||||
slash ~> look-around
|
||||
piecewise
|
||||
[hasLG 'ltgt-slash-tag'] : chain-rule
|
||||
slash ~> look-around
|
||||
greaterAndEquiv ~> [just 'greater.lig.tag-slash']
|
||||
# </, /> and </>
|
||||
if [hasLG 'ltgt-slash-tag'] : chain-rule
|
||||
lessAndEquiv ~> [just 'less.lig.tag-slash']
|
||||
slash ~> look-around
|
||||
if [hasLG 'ltgt-slash-tag'] : chain-rule
|
||||
slash ~> look-around
|
||||
greaterAndEquiv ~> [just 'greater.lig.tag-slash']
|
||||
|
||||
# :>
|
||||
do "colon-less-greater" : if [hasLG 'colon-greater'] : begin
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue