diff --git a/changes/25.0.2.md b/changes/25.0.2.md index 5107bfc83..d07e1e1ef 100644 --- a/changes/25.0.2.md +++ b/changes/25.0.2.md @@ -1,3 +1,9 @@ +* Add Characters: + - ORTHODOX CROSS (`U+2626`). + - CROSS OF LORRAINE (`U+2628`). + - LATIN CROSS (`U+271D`) (#1841). + - HEAVY LATIN CROSS (`U+1F547`). + - CELTIC CROSS (`U+1F548`). * Refine shape of `U+A666` and `U+A667` (#1838). * Make `cv33` affect `U+0270`, `U+02AE`, and `U+02AF`. * Make `cv42` affect serifs of `U+027F`. diff --git a/font-src/glyphs/symbol/pictograph.ptl b/font-src/glyphs/symbol/pictograph.ptl index 3a1221ec6..db2821cfc 100644 --- a/font-src/glyphs/symbol/pictograph.ptl +++ b/font-src/glyphs/symbol/pictograph.ptl @@ -6,6 +6,7 @@ export : define [apply] : begin run-glyph-module "./pictograph/astronomy.mjs" run-glyph-module "./pictograph/atom.mjs" run-glyph-module "./pictograph/bolt-symbol.mjs" + run-glyph-module "./pictograph/christian-cross.mjs" run-glyph-module "./pictograph/checking-marks.mjs" run-glyph-module "./pictograph/faces.mjs" run-glyph-module "./pictograph/flags.mjs" diff --git a/font-src/glyphs/symbol/pictograph/christian-cross.ptl b/font-src/glyphs/symbol/pictograph/christian-cross.ptl new file mode 100644 index 000000000..a977cbbe2 --- /dev/null +++ b/font-src/glyphs/symbol/pictograph/christian-cross.ptl @@ -0,0 +1,60 @@ +$$include '../../../meta/macros.ptl' + +import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [DesignParameters] from"../../../meta/aesthetics.mjs" + +glyph-module + +glyph-block Symbol-Christian-Cross : for-width-kinds WideWidth1 + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + glyph-block-import Symbol-Geometric-Shared : GeometricDim UnicodeWeightGrade GeometricSizes + + define Geom : GeometricDim MosaicUnitWidth MosaicWidth + define Size : GeometricSizes Geom + + define mediumSw : UnicodeWeightGrade 5 Geom.Scalar + define heavySw : UnicodeWeightGrade 9 Geom.Scalar + + define pBottom 2 + define pShortBar 0.6 + define pRing 0.6 + + define crossHeight : Geom.Size * Size.Large.size * 2 + define shortSize : crossHeight / (pBottom + 1) + define yTop : Geom.MidY + 0.5 * crossHeight + define yBot : Geom.MidY - 0.5 * crossHeight + define yCenter : yTop - shortSize + + define [LatinCross sw fSecondBar] : glyph-proc + include : dispiro + corner Geom.MidX yTop [widths.center sw] + corner Geom.MidX yBot + include : dispiro + corner (Geom.MidX - shortSize) yCenter [widths.center sw] + corner (Geom.MidX + shortSize) yCenter + if fSecondBar : include : dispiro + corner (Geom.MidX - pShortBar * shortSize) [mix yCenter yTop 0.5] [widths.center sw] + corner (Geom.MidX + pShortBar * shortSize) [mix yCenter yTop 0.5] + + create-glyph [MangleName 'latinCross'] [MangleUnicode 0x271D] : glyph-proc + set-width Geom.Width + include : LatinCross mediumSw false + create-glyph [MangleName 'heavyLatinCross'] [MangleUnicode 0x1F547] : glyph-proc + set-width Geom.Width + include : LatinCross heavySw false + + create-glyph [MangleName 'lorraineCross'] [MangleUnicode 0x2628] : glyph-proc + set-width Geom.Width + include : LatinCross mediumSw true + create-glyph [MangleName 'orthodoxCross'] [MangleUnicode 0x2626] : glyph-proc + set-width Geom.Width + include : LatinCross mediumSw true + include : dispiro + corner (Geom.MidX - pShortBar * shortSize) [mix yBot yCenter 0.45] [widths.center mediumSw] + corner (Geom.MidX + pShortBar * shortSize) [mix yBot yCenter 0.3] + create-glyph [MangleName 'celticCross'] [MangleUnicode 0x1F548] : glyph-proc + set-width Geom.Width + include : LatinCross mediumSw false + include : RingStrokeAt Geom.MidX yCenter (pRing * shortSize + 0.5 * mediumSw) mediumSw +