Hi Maxim, Maxim Nikulin writes:
> I do not know if new engines allows to get list of available fonts and > to choose a set of fonts with better coverage than lmodern. LuaTeX and XeTeX use harfbuzz as OpenType rendering engine. On LuaLaTeX and XeLaTeX you must use the fontspec package (https://www.ctan.org/pkg/fontspec) to load otf or ttf fonts and add opentype features. It is very powerful and its interface is very simple to use. XeTeX has access to system fonts. LuaTeX has access to both system fonts and any font you want to declare, simply by adding the path. For example: \setmainfont{Palatino Linotype}[Ligatures=NoCommon,Numbers=Lowercase] With LuaTeX you can also define new opentype features on the fly using scripts in Lua, via the function fonts.handlers.otf.addfeature For example, here I define a character substitution: \directlua{ fonts.handlers.otf.addfeature{ name = "mysub", type = "substitution", data = { periodcentered = "anoteleia", }, } } And here I add that feature to Linux Libertine font: \setmainfont{Linux Libertine O}[RawFeature=+mysub] For multilingual management I recommend using Babel instead of Polyglossia. You can, for example, assign with Babel families from fonts and language definitions to non-Latin scripts (Cyrillic, Greek, Devanagari, Arabic, etc.). For example \babelprovide[onchar=ids fonts,hyphenrules=russian]{russian} \babelprovide[onchar=ids fonts,hyphenrules=ancientgreek]{greek} \babelfont[russian]{rm}[% Numbers=Lowercase]{Linux Libertine O} \babelfont[greek]{rm}[% Numbers=Lowercase]{Old Standard} Best regards, Juan Manuel