cormullion / juliamono

repository for JuliaMono, a monospaced font with reasonable Unicode support.
https://juliamono.netlify.app/
SIL Open Font License 1.1
1.42k stars 29 forks source link

Combining characters with lower case j doesn't always render the combining character for some glyphs. #199

Closed toebes closed 8 months ago

toebes commented 10 months ago

I really like the font! Great job there. However, I'm finding that some of the combining characters don't appear to work with the lower case letter j.

In this case I am using it as a webfont for the Codebusters website when generating a Baconian cipher. However, for some of the combining glyphs, it simply doesn't render for the letter j only with the JuliaMono font. I've pasted the list below and included a screen snapshot to show how it renders both with JuliaMono and with Courier New. I considered that it might be related to descenders and included the letter y to show that it is specific to the letter j. Unfortunately I can't make the bug report here use the font and github's mono font does appear to render it correctly.

GRAVE BELOW \u0316 - JuliaMono: J̖i̖j̖k̖y̖ Other:J̖i̖j̖k̖y̖
ACUTE BELOW \u0317 - JuliaMono: J̗i̗j̗k̗y̗ Other:J̗i̗j̗k̗y̗
CIRCUMFLEX BELOW \u032d - JuliaMono: J̭i̭j̭k̭y̭ Other:J̭i̭j̭k̭y̭
TILDE BELOW \u0330 - JuliaMono: J̰ḭj̰k̰y̰ Other:J̰ḭj̰k̰y̰
MACRON BELOW \u0331 - JuliaMono: J̱i̱j̱ḵy̱ Other:J̱i̱j̱ḵy̱
BREVE BELOW \u032e - JuliaMono: J̮i̮j̮k̮y̮ Other:J̮i̮j̮k̮y̮
INVERTED BREVE BELOW \u032f - JuliaMono: J̯i̯j̯k̯y̯ Other:J̯i̯j̯k̯y̯
DOT BELOW \u0323 - JuliaMono: J̣ịj̣ḳỵ Other:J̣ịj̣ḳỵ
DIAERESIS BELOW \u0324 - JuliaMono: J̤i̤j̤k̤y̤ Other:J̤i̤j̤k̤y̤
RING BELOW \u0325 - JuliaMono: J̥i̥j̥k̥y̥ Other:J̥i̥j̥k̥y̥
CARON BELOW \u032c - JuliaMono: J̬i̬j̬k̬y̬ Other:J̬i̬j̬k̬y̬
VERTICAL LINE BELOW \u0329 - JuliaMono: J̩i̩j̩k̩y̩ Other:J̩i̩j̩k̩y̩
DOUBLE VERTICAL LINE BELOW \u0348 - JuliaMono: J͈i͈j͈k͈y͈ Other:J͈i͈j͈k͈y͈
COMMA BELOW \u0326 - JuliaMono: J̦i̦j̦k̦y̦ Other:J̦i̦j̦k̦y̦
LEFT TACK BELOW \u0318 - JuliaMono: J̘i̘j̘k̘y̘ Other:J̘i̘j̘k̘y̘
RIGHT TACK BELOW \u0319 - JuliaMono: J̙i̙j̙k̙y̙ Other:J̙i̙j̙k̙y̙
UP TACK BELOW \u031d - JuliaMono: J̝i̝j̝k̝y̝ Other:J̝i̝j̝k̝y̝
DOWN TACK BELOW \u031e - JuliaMono: J̞i̞j̞k̞y̞ Other:J̞i̞j̞k̞y̞
MINUS SIGN BELOW \u0320 - JuliaMono: J̠i̠j̠k̠y̠ Other:J̠i̠j̠k̠y̠
LOW LINE \u0332 - JuliaMono: J̲i̲j̲k̲y̲ Other:J̲i̲j̲k̲y̲
DOUBLE LOW LINE \u0333 - JuliaMono: J̳i̳j̳k̳y̳ Other:J̳i̳j̳k̳y̳
RIGHT HALF RING BELOW \u0339 - JuliaMono: J̹i̹j̹k̹y̹ Other:J̹i̹j̹k̹y̹
EQUALS SIGN BELOW \u0347 - JuliaMono: J͇i͇j͇k͇y͇ Other:J͇i͇j͇k͇y͇
LEFT ANGLE BELOW \u0349 - JuliaMono: J͉i͉j͉k͉y͉ Other:J͉i͉j͉k͉y͉
LEFT ARROWHEAD BELOW \u0354 - JuliaMono: J͔i͔j͔k͔y͔ Other:J͔i͔j͔k͔y͔
RIGHT ARROWHEAD BELOW \u0355 - JuliaMono: J͕i͕j͕k͕y͕ Other:J͕i͕j͕k͕y͕
RIGHT ARROWHEAD AND UP \u0356 - JuliaMono: J͖i͖j͖k͖y͖ Other:J͖i͖j͖k͖y͖
ASTERISK BELOW \u0359 - JuliaMono: J͙i͙j͙k͙y͙ Other:J͙i͙j͙k͙y͙
LEFT HALF RING BELOW \u031c - JuliaMono: J̜i̜j̜k̜y̜ Other:J̜i̜j̜k̜y̜
PLUS SIGN BELOW \u031f - JuliaMono: J̟i̟j̟k̟y̟ Other:J̟i̟j̟k̟y̟
BRIDGE BELOW \u032a - JuliaMono: J̪i̪j̪k̪y̪ Other:J̪i̪j̪k̪y̪
INVERTED DOUBLE ARCH BELOW \u032b - JuliaMono: J̫i̫j̫k̫y̫ Other:J̫i̫j̫k̫y̫
INVERTED BRIDGE BELOW \u033a - JuliaMono: J̺i̺j̺k̺y̺ Other:J̺i̺j̺k̺y̺
SQUARE BELOW \u033b - JuliaMono: J̻i̻j̻k̻y̻ Other:J̻i̻j̻k̻y̻
SEAGULL BELOW \u033c - JuliaMono: J̼i̼j̼k̼y̼ Other:J̼i̼j̼k̼y̼
LEFT RIGHT ARROW BELOW \u034d - JuliaMono: J͍i͍j͍k͍y͍ Other:J͍i͍j͍k͍y͍
UPWARDS ARROW BELOW \u034e - JuliaMono: J͎i͎j͎k͎y͎ Other:J͎i͎j͎k͎y͎
DOUBLE RING BELOW \u035a - JuliaMono: J͚i͚j͚k͚y͚ Other:J͚i͚j͚k͚y͚

image

cormullion commented 10 months ago

I'll look into it! What version of the font (check glyph U+E843 perhaps ) and what text environment are you working in?

toebes commented 10 months ago

image Running in Chrome on Windows 11 (rendered from a web page). Problem also shows up in Word.

cormullion commented 10 months ago

This looks like one of those weird situations where it's hard to know what the problem is and thus how to fix it. I can and can't reproduce it, depending on what application I'm using (MacOS only though).

Safari browser is quite happy, as long as the CSS line height is sufficient:

Screenshot 2024-01-08 at 09 45 01

But Firefox browser refuses point blank:

Screenshot 2024-01-08 at 09 58 49

In a Terminal, it also looks OK:

Screenshot 2024-01-08 at 09 46 26

although some other terminals are unhappy (eg Kitty):

Screenshot 2024-01-08 at 09 47 55

Some text editors are quite happy (eg CotEditor):

Screenshot 2024-01-08 at 10 00 27

Others try their best but don't really get it right (eg BBEdit):

Screenshot 2024-01-08 at 10 01 39

I speculate that, because the "j" + "mark" is pushing the limits of the bottom of the font, some applications will just say "No", particularly if the current line height tells them to. (Some applications let lines overlap, others don't.)

Also I discovered that the "j" character is not considered by font building apps to have any mark attachments at all, so the "j" in JuliaMono doesn't by default have a bottom mark anchor (although it's easy to add). It's therefore possible that some applications don't bother to do marks on "j" glyphs. I don't know for sure - seems odd that they would check, to be honest.

Adding a bottom anchor is easy (can be in the next release) but might not always change the geometry problem or persuade applications to show what they don't want to. JuliaMono has long descenders, and it's not easy to change them.

So, short of increasing the available line height to give some encouragement to applications that need it, I can't see a quick solution.

toebes commented 10 months ago

I've done some more playing and interestingly enough, on the Mac with Chrome the j renders correctly. I've tried tweaking line height on Windows, but it doesn't seem to have an impact. However, I did observe something. It isn't that the annotation isn't there, but the annotation is shifted off to the right. Here's an example that it is obvious with:

M̳j̳y̳y̳j̳

image

And another: M̲jy̲yj̲

image

cormullion commented 10 months ago

It's all quite frustrating for font makers and font users... I hope you can find a solution - perhaps another font - that works more reliably for you!

toebes commented 10 months ago

But your font is excellent!
For now, my code just makes sure not to pick those specific descenders when using the letter j. I'm happy to try anything else if you get any insights!

github-actions[bot] commented 9 months ago

This issue has been open for 30 days with no activity.

github-actions[bot] commented 8 months ago

This issue was closed because it has been inactive for 14 days since being marked as stale.