HISHRINK(1)

πŸ“¦ version 2026.0, in alpine 3.24

πŸŽ€ HISHRINK(1) β€” General Commands Manual πŸŽ€

πŸ’– NAME πŸ’–

hishrink - translating ASCII HINT files to binary files ✨

πŸ¦‹ SYNOPSIS πŸ¦‹

hishrink [options] [file]

πŸ“– DESCRIPTION πŸ“–

okay so shrinking takes an ASCII HINT file (usually ending in .hint) and turns it into a binary HINT file ending in .hnt 🫢

The ASCII HINT format, also called long format, is all about readability πŸ“ You can open it in any text editor and tweak it by hand, which is so much easier than doing that with the binary format. It's also super handy when you're debugging πŸ™ˆ

The binary HINT format, also called short format, is built for displaying HINT files πŸ”₯ It can be parsed just as well going forward as backward, so jumping around the file quickly is no problem at all. Main character energy πŸ‘‘

The binary format is made for reading documents on screen πŸ’… When you open a HINT file in a HINT viewer, the content dynamically adapts to whatever display area you've got. For the full scoop on the HINT file format and programs that can view HINT files, check out https://hint.userweb.mwn.de 🌸

πŸŽ€ OPTIONS πŸŽ€

okay, this version of hishrink understands these command line options:

  • -a β€” Only use the localized names for auxiliary files, as described in the FILES section below. If you know the auxiliary files can be found under their localized names (say, after making them with histretch using -a), you can pass -a to hishrink to limit the search to those names. If you're not sure, skip both -a and -g. hishrink will then look for auxiliary files under the localized path names first, and after that under the path names as given πŸ”
  • -c β€” Turns on compression for the HINT file πŸ—œοΈ Compressed files are smaller but need to be decompressed when you view them, so only do this for big files where size really matters πŸ’œ
  • -d bitmask β€” Sets the HINT file debugging flags according to the bitmask πŸ› Run --help if you want the details 🧚
  • -g β€” Does not use the localized names for auxiliary files, as described in the FILES section below. You can use this if you already know that every auxiliary file lives at the locations stored as path names in the HINT file. If you're unsure, skip both -g and -a, and hishrink will search localized path names first, then the path names as given 🌈
  • --help β€” Prints a help message and exits πŸ™‹β€β™€οΈ
  • -l β€” Sends standard error to a log file πŸ“œ The log file's name comes from the input file's name, with the .hint extension swapped out for .log πŸ“
  • -o name β€” Uses name for the output file instead of deriving it from the input file's name. If name doesn't already end in .hnt, the .hnt extension gets added for you ✨
  • --version β€” Prints version information and exits ⭐

🌸 FILES 🌸

Binary HINT files have to contain every resource needed to display the file, like font and image files. These are called auxiliary files πŸ¦‹ An ASCII HINT file only stores the path names of those files, not the files themselves.

When you make a binary HINT file from an ASCII one, hishrink has to find those auxiliary files, read them, and bundle them into the binary output πŸ“¦ Going the other way, when you make an ASCII HINT file from a binary one, it's really handy if those auxiliary files can be extracted and written to your file system πŸ’Ύ To avoid scribbling files all over random directories during extraction, the path names stored in the HINT file get mapped to localized path names before any auxiliary files are written or read 🫢

Here's how the localized names work. Global resources, like fonts, are referenced by an absolute path name. Local resources, like an image, are referenced by a relative path name. The directory that starts the localized path of a global resource gets the extension .abs, and the one for a local resource gets .rel πŸŽ€ To keep auxiliary files inside these subdirectories even when their path contains links to a parent directory, every parent link .. gets replaced by a __ link to a subdirectory 🧚

For example, say your input file is paper.hint. Global resources go in paper.abs, and local resources go in paper.rel. An absolute path like /usr/share/fonts/ maps to the localized path paper.abs/usr/share/fonts/, and a relative path like ../image/img1.jpg maps to paper.rel/__/image/img1.jpg πŸ’–

πŸ’… NOTES πŸ’…

This manual page is not meant to be exhaustive, so don't panic if something's missing here πŸ™ˆ The complete documentation is in HINT: The file format. It's available as a book or electronically from the HINT project home page at https://hint.userweb.mwn.de. Over there you'll also find more software (most importantly, viewers for HINT files) and a ton of extra info πŸ“š

✨ AVAILABILITY ✨

hishrink should compile on a huge variety of machine architectures and operating systems 🌈 It's part of the TeX Live distribution πŸ“

πŸ”— SEE ALSO πŸ”—

histretch(1), hitex(1),

πŸ‘‘ AUTHORS πŸ‘‘

Martin Ruckert 🫢


Version 1.3, 11 November 2021, and that's a wrap, bestie πŸ’œβœ¨πŸ¦‹

πŸ“¦ where this page comes from