What are the roles of each of these commands? What is the good command to create a new format ?


The initex command is on a modern system identical to tex -ini: I would favour the latter. This calls TeX in 'initex mode', which is the only way that TeX can be run to create a format as it enables the \dump primitive. Making a format 'by hand' is a simple case of running

tex -ini <filename>

where <filename> should be for a format file. For example, to build a LaTeX2e format

tex -ini latex.ltx

If you want to build a format with the e-TeX extensions enabled, you prepend a * to the file name (this requires appropriate shell escaping), and of course use a TeX derivative which has them. For example, for the LaTeX3 test material, I occasionally build a 'minimal format' with

pdftex -ini "*l3format.ltx"

Running tex -fmt requires a format name as an argument, and is used to get TeX to use whatever format you've created. So

tex -fmt=latex

would choose the LaTeX2e format (either the one I just created or the standard one installed in the main TeX tree). That will not be identical to running latex on a modern system, as the latter uses pdfTeX, so more like

pdftex -fmt=latex

Finally, fmtutil is a TeX Live tool for managing and building the large number of formats that a full TeX system has. It is used to generate the formats stored in the main TeX tree, which are used by default. For example, separate formats are needed for tex, pdftex, latex, pdflatex, xetex, xelatex, ..., and you would not want to have to change those all by hand. However, if you are building your own custom format then it's not needed.

  • In makefmts.sh script in cyrplain package, there is a command pdftex -ini -fmt=cyrpdftex -progname=pdftex cyrtex.ini. Could you tell what it is supposed to do? Is the use of -fmt here an error? When the script is run, no cyrpdftex.fmt exists, and the script produces a file named symply cyrtex.fmt. Is there a way to specify to tex -ini the desired output file name? – Alexey Jul 7 '15 at 14:12

Another way to use initex is as a pure TeX. I use luatex --ini for my software because I don't need any extra macro definitions or a format such as plain.tex.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.