From 8dde5e747250e3b9aa57e0ea5f2a01ce465742e7 Mon Sep 17 00:00:00 2001 From: Logo121 <21302803+Logo121@users.noreply.github.com> Date: Fri, 14 Mar 2025 21:50:40 +0800 Subject: [PATCH] curls --- .../src/letter/latin-ext/glottal-stop.ptl | 22 ++++++++++++++-- packages/font-glyphs/src/letter/latin/c.ptl | 25 +++++++++++------- .../font-glyphs/src/letter/latin/lower-t.ptl | 26 ++++++++++++++++++- 3 files changed, 61 insertions(+), 12 deletions(-) diff --git a/packages/font-glyphs/src/letter/latin-ext/glottal-stop.ptl b/packages/font-glyphs/src/letter/latin-ext/glottal-stop.ptl index a838ac274..b4800b87d 100644 --- a/packages/font-glyphs/src/letter/latin-ext/glottal-stop.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/glottal-stop.ptl @@ -10,7 +10,7 @@ glyph-block Letter-Latin-Glottal-Stop : begin glyph-block-import Common-Derivatives glyph-block-import Mark-Shared-Metrics : markHalfStroke glyph-block-import Letter-Shared : CreateTurnedLetter - glyph-block-import Letter-Shared-Shapes : LetterBarOverlay + glyph-block-import Letter-Shared-Shapes : LetterBarOverlay CurlyTail create-glyph 'glottalStop' 0x294 : glyph-proc include : MarkSet.b @@ -66,7 +66,25 @@ glyph-block Letter-Latin-Glottal-Stop : begin if SLAB : begin include : HSerif.mb Middle 0 Jut - CreateTurnedLetter 'invGlottalStop' 0x296 'revGlottalStop' HalfAdvance (Ascender / 2) + CreateTurnedLetter 'glottalStopTurned' 0x296 'revGlottalStop' HalfAdvance (Ascender / 2) + + create-glyph 'glottalStopTurnedCurlyTail' 0x1DF0E : glyph-proc + include : MarkSet.b + + local yMid : AdviceGlottalStopArchDepth Ascender 1 + local fine : AdviceStroke 3.5 + + include : dispiro + widths.rhs + flat (Middle + [HSwToV HalfStroke]) Ascender [heading Downward] + curl (Middle + [HSwToV HalfStroke]) (Ascender - XH * 0.3) + alsoThru.g2 0.5 0.5 important + g4 RightSB yMid + CurlyTail.n fine 0 SB RightSB 0 yMid + + if SLAB : begin + include : HSerif.mt Middle Ascender Jut + create-glyph 'glottalStopBar' 0x2A1 : glyph-proc include [refer-glyph 'glottalStop'] AS_BASE diff --git a/packages/font-glyphs/src/letter/latin/c.ptl b/packages/font-glyphs/src/letter/latin/c.ptl index ee94e6d38..813f691cb 100644 --- a/packages/font-glyphs/src/letter/latin/c.ptl +++ b/packages/font-glyphs/src/letter/latin/c.ptl @@ -95,17 +95,18 @@ glyph-block Letter-Latin-C : begin [Just SLAB-INWARD] : ArcEndSerif.InwardL df.leftSB bot [fallback sw Stroke] [fallback hook Hook] __ : glyph-proc - define [CCurlyTailShape slabType] : glyph-proc - local sw : AdviceStroke2 2 3 XH - local fine : AdviceStroke2 3 3 XH + define [CCurlyTailShape df slabType top bot] : glyph-proc + local sw : df.adviceStroke2 2 3 (top - bot) + local fine : df.adviceStroke2 3 3 (top - bot) + local loopTop : bot + 0.45 * XH include : dispiro match slabType - [Just SLAB-CLASSICAL] : SerifedArcStart.RtlLhs RightSB XH sw Hook - [Just SLAB-INWARD] : InwardSlabArcStart.RtlLhs RightSB XH sw Hook - __ : list [g4 RightSB (XH - Hook) [widths.lhs sw]] [hookstart XH (sw -- sw)] - flatside.ld SB 0 XH SmallArchDepthA SmallArchDepthB - CurlyTail.n fine 0 RightSB 0 0 (yLoopTop -- (XH * 0.45)) + [Just SLAB-CLASSICAL] : SerifedArcStart.RtlLhs df.rightSB top sw Hook + [Just SLAB-INWARD] : InwardSlabArcStart.RtlLhs df.rightSB top sw Hook + __ : list [g4 df.rightSB (top - Hook) [widths.lhs sw]] [hookstart top (sw -- sw)] + flatside.ld df.leftSB bot top SmallArchDepthA SmallArchDepthB + CurlyTail.n fine bot df.rightSB 0 bot (yLoopTop -- loopTop) glyph-block-export CLetterForm define [CLetterForm] : with-params [df sty styBot top bot [ada ArchDepthA] [adb ArchDepthB] [hook Hook] [sw Stroke] [ob nothing]] : namespace @@ -230,7 +231,7 @@ glyph-block Letter-Latin-C : begin create-glyph "cCurlyTail.\(suffix)" : glyph-proc include : MarkSet.e - include : CCurlyTailShape sty + include : CCurlyTailShape [DivFrame 1] sty XH 0 include : AutoStartSerifR [DivFrame 1] sty XH create-glyph "stretchedC.\(suffix)" : glyph-proc @@ -240,6 +241,11 @@ glyph-block Letter-Latin-C : begin adb -- SmallArchDepthB include : lf.full + create-glyph "stretchedCCurlyTail.\(suffix)" : glyph-proc + include : MarkSet.p + include : CCurlyTailShape [DivFrame 1] sty XH Descender + include : AutoStartSerifR [DivFrame 1] sty XH + define [KoppaShapeT styTop styBot top base] : union VBar.r (Middle + [HSwToV Stroke]) Descender HalfStroke difference base @@ -314,6 +320,7 @@ glyph-block Letter-Latin-C : begin select-variant 'cCurlyTail' 0x255 select-variant 'cHookTop' 0x188 select-variant 'stretchedC' 0x297 (follow -- 'c') + select-variant 'stretchedCCurlyTail' 0x1DF0F (follow -- 'cHookTop') select-variant 'cyrl/Koppa' 0x480 (follow -- 'CTopSerifOnly') select-variant 'cyrl/koppa' 0x481 (follow -- 'cTopSerifOnly') diff --git a/packages/font-glyphs/src/letter/latin/lower-t.ptl b/packages/font-glyphs/src/letter/latin/lower-t.ptl index 98263fe35..e13518dd5 100644 --- a/packages/font-glyphs/src/letter/latin/lower-t.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-t.ptl @@ -293,6 +293,29 @@ glyph-block Letter-Latin-Lower-T : begin curl xLeft LongJut CurlyTail.n fine 0 (xLeft + [HSwToV Stroke] + LongJut) 0 0 + if (top == Ascender) : begin + create-glyph "tTurnedCurlyTail.\(suffix)" : glyph-proc + # local df : DivFrame 1 + + set-width df.width + include : df.markSet.b + + local fine : AdviceStroke2 3.5 2.5 (-Descender) + # local rinner : LongJut / 2 - fine / 2 + + local xLeft : Style.BarLeftPos df sym + + include : Style.Body df sym XH 0 + include : FlipAround df.middle (XH / 2) + + local xRight : df.width - xLeft + include : dispiro + widths.rhs + flat xRight TINY [heading Downward] + curl xRight 0 [heading Downward] + CurlyTail.n fine Descender (xRight - [HSwToV Stroke] - LongJut) df.rightSB Descender (Descender / 2 + fine) + + select-variant 't' 't' select-variant 't/teshLeft' (follow -- 't') select-variant 't/phoneticLeft1' (shapeFrom -- 't') @@ -302,10 +325,11 @@ glyph-block Letter-Latin-Lower-T : begin derive-glyphs 'tCedilla' 0x163 't' ConnectedCedilla CreateAccentedComposition 'tComma' 0x21B 't' 'commaBelow' - select-variant "tHookTop" 0x1AD + select-variant 'tHookTop' 0x1AD select-variant 'tPalatalHook' 0x1AB (follow -- 't') select-variant 'tRTail' 0x288 select-variant 'tCurlyTail' 0x236 + select-variant 'tTurnedCurlyTail' 0x1DF0D (follow -- 'tHookTop') select-variant "tHookTopRTail" 0x1DF09