Maxim Nikulin writes: > I think that low level implementation in browser or in some underlying > library is much faster > > <dl> > <dt>LM Roman 12</dt> > <dd style="font-family: 'LM Roman 12'">abc абв…с</dd> > <dt>LM Roman 12, CMU Serif</dt> > <dd style="font-family: 'LM Roman 12', 'CMU Serif'">abc абв…с</dd> > </dl>
They are two different scenarios: web publishing and book typesetting (Donald Knuth in the TexBook refers to TeX as: "...a new typesetting system intended for the creation of beautiful books [...] you will be telling a computer exactly how the manuscript is to be transformed into pages whose typographic quality is comparable to that of the world's finest printers"). LuaTeX, like the rest of TeX engines, is a highly refined typesetting system, the digital evolution of the mechanical printing press and the art of typographers. Its goal is printing press instead of web browsers. All decisions regarding the chosen typefaces should be taken before. When I prepare a book design, all those decisions I take them before, and it takes time to test and calibrate typefaces: choose the font family, or font family groups for certain languages. Mixing fonts is not trivial for professional typography. This is not the scenario you describe, nor is it necessary to ensure readability in multiple browsers with "fallback fonts" for missed glyphs. In TeX ecosystem it makes no sense (it can be done, anyway[1]) to add fallback fonts to ensure all characters are rendered by their corresponding glyphs. I insist: they are two orthogonal scenarios and two diametrically opposed design concepts. If the font I want to use lacks certain glyphs, I can take various decisions, depending on the glyphs I need. If I lack only certain diacritics, often with some Lua code it is enough for me (some Lua is also usually useful to adjust the position of combining diacritical marks without editing the font with fontforge and add a 'mark' or 'marktomark' tag). But, generally, if a font doesn't have the glyphs I need, I just don't use it. The same is true in the case of small caps. If a font does not have small caps, you should never use those horrible and illegible synthesized small caps from DTP programs ... In LuaTeX and XeTeX you can define at high level, for example, your own hybrid font families. If I want to use the GFS Porson as italics from another font, a Didot typeface for example, I can do this: \newfontfamily\mygreek{GFS Didot Classic} [Script=Greek,ItalicFont=GFS Porson,ItalicFeatures={Scale=.90}] \emfontdeclare{\itshape,\upshape} \mygreek γίγνονται παῖδες δύο, \emph{πρεσβύτερος} μὲν Ἀρταξέρξης [1] If you want to have fallback fonts, you can also do it in LuaTeX by adding some Lua code: https://tex.stackexchange.com/questions/514940/define-fallback-font-for-missing-glyphs-in-lualatex (anyway, I insist that combining glyphs is something you must be done with care) Best regards, Juan Manuel