From 5530f45880ca444d64e3f4dbd3451a50e7db2a9c Mon Sep 17 00:00:00 2001 From: Logo <21302803+Logo121@users.noreply.github.com> Date: Sat, 27 May 2023 04:41:27 +0800 Subject: [PATCH] threefold solid at (#1495) (#1750) --- changes/24.0.0.md | 1 + font-src/glyphs/symbol/punctuation/at.ptl | 51 +++++++++++++---------- params/variants.toml | 22 +++++++--- 3 files changed, 46 insertions(+), 28 deletions(-) diff --git a/changes/24.0.0.md b/changes/24.0.0.md index a295e5b19..1071670c2 100644 --- a/changes/24.0.0.md +++ b/changes/24.0.0.md @@ -1,5 +1,6 @@ * \[**BREAKING**\] Add taller slash, broken slash and broken zero variants for Zero. As a result, current variants are reordered (#1307, #1509, #1678). * \[**BREAKING**\] Add above-baseline crossed variant for Q. As a result, current variants are reordered (#1533). +* \[**BREAKING**\] Add `threefold-solid-inline` variant for `@`. As a result, current variants are reordered (#1495). * \[**BREAKING**\] Rectify the variant atlas. As a result, if a character's variant list has motion-serifed, then it will have serifless and serifed variants: the serifed-ness will no longer be controlled by SLAB variable. The characters influenced are `M`, `N`, `P`, `R`, `U`, `V`, `W`, `b`, `h`, `m`, `n`, `p`, `q`, `u`, `v`, `w`, `y`. * \[**BREAKING**\] Renamed and/or reordered various variants. * Add Characters: diff --git a/font-src/glyphs/symbol/punctuation/at.ptl b/font-src/glyphs/symbol/punctuation/at.ptl index a2dc7f0ac..27f4eac27 100644 --- a/font-src/glyphs/symbol/punctuation/at.ptl +++ b/font-src/glyphs/symbol/punctuation/at.ptl @@ -10,39 +10,44 @@ glyph-block Symbol-Punctuation-At : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - define [ThreeFoldShape height] : glyph-proc + define [ThreeFoldShape height fSolidInner] : glyph-proc local top : SymbolMid + height / 2 local bot : SymbolMid - height / 2 local otop : mix bot top 0.75 local obot : mix top bot 0.8 local sw : AdviceStroke 3.5 - local m1 : [mix (SB + sw) (RightSB - sw) 0.47] - sw / 2 + local m1 : if fSolidInner [mix SB RightSB 0.5] : [mix (SB + sw) (RightSB - sw) 0.47] - sw / 2 local m2 : [mix m1 RightSB 0.52] + TanSlope * sw local ada : ArchDepthA * ((RightSB - m1) / (RightSB - SB) * 1.1) local adb : ArchDepthB * ((RightSB - m1) / (RightSB - SB) * 1.1) - include : dispiro - widths.lhs sw - flat RightSB (otop - O) [heading Leftward] - curl m2 (otop - O) - archv - flat m1 (otop - ada) - curl m1 (obot + adb) - arcvh - g4 m2 (obot + O) - archv - flat RightSB (obot + ada) - curl RightSB (top - ArchDepthB) - arcvh - g4 [ArchXAdjust.top Middle sw] (top - O) [widths Stroke 0] - archv - flat SB (top - ArchDepthA) [widths sw 0] - curl SB (bot + ArchDepthB) - arcvh - flat [ArchXAdjust.bot Middle sw] (bot + O) [widths Stroke 0 ] - curl (RightSB - HalfStroke + TanSlope * sw) (bot + O) + include : union + [if fSolidInner spiro-outline dispiro] + widths.lhs sw + flat RightSB (otop - O) [heading Leftward] + curl m2 (otop - O) + archv + flat m1 (otop - ada) + curl m1 (obot + adb) + arcvh + g4 m2 (obot + O) + archv + flat RightSB (obot + ada) + curl RightSB (otop - O) + dispiro + widths.lhs sw + flat RightSB (obot + ada) + curl RightSB (top - ArchDepthB) + arcvh + g4 [ArchXAdjust.top Middle sw] (top - O) [widths Stroke 0] + archv + flat SB (top - ArchDepthA) [widths sw 0] + curl SB (bot + ArchDepthB) + arcvh + flat [ArchXAdjust.bot Middle sw] (bot + O) [widths Stroke 0 ] + curl (RightSB - HalfStroke + TanSlope * sw) (bot + O) define [FourFoldShape height fSolidInner] : glyph-proc local df : DivFrame para.diversityM [if fSolidInner 3.25 4] @@ -163,6 +168,8 @@ glyph-block Symbol-Punctuation-At : begin threefoldTall { ThreeFoldShape TallHeight false } fourfoldTall { FourFoldShape TallHeight false } short { ShortShape CAP false } + threefoldSolidInner { ThreeFoldShape NormalHeight true } + threefoldSolidInnerTall { ThreeFoldShape TallHeight true } fourfoldSolidInner { FourFoldShape NormalHeight true } fourfoldSolidInnerTall { FourFoldShape TallHeight true } diff --git a/params/variants.toml b/params/variants.toml index 90b4a824f..00d69aecc 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -5635,33 +5635,43 @@ rank = 1 description = "The three-fold At symbol (`@`)" selector.at = "threefold" -[prime.at.variants.fourfold] +[prime.at.variants.threefold-solid-inner] rank = 2 +description = "The three-fold At symbol (`@`) with inner loop being solid" +selector.at = "threefoldSolidInner" + +[prime.at.variants.fourfold] +rank = 3 description = "The traditional, four-fold At symbol (`@`)" selector.at = "fourfold" [prime.at.variants.fourfold-solid-inner] -rank = 3 +rank = 4 description = "The four-fold At symbol (`@`) with inner loop being solid" selector.at = "fourfoldSolidInner" [prime.at.variants.threefold-tall] -rank = 4 +rank = 5 description = "The three-fold At symbol (`@`) with taller outline" selector.at = "threefoldTall" +[prime.at.variants.threefold-solid-inner-tall] +rank = 6 +description = "The three-fold At symbol (`@`) with inner loop being solid and taller outline" +selector.at = "threefoldSolidInnerTall" + [prime.at.variants.fourfold-tall] -rank = 5 +rank = 7 description = "The traditional, four-fold At symbol (`@`) with taller outline" selector.at = "fourfoldTall" [prime.at.variants.fourfold-solid-inner-tall] -rank = 6 +rank = 8 description = "The four-fold At symbol (`@`) with inner loop being solid and taller outline" selector.at = "fourfoldSolidInnerTall" [prime.at.variants.short] -rank = 7 +rank = 9 description = "The shorter, Fira-like At symbol (`@`)" selector.at = "short"