1FMTUTIL(1)                       User Commands                      FMTUTIL(1)
2
3
4

NAME

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

SYNOPSIS

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

DESCRIPTION

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

OPTIONS

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

ENVIRONMENT

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

REPORTING BUGS

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)
Impressum