1FMTUTIL(1) User Commands FMTUTIL(1)
2
3
4
6 fmtutil - manage TeX formats and Metafont bases, per-user
7 fmtutil-sys - manage TeX formats and Metafont bases, system-wide
8 mktexfmt - create a TeX format or Metafont base
9
11 fmtutil [-user|-sys] [OPTION] ... [COMMAND]
12 fmtutil-sys [OPTION] ... [COMMAND]
13 fmtutil-user [OPTION] ... [COMMAND]
14 mktexfmt FORMAT.fmt|BASE.base|FMTNAME.EXT
15
17 fmtutil version r53340 (2020-01-07 00:55:32 +0100)
18
19 Rebuild and manage TeX fmts and Metafont bases, collectively called
20 "formats" here. (MetaPost no longer uses the past-equivalent "mems".)
21
22 If the command name ends in mktexfmt, only one format can be created.
23 The only options supported are --help and --version, and the command
24 line must be either a format name, with extension, or a plain name that
25 is passed as the argument to --byfmt (see below). The full name of the
26 generated file (if any) is written to stdout, and nothing else.
27
28 If not operating in mktexfmt mode, exactly one command must be given,
29 extensions should generally not be specified, no non-option arguments
30 are allowed, and multiple formats can be generated, as follows.
31
32 By default, the return status is zero if all formats requested are suc‐
33 cessfully built, else nonzero.
34
36 --sys use TEXMFSYS{VAR,CONFIG}
37
38 --user use TEXMF{VAR,CONFIG}
39
40 --cnffile FILE
41 read FILE instead of fmtutil.cnf (can be given multiple times,
42 in which case all the files are used)
43
44 --fmtdir DIR
45 write formats under DIR instead of TEXMF[SYS]VAR
46
47 --no-engine-subdir
48 don't use engine-specific subdir of the fmtdir
49
50 --no-error-if-no-format exit successfully if no format is selected
51
52 --no-error-if-no-engine=ENGINE1,ENGINE2,...
53 exit successfully even if a required engine
54
55 is missing, if it is included in the list.
56
57 --no-strict
58 exit successfully even if a format fails to build
59
60 --nohash
61 don't update ls-R files
62
63 --recorder
64 pass the -recorder option and save .fls files
65
66 --quiet
67 be silent
68
69 --catcfg
70 (does nothing, exists for compatibility)
71
72 --dolinks
73 (does nothing, exists for compatibility)
74
75 --force
76 (does nothing, exists for compatibility)
77
78 --test (does nothing, exists for compatibility)
79
80 Commands:
81 --all recreate all format files
82
83 --missing
84 create all missing format files
85
86 --refresh
87 recreate only existing format files
88
89 --byengine ENGINE
90 (re)create formats built with ENGINE
91
92 --byfmt FORMAT
93 (re)create format FORMAT
94
95 --byhyphen HYPHENFILE
96 (re)create formats that depend on HYPHENFILE
97
98 --enablefmt
99 FORMAT[/ENGINE] enable FORMAT, as built with ENGINE
100
101 --disablefmt FORMAT[/ENGINE] disable FORMAT, as built with ENGINE
102 If multiple formats have the same name and
103
104 different engines, /ENGINE specifier is required.
105
106 --listcfg
107 list (enabled and disabled) configurations, filtered to avail‐
108 able formats
109
110 --showhyphen FORMAT
111 print name of hyphen file for FORMAT
112
113 --version
114 show version information and exit
115
116 --help show this message and exit
117
119 Explanation of trees and files normally used:
120
121 If --cnffile is specified on the command line (possibly multiple
122 times), its value(s) are used. Otherwise, fmtutil reads all the
123 fmtutil.cnf files found by running `kpsewhich -all fmtutil.cnf',
124 in the order returned by kpsewhich. Files passed in via --cnf‐
125 file are first tried to be loaded directly, and if not found and
126 the file names don't contain directory parts, are searched via
127 kpsewhich.
128
129 In any case, if multiple fmtutil.cnf files are found, all the
130 format definitions found in all the fmtutil.cnf files are
131 merged.
132
133 Thus, if fmtutil.cnf files are present in all trees, and the
134 default layout is used as shipped with TeX Live, the following
135 files are read, in the given order.
136
137 For fmtutil-sys:
138 TEXMFSYSCONFIG $TEXLIVE/YYYY/texmf-config/web2c/fmtutil.cnf
139 TEXMFSYSVAR $TEXLIVE/YYYY/texmf-var/web2c/fmtutil.cnf
140 TEXMFLOCAL $TEXLIVE/texmf-local/web2c/fmtutil.cnf
141 TEXMFDIST $TEXLIVE/YYYY/texmf-dist/web2c/fmtutil.cnf
142
143 For fmtutil-user:
144 TEXMFCONFIG $HOME/.texliveYYYY/texmf-config/web2c/fmtutil.cnf
145 TEXMFVAR $HOME/.texliveYYYY/texmf-var/web2c/fmtutil.cnf
146 TEXMFHOME $HOME/texmf/web2c/fmtutil.cnf
147 TEXMFSYSCONFIG $TEXLIVE/YYYY/texmf-config/web2c/fmtutil.cnf
148 TEXMFSYSVAR $TEXLIVE/YYYY/texmf-var/web2c/fmtutil.cnf
149 TEXMFLOCAL $TEXLIVE/texmf-local/web2c/fmtutil.cnf
150 TEXMFDIST $TEXLIVE/YYYY/texmf-dist/web2c/fmtutil.cnf
151
152 (where YYYY is the TeX Live release version).
153
154 According to the actions, fmtutil might write to one of the
155 given files or create a new fmtutil.cnf, described further
156 below.
157
158 Where formats are written:
159
160 By default, format files are (re)written in TEXMFSYSVAR/ENGINE
161 by fmtutil-sys, and TEXMFVAR/ENGINE by fmtutil, where /ENGINE is
162 a subdirectory named for the engine used, such as "pdftex".
163
164 If the --fmtdir=DIR option is specified, DIR is used instead of
165 TEXMF[SYS]VAR, but the /ENGINE subdir is still used by default.
166
167 In any case, if the --no-engine-subdir option is specified, the
168 /ENGINE subdir is omitted.
169
170 Where configuration changes are saved:
171
172 If config files are given on the command line, then the first
173 one given will be used to save any changes from --enable or
174 --disable. If the config files are taken from kpsewhich output,
175 then the algorithm is more complex:
176
177 1) If $TEXMFCONFIG/web2c/fmtutil.cnf or $TEXMFHOME/web2c/fmtu‐
178 til.cnf appears in the list of used files, then the one listed
179 first by kpsewhich --all (equivalently, the one returned by
180 kpsewhich fmtutil.cnf), is used.
181
182 2) If neither of the above two are present and changes are made,
183 a new config file is created in $TEXMFCONFIG/web2c/fmtutil.cnf.
184
185 In general, the idea is that if a given config file is not
186 writable, a higher-level one can be used. That way, the distri‐
187 bution's settings can be overridden system-wide using TEXMFLO‐
188 CAL, and system settings can be overridden again in a particular
189 user's TEXMFHOME.
190
191 Resolving multiple definitions of a format:
192
193 If a format is defined in more than one config file, then the
194 definition coming from the first-listed fmtutil.cnf is used.
195
196 Disabling formats:
197
198 fmtutil.cnf files with higher priority (listed earlier) can dis‐
199 able formats in lower priority (listed later) fmtutil.cnf files
200 by writing a line like
201
202 #! <fmtname> <enginename> <hyphen> <args>
203
204 in the higher-priority fmtutil.cnf file.
205 The #! must be at the
206
207 beginning of the line, with at least one space or tab afterward,
208 and there must be whitespace between each word on the list.
209
210 For example, you can disable the luajitlatex format by creating
211 the file $TEXMFCONFIG/web2c/fmtutil.cnf with the line
212
213 #! luajitlatex luajittex language.dat,language.dat.lua luala‐
214 tex.ini
215
216 (As it happens, the luajittex-related formats are precisely why
217 the --no-error-if-no-engine option exists, since luajittex can‐
218 not be compiled on all platforms.)
219
220 fmtutil-user (fmtutil -user) vs. fmtutil-sys (fmtutil -sys):
221
222 When fmtutil-sys is run or the command line option -sys is used,
223 TEXMFSYSCONFIG and TEXMFSYSVAR are used instead of TEXMFCONFIG
224 and TEXMFVAR, respectively. This is the primary difference
225 between fmtutil-sys and fmtutil-user.
226
227 See http://tug.org/texlive/scripts-sys-user.html for details.
228
229 Other locations may be used if you give them on the command
230 line, or these trees don't exist, or you are not using the orig‐
231 inal TeX Live.
232
233 Supporting development binaries
234
235 If an engine name ends with "-dev", formats are created in the
236 respective directory with the -dev stripped. This allows for
237 easily running development binaries in parallel with the
238 released binaries.
239
241 Report bugs to: tex-live@tug.org
242 TeX Live home page: <http://tug.org/texlive/>
243
244
245
246TeX Live March 2020 FMTUTIL(1)