HITEX(1)

✨ NAME ✨

hitex is the HINT output from TeX πŸ’– bestie, this tool is a whole vibe.

🫢 SYNOPSIS 🫢

hitex [options] [&format] [file|\commands]

πŸ’… DESCRIPTION πŸ’…

okay so hitex runs the HiTeX typesetter on a file, and it usually spits out a file.hnt πŸ¦‹ If your file name has no extension, ".tex" gets tacked on automatically. You can also skip the file name and hand it a set of HiTeX commands instead, and the first one has to start with a backslash \. If you pass an &format argument, HiTeX uses a different batch of precompiled commands from format.fmt, but honestly? Just use the -fmt option instead, it's cleaner πŸŽ€

HiTeX is a version of TeX that makes HINT files, which are built for reading on screen ✨ When you open one in a HINT viewer (check https://hint.userweb.mwn.de), the content adapts to whatever display area you've got. Iconic. 🌸

The usual move is to use pre-generated formats. The hitex command uses the equivalent of plain TeX, and hilatex uses the equivalent of LaTeX. To make your own formats, use the -ini switch 🧚

HiTeX handles its command-line arguments the same way the other TeX programs do in the web2c implementation, so if you already know one, you know the rest πŸ’œ

HiTeX has the e-TeX extensions (see etex(1)) if you add the -etex switch πŸ”₯

HiTeX also has the extensions needed for LaTeX (see latex(1)) if you use the -ltx switch πŸ‘‘

πŸŽ€ OPTIONS πŸŽ€

okay here's every command-line option HiTeX understands, bestie 🫢

  • -cnf-line string β€” parse string as a texmf.cnf configuration line. Check the Kpathsea manual for more 🌈
  • -compress β€” compresses the HINT file πŸ—œοΈ smaller files, but they need decompressing when you view them. Only bother if file size really matters to you πŸ“
  • -empty-page β€” when people write books, empty pages sneak in, like when a chapter has to start on a right-hand page. On screen there's no left or right, so these are a total nuisance πŸ™ˆ this option keeps them in the output.
  • -no-empty-page β€” tries to get rid of those empty pages in the output. This one is the default ✨
  • -etex β€” turns on the e-TeX extensions. It only works together with -ini. See etex(1) 🧚
  • -file-line-error β€” prints error messages as file:line:error, which looks like how a lot of compilers do it πŸ’…
  • -no-file-line-error β€” turns off the file:line:error error style πŸ™…β€β™€οΈ
  • -fmt format β€” uses format as the format name, instead of the name you called HiTeX by or a %& line πŸ’–
  • -help β€” prints the help message and exits 🌸
  • -hint-debug bitmask β€” sets the HINT debugging flags using the bitmask. Peek at -hint-debug-help for the details πŸ”
  • -hint-debug-help β€” explains the HINT debugging flags, then exits πŸ¦‹
  • -hyphenate-first-word β€” normally TeX won't try to add hyphenation points to the first word of a paragraph. But if a HINT file has to show up on a super tiny device, those hyphenation points might actually be needed. This is on by default πŸŽ€
  • -no-hyphenate-first-word β€” stops hyphenation points from being added to the first word of a paragraph. You only need this if you want full TeX compatibility, no cap πŸ’€
  • -ini β€” starts INI mode, which is what you use to dump formats 🧚 you can typeset in INI mode too, but no format is preloaded, so you might have to do basic setup like setting catcodes yourself
  • -interaction mode β€” sets the interaction mode. The choices are batchmode, nonstopmode, scrollmode, and errorstopmode. They mean the same thing as the matching \commands πŸ’œ
  • -jobname name β€” uses name as the job name, instead of pulling it from the input file name πŸ“
  • -kpathsea-debug bitmask β€” sets the path-searching debug flags using the bitmask. Full details are in the Kpathsea manual πŸ”
  • -ltx β€” turns on the LaTeX extensions. Only works with -ini. See latex(1) πŸ‘‘
  • -mfmode mode β€” uses mode as the Metafont mode when HiTeX generates fonts that are missing. See mf(1) for the tea β˜•
  • -mktex fmt β€” enables mktexfmt, where fmt has to be tex, tfm, fmt, or pk 🌈
  • -no-mktex fmt β€” disables mktexfmt, where fmt has to be tex, tfm, fmt, or pk πŸ™…β€β™€οΈ
  • -output-directory directory β€” writes output files into directory instead of the current one. Input files get looked up in directory first, then along the normal search path πŸ¦‹
  • -parse-first-line β€” if the first line of the main input file starts with %&, HiTeX parses it to look for a dump name ✨
  • -no-parse-first-line β€” turns off parsing of the 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 πŸ’…
  • -resolution number β€” when Metafont is making missing pk fonts, it uses a resolution of number DPI. See mf(1) 🌸
  • -version β€” prints the version info and exits πŸŽ€

🌈 ENVIRONMENT 🌈

for the exact deets on how the environment variables get used, check the Kpathsea library docs (like the Path specifications node). You can also use the kpsewhich utility to look up what the variables are set to πŸ”

⚠️ caveat, bestie: in most HiTeX formats, you can't use ~ in a file name you hand straight to HiTeX. That's because ~ is an active character in TeX, so it gets expanded instead of being treated as part of the file name. Other programs, like Metafont, don't have this problem πŸ’€
  • TEXMFOUTPUT β€” normally HiTeX puts its output files in the current directory. If an output file can't be opened there, it tries the directory set in TEXMFOUTPUT instead. There's no default value for this one. For example, if you run hitex paper, the current directory isn't writable, and TEXMFOUTPUT is /tmp, HiTeX tries to create /tmp/paper.log (and /tmp/paper.hnt, if any output gets produced). TEXMFOUTPUT is also checked for input files, since TeX often makes files it needs to read later. For input, no suffixes like ".tex" get added by default, so the input name is checked exactly as you typed it 🫢
  • TEXINPUTS β€” the search path for \input and \openin files. It normally starts with ".", so your own files get found before the system ones. An empty path component gets replaced with the paths from the texmf.cnf file. For example, set TEXINPUTS to ".:/home/user/tex:" to add the current directory and "/home/user/tex" in front of the standard search path πŸ’–
  • TEXFORMATS β€” the search path for format files 🧚
  • TFMFONTS β€” the search path for font metric (.tfm) files πŸŽ€
  • SOURCE_DATE_EPOCH β€” if this is set, its value (in epoch-seconds) gets used for the creation date and as the reference moment for LaTeX's time-related primitives. Super useful for reproducible builds πŸ”
  • FORCE_SOURCE_DATE β€” if set to "1", the time-related TeX primitives (\year, \month, \day, \time) also get initialized from SOURCE_DATE_EPOCH. The page warns this isn't recommended if there's any viable alternative 😭

Many, many more environment variables get consulted for path searching. Check the Kpathsea manual for those 🌈

πŸ“ FILES πŸ“

the locations of these files differ from system to system, so use the kpsewhich utility to track them down πŸ”

  • *.tfm β€” metric files for HiTeX's fonts πŸ¦‹
  • *.fmt β€” predigested HiTeX format files 🧚
  • *.pk *.pfb β€” font files used by HiTeX 🌸

πŸ“ NOTES πŸ“

this manual page isn't meant to be exhaustive, so don't panic if something's missing πŸ™ˆ the full HiTeX user manual has the complete docs. More info lives in the Kpathsea library manual, and in HINT: The file format, which you can get as a book or electronically from the HINT project home page at https://hint.userweb.mwn.de πŸ’œ

πŸ› BUGS πŸ›

πŸ’€ known issues: this version of HiTeX doesn't correctly handle glues and kerns whose width depends on \hsize or \vsize. Similarly, when the layout of table entries or math formulas depends on \hsize or \vsize, the output might come out distorted.

🌷 AVAILABILITY 🌷

HiTeX should compile on a huge range of machine architectures and operating systems ✨ It's also part of the TeX Live distribution πŸŽ€

The HiTeX home page is at https://hint.userweb.mwn.de. There you'll find extra software (most importantly viewers for HINT files) and more info πŸ¦‹

πŸ”— SEE ALSO πŸ”—

histretch(1), hishrink(1), latex(1), tex(1), kpsewhich(1),

πŸ‘©β€πŸ’» AUTHORS πŸ‘©β€πŸ’»

the primary author of HiTeX is Martin Ruckert, with the eTeX extensions by Peter Breitenlohner, the LaTeX extensions by Thierry Laronde, and the kpathsearch library by Karl Berry πŸ‘‘

TeX was designed by Donald E. Knuth, who implemented it using his Web system for Pascal programs 🫢

Many, many more people contributed to the typesetting system now known as TeX, like, way too many to name here 🌈


that's the whole page, bestie πŸ’– HITEX(1), version 1.0, last updated 11 November 2021 πŸŽ€βœ¨