kontur
December 15, 2022, 1:45pm
1
I have set up some #exit and #entry anchors in some recurring components. For some reason some combinations of these components give the main glyph wrong sidebearings. With some instances they become 0 width, with others just odd cut-offs. I am using these same components in a bunch of glyphs, but only some are affected by this wrong width calculation; I struggle to see the logic when this happens.
Isn’t #exit - #entry supposed to use the sidebearings of the outermost components, and add the widths in between by simply connecting every #exit to the next component’s #entry ?
Some of the anchors I’ve set on the width extrema of the glyph but this should not matter, right? (Mid-way apply this logic to all, once the components automatically align everywhere correctly, no other reason)
See here:
Using version 3.1.2 (3149).
kontur
December 15, 2022, 2:02pm
2
Here is another. In this one the width of the composite glyph seems to be related to the first component’s width, but it’s not a 1=1 match either. #exit and #entry anchors set in all components.
Can you send me that file?
Set the _fehdotlessmedi.hehmedi.reh
to RTL. Or use a name that would trigger a RTL writing direction. Something like fehDotless-ar.medi.hehmedi.reh
.
1 Like
kontur
December 16, 2022, 10:21am
6
So is the logic here that the first part of the glyph name before any dot must match a unicode (or glyphdata name) with RTL? Could this ignore _part. and other prefixes (it does not, and thus collapses the component)? And this is only an issue if there is more than 2 components stringed together like this?
It is the -ar
part that triggers RTL
kontur
December 16, 2022, 12:19pm
8
Is it, though? I have an unencoded RTL script with custom glyph names from Glyphdata and it seems to be doing the right thing (at times). So what is this ambiguity that it gets it right most of the times, even when Glyphs has no idea about the glyphs or their direction, but then sometimes it does not, and in those cases some obscure name based logic forces the direction of the connections somehow?
kontur
December 16, 2022, 12:54pm
9
And one more, this one encoded.
The glyph that has components and gets 0’ed
The compontents with #entry and #exit anchors.
The glyph that contains the components need to be RTL. Not the pieces.
kontur
December 16, 2022, 2:23pm
11
U+10B03
is RTL, it’s the first glyph of the above screenshots, automatically aligned and collapsed to zero width, when it should not.
kontur
December 19, 2022, 1:35pm
13
Reason turned out to be that GlyphData.xml does not have avestan as RTL:
<glyph unicode="10B00" name="a-avestan" category="Letter" script="avestan" production="u10B00" description="AVESTAN LETTER A" />
<glyph unicode="10B01" name="aa-avestan" category="Letter" script="avestan" production="u10B01" description="AVESTAN LETTER AA" />
<glyph unicode="10B02" name="ao-avestan" category="Letter" script="avestan" production="u10B02" description="AVESTAN LETTER AO" />
<glyph unicode="10B03" name="aao-avestan" category="Letter" script="avestan" production="u10B03" description="AVESTAN LETTER AAO" />
<glyph unicode="10B04" name="an-avestan" category="Letter" script="avestan" production="u10B04" description="AVESTAN LETTER AN" />
<glyph unicode="10B05" name="aan-avestan" category="Letter" script="avestan" production="u10B05" description="AVESTAN LETTER AAN" />
<glyph unicode="10B06" name="ae-avestan" category="Letter" script="avestan" production="u10B06" description="AVESTAN LETTER AE" />
<glyph unicode="10B07" name="aee-avestan" category="Letter" script="avestan" production="u10B07" description="AVESTAN LETTER AEE" />
<glyph unicode="10B08" name="e-avestan" category="Letter" script="avestan" production="u10B08" description="AVESTAN LETTER E" />
<glyph unicode="10B09" name="ee-avestan" category="Letter" script="avestan" production="u10B09" description="AVESTAN LETTER EE" />
<glyph unicode="10B0A" name="o-avestan" category="Letter" script="avestan" production="u10B0A" description="AVESTAN LETTER O" />
<glyph unicode="10B0B" name="oo-avestan" category="Letter" script="avestan" production="u10B0B" description="AVESTAN LETTER OO" />
<glyph unicode="10B0C" name="i-avestan" category="Letter" script="avestan" production="u10B0C" description="AVESTAN LETTER I" />
<glyph unicode="10B0D" name="ii-avestan" category="Letter" script="avestan" production="u10B0D" description="AVESTAN LETTER II" />
<glyph unicode="10B0E" name="u-avestan" category="Letter" script="avestan" production="u10B0E" description="AVESTAN LETTER U" />
<glyph unicode="10B0F" name="uu-avestan" category="Letter" script="avestan" production="u10B0F" description="AVESTAN LETTER UU" />
<glyph unicode="10B10" name="ke-avestan" category="Letter" script="avestan" production="u10B10" description="AVESTAN LETTER KE" />
<glyph unicode="10B11" name="xe-avestan" category="Letter" script="avestan" production="u10B11" description="AVESTAN LETTER XE" />
<glyph unicode="10B12" name="xye-avestan" category="Letter" script="avestan" production="u10B12" description="AVESTAN LETTER XYE" />
<glyph unicode="10B13" name="xve-avestan" category="Letter" script="avestan" production="u10B13" description="AVESTAN LETTER XVE" />
<glyph unicode="10B14" name="ge-avestan" category="Letter" script="avestan" production="u10B14" description="AVESTAN LETTER GE" />
<glyph unicode="10B15" name="gge-avestan" category="Letter" script="avestan" production="u10B15" description="AVESTAN LETTER GGE" />
<glyph unicode="10B16" name="ghe-avestan" category="Letter" script="avestan" production="u10B16" description="AVESTAN LETTER GHE" />
<glyph unicode="10B17" name="ce-avestan" category="Letter" script="avestan" production="u10B17" description="AVESTAN LETTER CE" />
<glyph unicode="10B18" name="je-avestan" category="Letter" script="avestan" production="u10B18" description="AVESTAN LETTER JE" />
<glyph unicode="10B19" name="te-avestan" category="Letter" script="avestan" production="u10B19" description="AVESTAN LETTER TE" />
<glyph unicode="10B1A" name="the-avestan" category="Letter" script="avestan" production="u10B1A" description="AVESTAN LETTER THE" />
<glyph unicode="10B1B" name="de-avestan" category="Letter" script="avestan" production="u10B1B" description="AVESTAN LETTER DE" />
<glyph unicode="10B1C" name="dhe-avestan" category="Letter" script="avestan" production="u10B1C" description="AVESTAN LETTER DHE" />
<glyph unicode="10B1D" name="tte-avestan" category="Letter" script="avestan" production="u10B1D" description="AVESTAN LETTER TTE" />
<glyph unicode="10B1E" name="pe-avestan" category="Letter" script="avestan" production="u10B1E" description="AVESTAN LETTER PE" />
<glyph unicode="10B1F" name="fe-avestan" category="Letter" script="avestan" production="u10B1F" description="AVESTAN LETTER FE" />
<glyph unicode="10B20" name="be-avestan" category="Letter" script="avestan" production="u10B20" description="AVESTAN LETTER BE" />
<glyph unicode="10B21" name="bhe-avestan" category="Letter" script="avestan" production="u10B21" description="AVESTAN LETTER BHE" />
<glyph unicode="10B22" name="nge-avestan" category="Letter" script="avestan" production="u10B22" description="AVESTAN LETTER NGE" />
<glyph unicode="10B23" name="ngye-avestan" category="Letter" script="avestan" production="u10B23" description="AVESTAN LETTER NGYE" />
<glyph unicode="10B24" name="ngve-avestan" category="Letter" script="avestan" production="u10B24" description="AVESTAN LETTER NGVE" />
<glyph unicode="10B25" name="ne-avestan" category="Letter" script="avestan" production="u10B25" description="AVESTAN LETTER NE" />
<glyph unicode="10B26" name="nye-avestan" category="Letter" script="avestan" production="u10B26" description="AVESTAN LETTER NYE" />
<glyph unicode="10B27" name="nne-avestan" category="Letter" script="avestan" production="u10B27" description="AVESTAN LETTER NNE" />
<glyph unicode="10B28" name="me-avestan" category="Letter" script="avestan" production="u10B28" description="AVESTAN LETTER ME" />
<glyph unicode="10B29" name="hme-avestan" category="Letter" script="avestan" production="u10B29" description="AVESTAN LETTER HME" />
<glyph unicode="10B2A" name="yye-avestan" category="Letter" script="avestan" production="u10B2A" description="AVESTAN LETTER YYE" />
<glyph unicode="10B2B" name="ye-avestan" category="Letter" script="avestan" production="u10B2B" description="AVESTAN LETTER YE" />
<glyph unicode="10B2C" name="ve-avestan" category="Letter" script="avestan" production="u10B2C" description="AVESTAN LETTER VE" />
<glyph unicode="10B2D" name="re-avestan" category="Letter" script="avestan" production="u10B2D" description="AVESTAN LETTER RE" />
<glyph unicode="10B2E" name="le-avestan" category="Letter" script="avestan" production="u10B2E" description="AVESTAN LETTER LE" />
<glyph unicode="10B2F" name="se-avestan" category="Letter" script="avestan" production="u10B2F" description="AVESTAN LETTER SE" />
<glyph unicode="10B30" name="ze-avestan" category="Letter" script="avestan" production="u10B30" description="AVESTAN LETTER ZE" />
<glyph unicode="10B31" name="she-avestan" category="Letter" script="avestan" production="u10B31" description="AVESTAN LETTER SHE" />
<glyph unicode="10B32" name="zhe-avestan" category="Letter" script="avestan" production="u10B32" description="AVESTAN LETTER ZHE" />
<glyph unicode="10B33" name="shye-avestan" category="Letter" script="avestan" production="u10B33" description="AVESTAN LETTER SHYE" />
<glyph unicode="10B34" name="sshe-avestan" category="Letter" script="avestan" production="u10B34" description="AVESTAN LETTER SSHE" />
<glyph unicode="10B35" name="he-avestan" category="Letter" script="avestan" production="u10B35" description="AVESTAN LETTER HE" />
These all should be direction="RTL"
.
That is fixed in 3.2. But I was looking at a “_part…” glyph.
kontur
December 20, 2022, 7:44am
15
Yes, I suppose also “partials” might be good to string together with those #entry and #exit anchors, no? I guess renaming the partial to start with a RTL glyph’s name before the dot does the trick there?