ETEX(1)
๐ NAME ๐
okay so this is the manual page for etex (etex - extended (plain) TeX) ๐ it lives in the General Commands Manual, so you know it's serious ๐ง
๐ซถ SYNOPSIS ๐ซถ
etex [options] [&format] [file|\commands]
๐ DESCRIPTION ๐
okay so etex runs the e-TeX typesetter on a file, and by default it makes file.dvi as the output ๐ if your file has no extension, .tex gets slapped onto the end automatically โจ you can also skip the filename and type a set of e-TeX commands instead, and the first one has to start with a backslash ๐ฅ
if you use an &format argument, e-TeX grabs a different set of precompiled commands from format.fmt ๐ฆ but honestly it's usually better to just use the -fmt format option instead ๐
e-TeX is the first real result of an international research & development project called the NTS Project ๐ it got started under the aegis of DANTE e.V. back in 1992 ๐ธ the whole goal is to keep the spirit and philosophy of TeX alive and kicking, while still respecting Knuth's wish that TeX should stay frozen ๐ง (respect, honestly)
e-TeX can run in two modes ๐ in compatibility mode it's supposed to be completely interchangeable with standard TeX ๐ซถ in extended mode a bunch of new primitives get added, which help with (among other things) bidirectional typesetting ๐ฅ
an extended mode format gets made by putting an asterisk (*) in front of the name of the source file for the format โญ
and e-TeX's handling of its command-line arguments is basically the same as the other TeX programs in the web2c implementation ๐
๐ OPTIONS ๐
okay this version of e-TeX understands the following command line options, so let's get into them ๐
-fmt formatโ use format as the format name, instead of the name e-TeX was called by or a%&line ๐ฆ-encโ turns on the encTeX extensions ๐ธ this only works together with-ini, and if you want the full documentation for them, checkhttp://www.olsak.net/enctex.html๐-etexโ turns on the e-TeX extensions โจ only works together with-ini๐-file-line-errorโ error messages come out asfile:line:error, which is pretty similar to how a lot of compilers print theirs ๐-no-file-line-errorโ nope, turns off thatfile:line:errorerror style ๐ซ-file-line-error-styleโ this is the old name for-file-line-error๐ต-halt-on-errorโ exits with an error code the moment an error shows up during processing ๐-helpโ prints a help message and then exits ๐ง-iniโ starts in INI mode, which is what you use to dump formats ๐ INI mode can typeset, but no format is preloaded, so basic stuff like setting catcodes might be needed ๐ซ-interaction modeโ sets the interaction mode ๐ the mode can bebatchmode,nonstopmode,scrollmode, orerrorstopmodeโจ they mean the same thing as the matching\commands๐-ipcโ sends DVI output to a socket as well as the usual output file ๐ whether you actually get this option is up to the installer ๐คทโโ๏ธ-ipc-startโ same as-ipc, but it also starts the server on the other end ๐ again, the installer decides if this one is available ๐-jobname nameโ uses name as the job name, instead of making one up from the input file's name ๐ฆ-kpathsea-debug bitmaskโ sets the path searching debugging flags based on the bitmask ๐ง for the details, go read the Kpathsea manual ๐-mktex fmtโ turns on mktexfmt, where fmt has to be eithertexortfm๐ ๏ธ-mltexโ turns on the MLTeX extensions ๐ only works together with-iniโจ-no-mktex fmtโ turns mktexfmt off, where fmt has to be eithertexortfm๐ โโ๏ธ-output-comment stringโ uses string in the DVI file comment instead of the date ๐-output-directory directoryโ writes output files into directory instead of the current directory ๐ input files get looked up in directory first, and then along the normal search path ๐-parse-first-lineโ if the first line of the main input file starts with%&, it gets parsed to look for a dump name or a-translate-fileoption ๐-no-parse-first-lineโ disables parsing that first line of the main input file ๐ โโ๏ธ-progname nameโ pretends to be the program name ๐ญ this changes both the format that gets used and the search paths ๐ค๏ธ-recorderโ turns on the filename recorder ๐ผ it leaves a trail of every file opened for input and output in a file with the.flsextension ๐ต๏ธโโ๏ธ-shell-escapeโ enables the\write18{command}construct ๐ป the command can be any shell command ๐ณ this construct is normally disallowed for security reasons, so be careful bestie ๐-no-shell-escapeโ disables the\write18{command}construct, even if the texmf.cnf file has it turned on โ-src-specialsโ inserts source specials into the DVI file โจ-src-specials whereโ inserts source specials in certain places of the DVI file ๐ where is a comma-separated value list, and the options arecr,display,hbox,math,par,parent, orvbox๐งฉ-translate-file tcxnameโ uses the tcxname translation table to set the mapping of input characters and the re-mapping of output characters ๐-default-translate-file tcxnameโ basically-translate-file, except a%&line is allowed to overrule this setting ๐-versionโ prints version information and exits ๐
๐ ENVIRONMENT ๐
okay so for the precise details on how the environment variables get used, check out the Kpathsearch library documentation (the Path specifications' node) ๐ and if you want to query what the variables are set to, the kpsewhich` utility is your bestie ๐
โ ๏ธ one caveat!! in most e-TeX formats, you cannot use~in a filename you give directly to e-TeX ๐ญ that's because~is an active character, so it gets expanded instead of being treated as part of the filename ๐ other programs, like Metafont, don't have this problem ๐
TEXMFOUTPUTโ normally e-TeX puts its output files in the current directory ๐ if an output file can't be opened there, it tries the directory set inTEXMFOUTPUTinstead ๐ซถ there's no default value for that variable ๐คทโโ๏ธ for example, if you sayetex paperand the current directory isn't writable, andTEXMFOUTPUTis/tmp, e-TeX tries to create/tmp/paper.log(and/tmp/paper.dvi, if any output is produced) ๐ฆTEXMFOUTPUTalso gets checked for input files, since TeX often generates files that need to be read later ๐ for input, no suffixes (like ``.tex'') get added by default, so the input name is just checked exactly as given โจTEXINPUTSโ the search path for\inputand\openinfiles ๐ค๏ธ it should start with., so user files get found before system files ๐ an empty path component gets replaced with the paths defined in the texmf.cnf file ๐งฉ for example, settingTEXINPUTSto.:/home/user/tex:prepends the current directory and ``/home/user/tex'' to the standard search path ๐TEXFORMATSโ the search path for format files ๐ฆTEXPOOLโ the search path for etex internal strings ๐งตTEXEDITโ the command template for switching to an editor โ๏ธ the default, usuallyvi, gets set when e-TeX is compiled ๐ ๏ธTFMFONTSโ the search path for font metric (.tfm) files ๐ค
๐ FILES ๐
the location of the files below varies from system to system, so use the kpsewhich utility to find where they live ๐
etex.poolโ text file with e-TeX's internal strings ๐งตtexfonts.mapโ filename mapping definitions ๐บ๏ธ*.tfmโ metric files for e-TeX's fonts ๐ค*.fmtโ predigested e-TeX format (.fmt) files ๐ฆ
๐ NOTES ๐
okay so starting with version 1.40, pdfTeX incorporates the e-TeX extensions ๐ which means in this installation eTeX might just be a symbolic link to pdfTeX ๐ see pdftex(1) for that one ๐ซถ also, this manual page is not meant to be exhaustive ๐ the complete documentation for this version of e-TeX lives in the info manual Web2C: A TeX implementation ๐
๐ BUGS ๐
this version of e-TeX implements a bunch of optional extensions ๐ but honestly, many of them conflict to a greater or lesser extent with the definition of e-TeX ๐ฌ when those extensions are enabled, the banner printed at startup changes from e-TeX to e-TeXk ๐
โ ๏ธ this version of e-TeX doesn't trap arithmetic overflow when dimensions get added or subtracted ๐ญ it's rare, but when it happens the generated DVI file will be invalid ๐
๐ฆ SEE ALSO ๐ฆ
๐ AUTHORS ๐
e-TeX was developed by Peter Breitenlohner and the NTS team ๐ซถ Peter later kept developing it outside of the team ๐ธ
TeX was designed by Donald E. Knuth, who implemented it using his Web system for Pascal programs ๐ it was ported to Unix at Stanford by Howard Trickey, and at Cornell by Pavel Curtis ๐ง the version that comes with the Unix TeX distribution now is the one generated by the Web to C system (web2c), which was originally written by Tomas Rokicki and Tim Morgan ๐
the encTeX extensions were written by Petr Olsak โจ
that's the whole tea, bestie!! ๐ this page is from Web2C 2015, last touched 1 March 2011, and it's the ETEX(1) page ๐ ๐ love you, go be a main character ๐ฆ๐
๐ฆ where this page comes from
- arch rolling: texlive-doc 2026.1-1 ยท GPL
- centos-stream 10: texlive-etex 13:20240311-6.el10 ยท Knuth-CTAN
- centos-stream 9: texlive-etex 9:20200406-26.el9 ยท Knuth
- debian bookworm: texlive-base 2022.20230122-3
- debian trixie: texlive-base 2024.20250309-1
- fedora 43: texlive-etex 11:svn66203-80.fc43 ยท Knuth-CTAN
- fedora 44: texlive-etex 12:svn73850-9.fc44 ยท Knuth-CTAN
- fedora 44: texlive-etex 12:svn77830-11.fc44 ยท Knuth-CTAN
- opensuse-leap 16.0: texlive-etex-doc 2025.221.svn73850-160000.3.1 ยท SUSE-TeX
- ubuntu jammy: texlive-base 2021.20220204-1
- ubuntu noble: texlive-base 2023.20240207-1
- ubuntu questing: texlive-base 2024.20250309-1
- ubuntu resolute: texlive-base 2025.20260124-1
- ubuntu stonking: texlive-base 2026.20260711-2
- ๐ girlified by anthropic/claude-haiku-5.5 on : a language model's rewrite of the original, under its terms