Onyx uses their own sans-serif fonts in preference to Roboto (the standard by Android).
Those fonts are OnyxCustomFont-EN-Regular.otf and OnyxCustomFont-EN-Bold.otf
Internally, they are named "Source Hans Sans". Their use is indicated in /system/etc/fonts.xml
You may not have noticed anything goofy unless you have something that uses u2019 (right single quotation mark) which is sometimes used (wrongly, I think) for possessives or contractions.
The font generates a slanted squiggle, but then gives about 2 blank spaces to the right.
Has anybody run into this? Do you care? Do you feel like complaining?
Me, I'm just going to dump the Onyx fonts.
(The example was done in Libre Office on a PC using the Onyx font.)
I didn't encounter this issue, but yesterday I just "magisk-replaced" the Roboto fonts by another font and it worked ok! I used a package with all sorts of variations of Roboto.
You shouldn't goof around renaming fonts.
You should just edit /system/etc/fonts.xml and keep the fonts named what they are.
Fixed.
I hope the magisk font package is safe. What they’ve done is to rename the font to Roboto in all variations. So the font is named correctly in filename and font name
Quote Renate
You may not have noticed anything goofy unless you have something that uses u2019 (right single quotation mark) which is sometimes used (wrongly, I think) for possessives or contractions.
The font generates a slanted squiggle, but then gives about 2 blank spaces to the right.
I've seen
exactly that in many Onyx Boox video reviews, and chalked it up to horrific Latin text handling by non-western developers. It isn't related to justification. It is annoying that all reviewers completely fail to mention or perhaps even notice this.
Wikipedia suggests the use of U+2019 for possessives and contractions is preferred over U+0027 which for me has always been a "straight" apostrophe.
I'd report this to Onyx, because it really ruins their typography.
Most of you haven't noticed this because undoubtedly you've been wasting all your time reading books in your favorite (non-Onyx) font.
There is an additional problem with this whole setup. There are these RobotoFake.. fonts that are the first choice for a system sans-serif font. They have widths and kerning but no actual glyphs. I haven't run into this before but apparently they're in there for efficiency. Normally the second choice would be the normal Roboto... fonts. The way this should work is when doing layout or ellipsising. You ask Android, "How many pixels wide is 'my test message'?" Android consults RobotoFake... and says, "112 pixels exactly". You say, "Ok, I have room, draw it." Android needs the glyphs to draw, consults normal Roboto..., draws it, then says, "Hey that
was actually 112 pixels!" Unfortunately, Onyx made their fonts the second choice and even the widths of normal characters are not going to be the same as what RobotoFake... said. This could exhibit itself as even normal text not fitting (or maybe ellipsising?).
There are two clean ways of fixing this in /system/etc/fonts.xml:
- Get rid of Onyx and have RobotoFake, Roboto (I did this)
- Get rid of RobotoFake, Onyx, Roboto and have just YourFont
Remember, this is only for the system sans-serif font.
The additional example below has no space characters inserted.
I've created a Magisk Module to fix the unicode quote spacing issue:
https://github.com/sargunv/magisk-onyx-font-fix/The tweak eliminates RobotoFake, and sets the underlying fallback font family (mix of Roboto and OnyxCustomFont-EN) as the new default sans-serif.
If you've rooted your device, you can try installing that. Tested on a Leaf 2.