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 r43794 (2017-04-15 02:12:54 +0200)
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.
125
126              In any case, if multiple fmtutil.cnf files are  found,  all  the
127              format  definitions  found  in  all  the  fmtutil.cnf  files are
128              merged.
129
130              Thus, if fmtutil.cnf files are present in  all  trees,  and  the
131              default  layout  is used as shipped with TeX Live, the following
132              files are read, in the given order.
133
134              For fmtutil-sys:
135              TEXMFSYSCONFIG $TEXLIVE/YYYY/texmf-config/web2c/fmtutil.cnf
136              TEXMFSYSVAR    $TEXLIVE/YYYY/texmf-var/web2c/fmtutil.cnf
137              TEXMFLOCAL     $TEXLIVE/texmf-local/web2c/fmtutil.cnf
138              TEXMFDIST      $TEXLIVE/YYYY/texmf-dist/web2c/fmtutil.cnf
139
140              For fmtutil-user:
141              TEXMFCONFIG    $HOME/.texliveYYYY/texmf-config/web2c/fmtutil.cnf
142              TEXMFVAR       $HOME/.texliveYYYY/texmf-var/web2c/fmtutil.cnf
143              TEXMFHOME      $HOME/texmf/web2c/fmtutil.cnf
144              TEXMFSYSCONFIG $TEXLIVE/YYYY/texmf-config/web2c/fmtutil.cnf
145              TEXMFSYSVAR    $TEXLIVE/YYYY/texmf-var/web2c/fmtutil.cnf
146              TEXMFLOCAL     $TEXLIVE/texmf-local/web2c/fmtutil.cnf
147              TEXMFDIST      $TEXLIVE/YYYY/texmf-dist/web2c/fmtutil.cnf
148
149              (where YYYY is the TeX Live release version).
150
151              According to the actions, fmtutil might  write  to  one  of  the
152              given  files  or  create  a  new  fmtutil.cnf, described further
153              below.
154
155       Where formats are written:
156
157              By default, format files are (re)written  in  TEXMFSYSVAR/ENGINE
158              by fmtutil-sys, and TEXMFVAR/ENGINE by fmtutil, where /ENGINE is
159              a subdirectory named for the engine used, such as "pdftex".
160
161              If the --fmtdir=DIR option is specified, DIR is used instead  of
162              TEXMF[SYS]VAR, but the /ENGINE subdir is still used by default.
163
164              In  any case, if the --no-engine-subdir option is specified, the
165              /ENGINE subdir is omitted.
166
167       Where configuration changes are saved:
168
169              If config files are given on the command line,  then  the  first
170              one  given  will  be  used  to save any changes from --enable or
171              --disable.  If the config files are taken from kpsewhich output,
172              then the algorithm is more complex:
173
174              1)  If  $TEXMFCONFIG/web2c/fmtutil.cnf or $TEXMFHOME/web2c/fmtu‐
175              til.cnf appears in the list of used files, then the  one  listed
176              first  by  kpsewhich  --all  (equivalently,  the one returned by
177              kpsewhich fmtutil.cnf), is used.
178
179              2) If neither of the above two are present and changes are made,
180              a new config file is created in $TEXMFCONFIG/web2c/fmtutil.cnf.
181
182              In  general,  the  idea  is  that  if a given config file is not
183              writable, a higher-level one can be used.  That way, the distri‐
184              bution's  settings  can be overridden system-wide using TEXMFLO‐
185              CAL, and system settings can be overridden again in a particular
186              user's TEXMFHOME.
187
188       Resolving multiple definitions of a format:
189
190              If  a  format  is defined in more than one config file, then the
191              definition coming from the first-listed fmtutil.cnf is used.
192
193       Disabling formats:
194
195              fmtutil.cnf files with higher priority (listed earlier) can dis‐
196              able  formats in lower priority (listed later) fmtutil.cnf files
197              by writing a line like
198
199              #! <fmtname> <enginename> <hyphen> <args>
200
201       in the higher-priority fmtutil.cnf file.
202              The #! must be at the
203
204              beginning of the line, with at least one space or tab afterward,
205              and there must be whitespace between each word on the list.
206
207              For  example, you can disable the luajitlatex format by creating
208              the file $TEXMFCONFIG/web2c/fmtutil.cnf with the line
209
210              #! luajitlatex  luajittex  language.dat,language.dat.lua  luala‐
211              tex.ini
212
213              (As  it happens, the luajittex-related formats are precisely why
214              the --no-error-if-no-engine option exists, since luajittex  can‐
215              not be compiled on all platforms.)
216
217       fmtutil-user (fmtutil -user) vs. fmtutil-sys (fmtutil -sys):
218
219              When fmtutil-sys is run or the command line option -sys is used,
220              TEXMFSYSCONFIG and TEXMFSYSVAR are used instead  of  TEXMFCONFIG
221              and  TEXMFVAR,  respectively.   This  is  the primary difference
222              between fmtutil-sys and fmtutil-user.
223
224              See http://tug.org/texlive/scripts-sys-user.html for details.
225
226              Other locations may be used if you  give  them  on  the  command
227              line, or these trees don't exist, or you are not using the orig‐
228              inal TeX Live.
229
230       Supporting development binaries
231
232              If an engine name ends with "-dev", formats are created  in  the
233              respective  directory  with  the -dev stripped.  This allows for
234              easily  running  development  binaries  in  parallel  with   the
235              released binaries.
236

REPORTING BUGS

238       Report bugs to: tex-live@tug.org
239       TeX Live home page: <http://tug.org/texlive/>
240
241
242
243TeX Live                           May 2017                         FMTUTIL(1)
Impressum