Glyphs substitutions in Writer

I have question about single glyphs rendering in LO Writer.

I’m using LO 6.4.7.2 on MacOs 10.14.6.

I type a given Unicode Character, say the Greek letter “gamma” (U+3B3). What I see in my odt file is always the correct character, no matter whether the applied font has a specific glyph for that given character or not. In the latter case, the character is displayed in a sort of “default” or “system” font (similar to Arial and Helvetica, but apparently slightly bigger).

The question is: does this “default” appearance depend on LibreOffice, or on the operating system? In other words: if I share the file with someone who has another OS or another LO version, does he see exactly the same as I see? Or can it be that some difference – even slight – appears? And, if so: does it concern merely the viewing, or also printing/PDF exporting?

Just to clear the purpose of this question: I’m in a team preparing books for print and would like to avoid typeset getting messy if a file passes through different computers. Obviously, the problem does not regards concretely characters whithin words, like the γ chosen here merely as an example: in cases like that, we must of course use a font including the correspondant glyph… But the issue could concern some non-letter characters, e.g. black square (■ U+25A0) and white square (□ U+25A1), as well as some special spaces (such as EM space U+2003, Hair space U+200A, etc.) used in high-level typography, but not specifically designed in some fonts.

EDIT 2020-12-01
(explaining the reasons of ajlittoz’ Edit in his reply)

As ajlittoz states below, the missing glyph substitution an issue of font-rendering

Now: do you know what does happen if the same document, created on my Mac, goes to a collaborator using another OS (and so another renderer), he saves the document and sends it me back? Does he just sees something slightly different than me, but the next time I open the file on my computer the appearance for me is like the original one? Or is the change in some way saved within the file?

In the first case, it could be enough to decide that the file is sent for definitive print always by the same person who created it (or at least within the same OS).

For single characters like the black square I mentioned, though, a better possibility could be simply to define a custom style to apply to it, using an Open License font which has the glyph.

As a matter of fact, for PDFs we send for print or for end-users, we plan to embed fonts in them, so that it shouldn’t be an issue.

As far as I know, the problem can be managed in different layers.

Writer has a feature for substituting fonts when one is not installed on the computer. Modern fonts contain tables describing their “artistic family”, such as “serif”, “sans” or “script”. This can be used by LO to try an alternate font in the same “family”.

Fonts also declare the glyphs they implement but I don’t think Writer uses this table. The font renderer in the OS does to avoid as much as possible displaying the “missing character” glyph, usually a rectangle outline. How the font offering the glyph is chosen is internal to the font renderer and depends on the set of fonts installed.

Of course, character shape and font metrics can’t be exactly the same. The worst visible difference comes from the variation in the font metrics. The x-height is not exactly the same. So, even if the font advertises the same point size, the actual x-height may be quite different, causing a bad looking appearance (and you blame the font renderer for changing the point size which is inexact; only how the vertical dimension is spread between descender, x-height and ascender uses different proportions).

This glyph substitution will be done hopefully under all common OSes. But you can’t predict the precise result because it depends on displaying computer configuration. It concerns the final usage of the document: display or printing. When you export (in any format, ODF, PDF, …), the exact Unicode encoding is stored in the file. No matter what you do, this encoding won’t change. If the computer has the correct font, good. If it has not, well, a substitution is used and hope for the best.

I think that the “special spaces” are not a real problem because there is no glyph, only a spacing directive. I hope that font designers have provided these very simple characters. The only way to tell is to look at the font “dictionary” with a tool like FontForge.

During the preparation of the book, ensure that every computer of the team has the same fonts as all others.

For the end-reader (PDF or not), add a warning about unusual fonts you have chosen for aesthetic reason and urge the reader to install them. Try to choose fonts in the public domain; not all readers may be ready to pay for a license only for your book.

EDIT 1

As already mentioned, when you save your document, the original Unicode codepoints are recorded in the file plus the description of the formatting. The glyph substitution is done in the font renderer and LO receives no notification of it. Consequently, the file itself is not altered.

When it is opened on another computer, the aspect on screen may be different from yours but the same phenomenon happens: Writer gets no notification of the font renderer. Provided you always use the correct Unicode codepoint (and you don’t apply a manual substitution for a better-looking glyph among your installed fonts, thus inserting a semantically incorrect glyph, e.g. a mathematical symbol instead of the “equivalent” Greek letter), the file will be unchanged when opened back on the first computer.

It does not matter which computer send the .odt file.

If you intend to embed font, don’t do it in the .odt file when the document contains tables. A currently unfixed bug messes up table formatting in presence of embedded fonts. There is no issue with PDF.

To show the community your question has been answered, click the ✓ next to the correct answer, and “upvote” by clicking on the ^ arrow of any helpful answers. These are the mechanisms for communicating the quality of the Q&A on this site. Thanks!

In case you need clarification, edit your question (not an answer which is reserved for solutions) or comment the relevant answer.

Thanks @ajlittoz.
And sorry for having posted my secondary question as an answer instead of as a comment. Actually, your EDIT answers perfectly to it. Shall I just delete my answer? Or moving the content in a comment? Or editing the original question? I’m ready to do what you think the best for the future users who may read this thread.

What’s important for any future reader of this question is to understand why there is an edit in the answer. The “non answer” must then be kept in some way.

Since it is rather long, I’m afraid it overflows the 1000-character limit of a comment (not knowing either if a repost of a long answer keeps it in its entirety). The simplest thing is then to “edit” your “non-answer” to copy its full content. You then edit your question, adding a subtitle like EDIT yyyy-mm-dd and paste after it. You can then delete the “non-answer”.

Don’t forget to tick the check mark at top left of the answer to flag it as accepted. Click only once even if seemingly nothing happens. The mark will turn green after some time (may be long under bizarre circumstances).

Done, thanks again!