Cleanup of enclosure code repeations

This commit is contained in:
be5invis 2020-10-18 18:31:35 -07:00
parent fcdb492e71
commit 44a6c1cb2d
2 changed files with 211 additions and 188 deletions

View file

@ -10,6 +10,7 @@ glyph-module
define DECOMPOSABLE true define DECOMPOSABLE true
define NON-DECOMPOSABLE false define NON-DECOMPOSABLE false
define SLOPE-INHERIT nothing
glyph-block Autobuild-Enclosure-Shared : begin glyph-block Autobuild-Enclosure-Shared : begin
glyph-block-import CommonShapes glyph-block-import CommonShapes
@ -195,28 +196,29 @@ glyph-block AutoBuild-Enclosure : begin
define smoothB : SmoothBOf (SmallSmooth * (right - left) / (RightSB - SB)) width define smoothB : SmoothBOf (SmallSmooth * (right - left) / (RightSB - SB)) width
return : object width mockInnerWidth dscale sw0 sw top bot left right mosaicTop mosaicBot mosaicLeft mosaicRight smoothA smoothB return : object width mockInnerWidth dscale sw0 sw top bot left right mosaicTop mosaicBot mosaicLeft mosaicRight smoothA smoothB
define [CircledMiniatureFont digits width] : lambda [gs] : Miniature define [CircledMiniatureFont slopeAngle digits width] : lambda [gs] : Miniature
glyphs -- gs glyphs -- gs
crowd -- [CircCrowd digits width] crowd -- [CircCrowd digits width]
scale -- [CircScale digits width] scale -- [CircScale digits width]
sbscale -- 1 sbscale -- 1
slopeAngle -- [fallback slopeAngle para.slopeAngle]
define [EnclosureT prefix globallyDecomposable digits demands fnEnclosure fn] : begin define [EnclosureT prefix builder slopeAngle digits demands fnEnclosure] : begin
foreach {suffix ww gap} [items-of circleWidthClasses] : do foreach {suffix ww gap} [items-of circleWidthClasses] : do
define jobs : CollectJobs globallyDecomposable (prefix + digits) suffix demands define jobs : CollectJobs builder.decomposable (prefix + digits) suffix demands
define miniatureFont : CreateDerivedFontFromJobs jobs {} : CircledMiniatureFont digits ww define miniatureFont : CreateDerivedFontFromJobs jobs {} : CircledMiniatureFont slopeAngle digits ww
define gnEnclosure : CircName null (prefix + digits + '.enclosure') {} suffix define gnEnclosure : CircName null (prefix + digits + '.enclosure') {} suffix
if [not : query-glyph gnEnclosure] : create-glyph gnEnclosure : fnEnclosure ww gap if [not : query-glyph gnEnclosure] : create-glyph gnEnclosure : fnEnclosure digits ww gap
foreach job [items-of jobs.decomposableJobs] : fn (prefix + digits) ww gap job miniatureFont gnEnclosure true foreach job [items-of jobs.decomposableJobs] : begin
foreach job [items-of jobs.nonDecomposable] : fn (prefix + digits) ww gap job miniatureFont gnEnclosure false builder.build (prefix + digits) digits ww gap job miniatureFont gnEnclosure true
foreach job [items-of jobs.nonDecomposable] : begin
builder.build (prefix + digits) digits ww gap job miniatureFont gnEnclosure false
applyRelations jobs.relApplications applyRelations jobs.relApplications
define [createCircledGlyphs digits demands] : EnclosureT 'circle' DECOMPOSABLE digits demands # Builders and Enclosure Shapes
lambda [ww gap] : glyph-proc define CircledBuilder : object
define [object width sw top bot left right smoothA smoothB] : circleDimens digits ww decomposable true
set-width width build : lambda [prefix digits ww gap job miniatureFont gnEnclosure decomposable] : begin
include : OShape top bot left right sw smoothA smoothB
lambda [prefix ww gap job miniatureFont gnEnclosure decomposable] : begin
define { gn unicode parts w bal baly } job define { gn unicode parts w bal baly } job
define dimens : circleDimens digits ww define dimens : circleDimens digits ww
define [object width mockInnerWidth dscale] dimens define [object width mockInnerWidth dscale] dimens
@ -225,148 +227,116 @@ glyph-block AutoBuild-Enclosure : begin
include : EnclosureInner [if decomposable gnEnclosure null] miniatureFont prefix job dimens include : EnclosureInner [if decomposable gnEnclosure null] miniatureFont prefix job dimens
include : refer-glyph gnEnclosure include : refer-glyph gnEnclosure
define [createBoxedGlyphs digits demands] : EnclosureT 'boxed' DECOMPOSABLE digits demands define InsetBuilder : object
lambda [ww gap] : glyph-proc decomposable false
define [object width mockInnerWidth sw top bot left right] : circleDimens digits ww build : lambda [prefix digits ww gap job miniatureFont gnEnclosure decomposable] : begin
set-width width define { gn unicode parts w bal baly } job
include : union define dimens : circleDimens digits ww
define [object width mockInnerWidth dscale] dimens
if [not : query-glyph gn] : create-glyph gn [if (w == ww) unicode null] : glyph-proc
set-width width
include : difference
refer-glyph gnEnclosure
EnclosureInner [if decomposable gnEnclosure null] miniatureFont prefix job dimens
define [createCircledGlyphs digits demands]
EnclosureT "circle" CircledBuilder SLOPE-INHERIT digits demands CircleEnclosureShape
define [createItalicCircledGlyphs digits demands]
EnclosureT "circle-italic" CircledBuilder para.derivedSlopeAngle digits demands CircleEnclosureShape
define [CircleEnclosureShape digits ww gap] : glyph-proc
define [object width sw top bot left right smoothA smoothB] : circleDimens digits ww
set-width width
include : OShape top bot left right sw smoothA smoothB
define [createBoxedGlyphs digits demands]
EnclosureT 'boxed' CircledBuilder SLOPE-INHERIT digits demands BoxEnclosureShape
define [BoxEnclosureShape digits ww gap] : glyph-proc
define [object width mockInnerWidth sw top bot left right] : circleDimens digits ww
set-width width
include : union
HBarTop left right top sw
HBarBottom left right bot sw
VBarLeft left bot top sw
VBarRight right bot top sw
define [createDashedBoxedGlyphs digits demands]
EnclosureT 'dashed-boxed' CircledBuilder SLOPE-INHERIT digits demands DashedBoxEnclosureShape
define [DashedBoxEnclosureShape digits ww cap] : glyph-proc
define [object width mockInnerWidth sw top bot left right] : circleDimens digits ww
set-width width
include : difference
union
HBarTop left right top sw HBarTop left right top sw
HBarBottom left right bot sw HBarBottom left right bot sw
VBarLeft left bot top sw VBarLeft left bot top sw
VBarRight right bot top sw VBarRight right bot top sw
lambda [prefix ww gap job miniatureFont gnEnclosure decomposable] : begin union
define { gn unicode parts w bal baly } job VBar [mix left right 0.25] bot top sw
define dimens : circleDimens digits ww VBar [mix left right 0.5] bot top sw
define [object width mockInnerWidth dscale] dimens VBar [mix left right 0.75] bot top sw
if [not : query-glyph gn] : create-glyph gn [if (w == ww) unicode null] : glyph-proc HBar left right [mix bot top 0.25] sw
set-width width HBar left right [mix bot top 0.50] sw
include : EnclosureInner [if decomposable gnEnclosure null] miniatureFont prefix job dimens HBar left right [mix bot top 0.75] sw
include : refer-glyph gnEnclosure
define [createDashedBoxedGlyphs digits demands] : EnclosureT 'dashed-boxed' DECOMPOSABLE digits demands define [createInsetCircledGlyphs digits demands]
lambda [ww gap] : glyph-proc EnclosureT 'inset-circle' InsetBuilder SLOPE-INHERIT digits demands InsetCircleEnclosureShape
define [object width mockInnerWidth sw top bot left right] : circleDimens digits ww define [InsetCircleEnclosureShape digits ww gap] : glyph-proc
set-width width define [object width sw top bot left right smoothA smoothB] : circleDimens digits ww
include : difference set-width width
union include : OShapeOutline top bot left right sw smoothA smoothB
HBarTop left right top sw
HBarBottom left right bot sw
VBarLeft left bot top sw
VBarRight right bot top sw
union
VBar [mix left right 0.25] bot top sw
VBar [mix left right 0.5] bot top sw
VBar [mix left right 0.75] bot top sw
HBar left right [mix bot top 0.25] sw
HBar left right [mix bot top 0.50] sw
HBar left right [mix bot top 0.75] sw
lambda [prefix ww gap job miniatureFont gnEnclosure decomposable] : begin
define { gn unicode parts w bal baly } job
define dimens : circleDimens digits ww
define [object width mockInnerWidth dscale] dimens
if [not : query-glyph gn] : create-glyph gn [if (w == ww) unicode null] : glyph-proc
set-width width
include : EnclosureInner [if decomposable gnEnclosure null] miniatureFont prefix job dimens
include : refer-glyph gnEnclosure
define [createInsetCircledGlyphs digits demands] : EnclosureT 'inset-circle' NON-DECOMPOSABLE digits demands define [createInsetBoxedGlyphs digits demands]
lambda [ww gap] : glyph-proc EnclosureT 'inset-boxed' InsetBuilder SLOPE-INHERIT digits demands InsetBoxEnclosureShape
define [object width sw top bot left right smoothA smoothB] : circleDimens digits ww define [InsetBoxEnclosureShape digits ww gap] : glyph-proc
set-width width define [object width top bot left right] : circleDimens digits ww
include : OShapeOutline top bot left right sw smoothA smoothB set-width width
lambda [prefix ww gap job miniatureFont gnEnclosure decomposable] : begin include : spiro-outline
define { gn unicode parts w bal baly } job corner left top
define dimens : circleDimens digits ww corner left bot
define [object width mockInnerWidth dscale] dimens corner right bot
if [not : query-glyph gn] : create-glyph gn [if (w == ww) unicode null] : glyph-proc corner right top
set-width width close
include : difference
refer-glyph gnEnclosure
EnclosureInner [if decomposable gnEnclosure null] miniatureFont prefix job dimens
define [createInsetBoxedGlyphs digits demands] : EnclosureT 'inset-boxed' NON-DECOMPOSABLE digits demands define [createInsetDiamondGlyphs digits demands]
lambda [ww gap] : glyph-proc EnclosureT 'inset-diamond' InsetBuilder SLOPE-INHERIT digits demands InsetDiamondEnclosureShape
define [object width top bot left right] : circleDimens digits ww define [InsetDiamondEnclosureShape digits ww gap] : glyph-proc
set-width width define [object width top bot left right] : circleDimens digits ww
include : spiro-outline set-width width
corner left top include : spiro-outline
corner left bot corner (left + O) [mix bot top 0.5]
corner right bot corner [mix left right 0.5] (bot + O)
corner right top corner (right - O) [mix bot top 0.5]
close corner [mix left right 0.5] (top - O)
lambda [prefix ww gap job miniatureFont gnEnclosure decomposable] : begin close
define { gn unicode parts w bal baly } job
define dimens : circleDimens digits ww
define [object width mockInnerWidth dscale] dimens
if [not : query-glyph gn] : create-glyph gn [if (w == ww) unicode null] : glyph-proc
set-width width
include : difference
refer-glyph gnEnclosure
EnclosureInner [if decomposable gnEnclosure null] miniatureFont prefix job dimens
define [createInsetDiamondGlyphs digits demands] : EnclosureT 'inset-diamond' NON-DECOMPOSABLE digits demands define [createInsetMosaicGlyphs digits demands]
lambda [ww gap] : glyph-proc EnclosureT 'inset-mosaic' InsetBuilder SLOPE-INHERIT digits demands InsetMosaicEnclosureShape
define [object width top bot left right] : circleDimens digits ww define [InsetMosaicEnclosureShape digits ww gap] : glyph-proc
set-width width define [object width mockInnerWidth mosaicTop mosaicBot mosaicLeft mosaicRight] : circleDimens digits ww
include : spiro-outline set-width width
corner (left + O) [mix bot top 0.5] include : ForceUpright
corner [mix left right 0.5] (bot + O) include : spiro-outline
corner (right - O) [mix bot top 0.5] corner mosaicLeft mosaicTop
corner [mix left right 0.5] (top - O) corner mosaicLeft mosaicBot
close corner mosaicRight mosaicBot
lambda [prefix ww gap job miniatureFont gnEnclosure decomposable] : begin corner mosaicRight mosaicTop
define { gn unicode parts w bal baly } job close
define dimens : circleDimens digits ww
define [object width mockInnerWidth dscale] dimens
if [not : query-glyph gn] : create-glyph gn [if (w == ww) unicode null] : glyph-proc
set-width width
include : difference
refer-glyph gnEnclosure
EnclosureInner [if decomposable gnEnclosure null] miniatureFont prefix job dimens
define [createInsetMosaicGlyphs digits demands] : EnclosureT 'inset-mosaic' NON-DECOMPOSABLE digits demands define [createDoubleCircledGlyphs digits demands]
lambda [ww gap] : glyph-proc EnclosureT 'double-circle' CircledBuilder SLOPE-INHERIT digits demands DoubleCircledEnclosureShape
define [object width mockInnerWidth mosaicTop mosaicBot mosaicLeft mosaicRight] : circleDimens digits ww define [DoubleCircledEnclosureShape digits ww gap] : glyph-proc
set-width width define [object width mockInnerWidth sw0 sw top bot left right smoothA smoothB] : circleDimens digits ww (ww * gap)
include : ForceUpright set-width width
include : spiro-outline define sw1 : Math.min sw0 (sw / 3)
corner mosaicLeft mosaicTop include : OShape top bot left right sw1 smoothA smoothB
corner mosaicLeft mosaicBot include : OShape
corner mosaicRight mosaicBot top - sw + sw1
corner mosaicRight mosaicTop bot + sw - sw1
close left + sw * HVContrast - sw1 * HVContrast
lambda [prefix ww gap job miniatureFont gnEnclosure decomposable] : begin right - sw * HVContrast + sw1 * HVContrast
define { gn unicode parts w bal baly } job begin sw1
define dimens : circleDimens digits ww smoothA - sw + sw1
define [object width mockInnerWidth dscale] dimens smoothB - sw + sw1
if [not : query-glyph gn] : create-glyph gn [if (w == ww) unicode null] : glyph-proc
set-width width
include : difference
refer-glyph gnEnclosure
EnclosureInner [if decomposable gnEnclosure null] miniatureFont prefix job dimens
define [createDoubleCircledGlyphs digits demands] : EnclosureT 'double-circle' DECOMPOSABLE digits demands
lambda [ww gap] : glyph-proc
define [object width mockInnerWidth sw0 sw top bot left right smoothA smoothB] : circleDimens digits ww (ww * gap)
set-width width
define sw1 : Math.min sw0 (sw / 3)
include : OShape top bot left right sw1 smoothA smoothB
include : OShape
top - sw + sw1
bot + sw - sw1
left + sw * HVContrast - sw1 * HVContrast
right - sw * HVContrast + sw1 * HVContrast
begin sw1
smoothA - sw + sw1
smoothB - sw + sw1
lambda [prefix ww gap job miniatureFont gnEnclosure decomposable] : begin
define { gn unicode parts w bal baly } job
define dimens : circleDimens digits ww (ww * gap)
define [object width mockInnerWidth dscale] dimens
if [not : query-glyph gn] : create-glyph gn [if (w == ww) unicode null] : glyph-proc
set-width width
include : EnclosureInner [if decomposable gnEnclosure null] miniatureFont prefix job dimens
include : refer-glyph gnEnclosure
define [BraceCrowd digits width] : 2.75 + [AdjustDigitCount digits width] define [BraceCrowd digits width] : 2.75 + [AdjustDigitCount digits width]
define [BraceScale digits width] : 0.65 / [Math.pow [AdjustDigitCount digits width] 0.5] define [BraceScale digits width] : 0.65 / [Math.pow [AdjustDigitCount digits width] 0.5]
@ -380,51 +350,93 @@ glyph-block AutoBuild-Enclosure : begin
define mockInnerWidth : width + 2 * (Stroke - sw) * dscale define mockInnerWidth : width + 2 * (Stroke - sw) * dscale
return : object width sw dscale pscale l r mockInnerWidth return : object width sw dscale pscale l r mockInnerWidth
define [createBracedGlyphs digits demands] : begin define [BracedT rawPrefix digits demands fnBraceShape] : foreach {suffix ww} [items-of circleWidthClasses] : do
foreach {suffix ww} [items-of circleWidthClasses] : do define prefix : rawPrefix + digits
define prefix ('braced' + digits) define jobs : CollectJobs DECOMPOSABLE prefix suffix demands
define jobs : CollectJobs DECOMPOSABLE prefix suffix demands define miniatureFont : CreateDerivedFontFromJobs jobs {} : lambda [gs] : Miniature
define miniatureFont : CreateDerivedFontFromJobs jobs {} : lambda [gs] : Miniature glyphs -- gs
glyphs -- gs crowd -- [BraceCrowd digits ww]
crowd -- [BraceCrowd digits ww] scale -- [BraceScale digits ww]
scale -- [BraceScale digits ww] sbscale -- 1
sbscale -- 1
define gnb : CircName null ('.braced-brace' + digits) {} suffix define gnb : CircName prefix ('.braced-brace' + digits) {} suffix
if [not : query-glyph gnb] : create-glyph gnb : glyph-proc if [not : query-glyph gnb] : create-glyph gnb : fnBraceShape digits ww
define [object width dscale pscale sw l r] : bracedDottdeDimens digits ww
local s : TanSlope * SymbolMid / 2 define [CreateGlyphImpl jobDecomposable job] : begin
local p : 0.1 * [Math.sqrt : Math.min 1 (width / (digits * Width))] local {gn unicode parts w bal baly} job
if [not : query-glyph gn] : create-glyph gn [if (w == ww) unicode null] : glyph-proc
define dimens : bracedDottdeDimens digits ww
define [object width mockInnerWidth dscale] dimens
set-width width set-width width
include : dispiro include : EnclosureInner [if jobDecomposable gnb null] miniatureFont prefix job dimens
widths.lhs sw include : refer-glyph gnb
g4 ([mix l r p] - s) (ParenTop * pscale)
g4.down.mid (l - s + O) (SymbolMid * pscale)
g4 ([mix l r p] - s) (ParenBot * pscale)
include : dispiro foreach job [items-of jobs.decomposableJobs] : CreateGlyphImpl true job
widths.rhs sw foreach job [items-of jobs.nonDecomposable] : CreateGlyphImpl false job
g4 ([mix r l p] + s) (ParenTop * pscale) applyRelations jobs.relApplications
g4.down.mid (r + s - O) (SymbolMid * pscale)
g4 ([mix r l p] + s) (ParenBot * pscale)
include : Upright define [createBracedGlyphs digits demands] : BracedT 'braced' digits demands BraceShape
include : Translate 0 (SymbolMid - SymbolMid * pscale) define [BraceShape digits ww] : glyph-proc
include : Italify define [object width dscale pscale sw l r] : bracedDottdeDimens digits ww
local s : TanSlope * SymbolMid / 2
local p : 0.1 * [Math.sqrt : Math.min 1 (width / (digits * Width))]
set-width width
include : dispiro
widths.lhs sw
g4 ([mix l r p] - s) (ParenTop * pscale)
g4.down.mid (l - s + O) (SymbolMid * pscale)
g4 ([mix l r p] - s) (ParenBot * pscale)
define [CreateGlyphImpl jobDecomposable job] : begin include : dispiro
local {gn unicode parts w bal baly} job widths.rhs sw
if [not : query-glyph gn] : create-glyph gn [if (w == ww) unicode null] : glyph-proc g4 ([mix r l p] + s) (ParenTop * pscale)
define dimens : bracedDottdeDimens digits ww g4.down.mid (r + s - O) (SymbolMid * pscale)
define [object width mockInnerWidth dscale] dimens g4 ([mix r l p] + s) (ParenBot * pscale)
set-width width
include : EnclosureInner [if jobDecomposable gnb null] miniatureFont prefix job dimens
include : refer-glyph gnb
foreach job [items-of jobs.decomposableJobs] : CreateGlyphImpl true job include : Upright
foreach job [items-of jobs.nonDecomposable] : CreateGlyphImpl false job include : Translate 0 (SymbolMid - SymbolMid * pscale)
include : Italify
applyRelations jobs.relApplications define [createHexBracedGlyphs digits demands] : BracedT 'hex-braced' digits demands HexBracedShape
define [HexBracedShape digits ww] : glyph-proc
define [object width dscale pscale sw l r] : bracedDottdeDimens digits ww
local s : TanSlope * SymbolMid / 2
local p : (1 / 6) * [Math.sqrt : Math.min 1 (width / (digits * Width))]
set-width width
include : dispiro
widths.lhs sw
corner ([mix l r p] - s) (ParenTop * pscale)
corner (l - s + O) (ParenTop * pscale - p * (r - l))
include : dispiro
widths.lhs sw
corner (l - s + O) (ParenTop * pscale - p * (r - l))
corner (l - s + O) (ParenBot * pscale + p * (r - l))
include : dispiro
widths.lhs sw
corner (l - s + O) (ParenBot * pscale + p * (r - l))
corner ([mix l r p] - s) (ParenBot * pscale)
include : dispiro
widths.rhs sw
corner ([mix r l p] + s) (ParenTop * pscale)
corner (r + s - O) (ParenTop * pscale - p * (r - l))
include : dispiro
widths.rhs sw
corner (r + s - O) (ParenTop * pscale - p * (r - l))
corner (r + s - O) (ParenBot * pscale + p * (r - l))
include : dispiro
widths.rhs sw
corner (r + s - O) (ParenBot * pscale + p * (r - l))
corner ([mix r l p] + s) (ParenBot * pscale)
include : Upright
include : Translate 0 (SymbolMid - SymbolMid * pscale)
include : Italify
define [DottedCrowd digits width] : 2 + [AdjustDigitCount digits width] define [DottedCrowd digits width] : 2 + [AdjustDigitCount digits width]
define [DottedScale digits width] : 1 / [Math.pow [AdjustDigitCount digits width] 0.5] define [DottedScale digits width] : 1 / [Math.pow [AdjustDigitCount digits width] 0.5]
@ -498,6 +510,7 @@ glyph-block AutoBuild-Enclosure : begin
list 0xA9 {'C'} WideWidth2 list 0xA9 {'C'} WideWidth2
list 0x1F12F {'turnC'} WideWidth2 list 0x1F12F {'turnC'} WideWidth2
list 0x2117 {'P'} WideWidth2 list 0x2117 {'P'} WideWidth2
list 0x1F1AD {'M'} WideWidth2
list 0x24EA {'zero.lnum'} WideWidth1 list 0x24EA {'zero.lnum'} WideWidth1
foreach [j : range 1 till 9] : compositions.push : list foreach [j : range 1 till 9] : compositions.push : list
0x2460 + j - 1 0x2460 + j - 1
@ -507,6 +520,11 @@ glyph-block AutoBuild-Enclosure : begin
foreach [j : range 0 26] : compositions.push {(0x24D0 + j) {[glyphStore.queryNameOfUnicode (['a'.charCodeAt 0] + j)]} WideWidth1 0.5 (XH/2)} foreach [j : range 0 26] : compositions.push {(0x24D0 + j) {[glyphStore.queryNameOfUnicode (['a'.charCodeAt 0] + j)]} WideWidth1 0.5 (XH/2)}
createCircledGlyphs 1 compositions createCircledGlyphs 1 compositions
if [not recursive] : do "Single-digit italic circled"
createItalicCircledGlyphs 1 : list
list 0x1F12B {'C'} WideWidth1
list 0x1F12C {'R'} WideWidth1
if [not recursive] : do "Double-digit circled" if [not recursive] : do "Double-digit circled"
local compositions : list local compositions : list
list null {'markBaseSpace'} WideWidth1 list null {'markBaseSpace'} WideWidth1
@ -648,6 +666,10 @@ glyph-block AutoBuild-Enclosure : begin
begin WideWidth1 begin WideWidth1
createBracedGlyphs 2 compositions createBracedGlyphs 2 compositions
if [not recursive] : do "Single-digit hex braced"
createHexBracedGlyphs 1 : list
list 0x1F12A {'S'} WideWidth1
if [not recursive] : do "Single-digit dotted" if [not recursive] : do "Single-digit dotted"
local compositions : list local compositions : list
list 0x1F100 {'zero.lnum'} WideWidth1 list 0x1F100 {'zero.lnum'} WideWidth1

View file

@ -29,6 +29,7 @@ arrowHeight = 1.50 # Height of arrows
contrast = 1.11111 # Stroke width contrast. contrast = 1.11111 # Stroke width contrast.
slopeAngle = 0 # slope angle, in degrees. slopeAngle = 0 # slope angle, in degrees.
derivedSlopeAngle = 10 # Slope angle of derived letters requiring italics
accent = 155 # Height of accent marks. accent = 155 # Height of accent marks.
accentx = 200 # Width of accent marks. accentx = 200 # Width of accent marks.