Trying to Use Noto Fonts Properly

Noto is an open font family backed by Google. I would like to use it in LibreOffice applications.

Noto includes a separate font file for each script; on this website, they document usage of the font family. However, it seems that they expect either me (the user) or the software to be able to change to a different font depending on the script in use (and continuing to set Latin punctuation in the Latin font).

To quote (I highlighted relevant portions of the text):

If you have text in another language, find the Noto font that supports that language, and use it together with the corresponding Sans or Serif main font. If your text uses multiple scripts, either the app or the person who typesets the text needs to switch between the different fonts. For example, Noto Sans Armenian only has Armenian-script letters. But Armenian text also contains digits, punctuation, it may also contain terms written in Latin or Cyrillic scripts, so you also need the main Noto Sans fonts.

Some apps can switch fonts automatically. For example in CSS, you can specify multiple font families in a stack, and the browser will use the next font if the previous font does not support the necessary characters. In other apps, like Microsoft Word or Adobe InDesign, you can define a separate character style for each script.

Currently, in LibreOffice I can set a single language and a single font family for Western text, CTL text, and Asian text.

How would I be able to define a separate font for each script, and have LibreOffice Writer (and preferably also Impress) switch between them automatically?

Note that the quote in your question tells you that MS Word allows to define own character style per script. Your following question implies that “script” of MS Word is equivalent to “script” as used on the Noto Fonts description (“Noto Sans Armenian only has Armenian-script letters. But Armenian text also contains digits, punctuation, it may also contain terms written in Latin or Cyrillic scripts”).

But at least for MS Word 2016, the only “scripts” available are “Latin”, “Asian”, “Complex”, and “all scripts”:

So it looks like the quote above is mixing the terms, or is confused about MS Word capabilities.

There is tdf#151215, which asks for what you describe.

IMHO, your question doesn’t address correctly the intellectual issue at stake. You’re trying to relate appearance to “significance” while the logical way is frim “significance” to appearance".

On one side, you have text written according to rules defining a writing system. A writing system is implemented in Unicode with the help of one or several Unicode script blocks.

You’re describing a situation where Google chose to simplify Unicode repartition across fonts and minimise total storage size. This is perfectly legitimate. However, an important item is missing. This spread will work transparently if there exists a “meta” font linking all partial fonts. With such a “meta” font there is no need to manually select the specific font for each character.

You can work around this flaw by creating character styles for the various languages you have in your document. But, since fonts are “minimal” and don’t cover uniquely the “corresponding” Unicode script and even less the real writing system, the workaround leads to excessive styles creation, making the whole idea unmanageable.

If you can, create the “meta” font with a utility like FontForge.