summaryrefslogtreecommitdiff
path: root/macros/optex/base/fonts-preload.opm
blob: 8562da786c65a40098c0927183b90c0106143422 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
%% This is part of the OpTeX project, see http://petr.olsak.net/optex

\_codedecl \tenrm {Latin Modern fonts (EC) preloaded <2022-02-12>} % preloaded in format

\_ifx\fontspreload\_relax
   \_let\_tenrm=\_nullfont \_let\_tenbf=\_nullfont \_let\_tenit=\_nullfont
   \_let\_tenbi=\_nullfont \_let\_tentt=\_nullfont
\_else
   % Only few text fonts are preloaded:
   % allow missing fonts during format generation
   \_suppressfontnotfounderror=1
   \_font\_tenrm=ec-lmr10   % roman text
   \_font\_tenbf=ec-lmbx10  % boldface extended
   \_font\_tenit=ec-lmri10  % text italic
   \_font\_tenbi=ec-lmbxi10 % bold italic
   \_font\_tentt=ec-lmtt10  % typewriter
   \_suppressfontnotfounderror=0
\_fi

\_tenrm

\_public \tenrm \tenbf \tenit \tenbi \tentt ;

\_endcode %---------------------------------------------------

The format in Lua\TeX/ can download only non-Unicode fonts. Latin Modern EC is
loaded here. These fonts are totally unusable in LuaTeX when languages with out
of ASCII or ISO-8859-1 alphabets are used (for example Czech). We load only
a few 8bit fonts here especially for simple testing of the format.
But, if the user needs to do more serious work, he/she can
use `\fontfam` macro to load a selected font family of Unicode fonts.

We have a dilemma: when the Unicode fonts cannot be preloaded in the format then the basic
font set can be loaded by `\everyjob`. But why to load a set of fonts at the
beginning of every job when it is highly likely that the user will
load something completely different. Our decision is: there is a basic 8bit
font set in the format (for testing purposes only) and the user should load
a Unicode font family at beginning of the document.

The fonts selectors \`\tenrm`, \`\tenbf`, \`\tenit`, \`\tenbi`, \`\tentt`
are declared as `\public` here but only for backward compatibility. We don't
use them in the Font Selection System. But the protected versions of these
control sequences are used in the Font Selection System.

If the `*.tfm` files are missing during format generation then the format is
succesfully generated without any pre-loaded fonts. It doesn't matter if each
document processed by \OpTeX/ declares Unicode fonts. You can create such
fonts-less format anyway if you set \`\fontspreload` to `\relax` before
`\input optex.ini`, i.e.:
`luatex -ini '\let\fontspreload=\relax \input optex.ini'`

\_endinput

2022-02-12: \fontspreload added
2020-01-23: released