## With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

No credit card required

# Chapter 16. TeX Utilities

This chapter offers a brief summary of a large number of TeX utilities (some more commonly used than others). Some of these programs are mentioned elsewhere in this book in connection with the particular tasks that they perform.

Although many programs are described in this chapter, there is no way that it can be entirely complete. There are just too many programs on CTAN for me to be familiar with all of them. This list is representative of the collection of programs present in the archives during the winter of 1993. Regrettably, programs not documented in English are not included at this time. Take the time to explore the CTAN archives yourself; you won't be disappointed.

### Use the Web, Luke!

One of the most convenient online tools for searching the archives is the World Wide Web (WWW) interface available at http://jasper.ora.com/ctan.html. The WWW interface is constructed automatically from the most recent list of files in the CTAN archives with annotations taken from this chapter from the TeX-index, and from the ctan.dat descriptions maintained by the CTAN archivists.

This chapter attempts to describe only part of the archives. Here are some of the things that are not described in this chapter:

• The thirty or more packages in the archive-tools directory. This directory contains sources and executables for almost every archiving tool imaginable. If you retrieve a file from an FTP site and you don't have the tool necessary to unpack it, you'll probably find it in here. You'll also find other archive-related programs like an FTP server and the Gopher sources.
• Files from the digests, documentation, and help directories. These are collections of electronic digests, documents, and articles that discuss aspects of TeX. They are recommended reading.
• Files from the fonts directory. These are summarized in Chapter 5, Chapter 5.
• Files from the languages directory. These are summarized in Chapter Chapter 7, Chapter 7.
• The many special macro files in the macros subtree. Many macro formats are described in Chapter 4, Chapter 4.
• Architecture-specific applications from the systems subtree. These include applications for Amiga, Atari, Macintosh, MS-DOS, OS/2, unix, VMS, and Xenix systems. The Common-TeX distribution is also available under this directory, as well as the standard TeX distributions by Knuth. archiving tool imaginable. If you retrieve a file from an FTP site and you don't have the tool necessary to unpack it, you'll probably find it in here. You'll also find other archive-related programs like an FTP server and the Gopher sources.
• Files from the digests, documentation, and help directories. These are collections of electronic digests, documents, and articles that discuss aspects of TeX. They are recommended reading.
• Files from the fonts directory. These are summarized in Chapter 5, Chapter 5.
• Files from the languages directory. These are summarized in Chapter 7, Chapter 7.
• The many special macro files in the macros subtree. Many macro formats are described in Chapter 4, Chapter 4.

## List of Tools

These tools are available in the CTAN archives in the directories specified. This list is sorted by CTAN path name so that related utilities appear near each other.

\package{bib2dvi}{bib2dvi}{sh}{biblio/bibtex/utils/bib2dvi}

bib2dvi is a shell script that creates a printable listing of an entire BibTeX database.

\package{bibcard}{bibcard}{C}{biblio/bibtex/utils/bibcard}

bibcard is an X11 based database editor for BibTeX databases. This is an OpenWindows application requiring the xview and olgx libraries.

\package{bibclean}{bibclean}{}{biblio/bibtex/utils/bibclean}

bibclean syntax-checks and pretty-prints a BibTeX database.

\package{bibextract}{bibextract}{}{biblio/bibtex/utils/bibextract}

bibextract extracts bibliographic entries from a list of BibTeX databases based upon a user-supplied regular expression.

\package{citefind}{citefind}{}{biblio/bibtex/utils/bibextract}

citefind extracts bibliographic entries from a list of BibTeX databases based upon a user-supplied list of keys.

\package{citetags}{citetags}{}{biblio/bibtex/utils/bibextract}

citetags extracts citation tags from a list of LaTeX source files. These tags can be fed to citefind to produce a bibliography database customized for a particular document.

\package{bibindex}{bibindex}{}{biblio/bibtex/utils/bibindex}

bibindex creates a bibliographic index for the biblook program.

\package{biblook}{biblook}{}{biblio/bibtex/utils/bibindex}

biblook uses a binary index constructed by bibindex to perform very fast lookups into BibTeX databases.

\package{bibsort}{bibsort}{}{biblio/bibtex/utils/bibsort}

bibsort sorts a BibTeX database.

\package{bibtool}{bibtool}{}{biblio/bibtex/utils/bibtool}

bibtool performs a number of operations on BibTeX databases. It can pretty-print and syntax-check a database, automatically build new keys, extract particular entries, sort a database, and perform a number of other operations. The operation of bibtool can be customized with one or more resource files.

\package{aux2bib}{aux2bib}{}{biblio/bibtex/utils/bibtools}

aux2bib extracts citations from a LaTeX AUX file and constructs a bibliography that contains only the entries required by the document.

\package{bibify}{bibify}{}{biblio/bibtex/utils/bibtools}

bibify attempts to generate an AUX file that contains appropriate references for citations. This eliminates one LaTeX pass over the document and may be much faster for large documents. bibify cannot handle documents that use multiple AUX files.

\package{bibkey}{bibkey}{}{biblio/bibtex/utils/bibtools}

Lists all entries in a BibTeX database that contain a particular keyword in the keyword field.

\package{cleantex}{cleantex}{}{biblio/bibtex/utils/bibtools}

Deletes temporary files (AUX, LOF, etc.) created by LaTeX.

\package{looktex}{looktex}{}{biblio/bibtex/utils/bibtools}

Lists all BibTeX database entries that match a specified regular expression.

\package{makebib}{makebib}{}{biblio/bibtex/utils/bibtools}

makebib creates a “portable” BibTeX database by performing string substitutions, removing comments, and optionally discarding all entries that do not match a given list of keys.

\package{printbib}{printbib}{}{biblio/bibtex/utils/bibtools}

printbib creates a printable listing of an entire BibTeX database. printbib is also available in the biblio/bibtex/utils/printbib directory.

\package{bibview}{bibview}{Perl}{biblio/bibtex/utils/bibview}

bibview is an interactive Perl script that allows you to view and search through a BibTeX database.

\package{HyperBibTeX}{HyperBibTeX}{}{biblio/bibtex/utils/hyperbibtex}

HyperBibTeX is a Macintosh tool for manipulating BibTeX databases.

\package{bibdestringify}{bibdestringify}{}{biblio/bibtex/utils/lookbibtex}

bibdestringify performs BibTeX string substitution on a BibTeX database.

\package{lookbibtex}{lookbibtex}{}{biblio/bibtex/utils/lookbibtex}

Lists all BibTeX database entries that match a specified regular expression.

\package{r2bib}{r2bib}{C}{biblio/bibtex/utils/r2bib}

r2bib converts refer databases into BibTeX databases.

\package{ref2bib}{ref2bib}{Perl}{biblio/bibtex/utils/ref2bib}

ref2bib converts refer databases into BibTeX databases.

\package{xbibtex}{xbibtex}{}{biblio/bibtex/utils/xbibtex}

xbibtex is an X11 program for manipulating BibTeX databases.

\package{Public Doman DVI Driver Family}{*}{C}{dviware/beebe}

A collection of DVI drivers. This code has been used as the basis for many other DVI-aware programs. Table 16.1 summarizes the drivers included in this package.

Table 16.1. The Public Doman DVI Driver Family

 \bf Driver \bf Description \it dvialw PostScript (Apple LaserWriter laser printer) \it dvibit Version 3.10 BBN BitGraph terminal \it dvica2 Canon LBP-8 A2 laser printer \it dvican Canon LBP-8 A2 laser printer \it dvidjp Hewlett-Packard Desk Jet plus (from LaserJet) \it dvie72 Epson 9-pin family 240/216-dpi dot matrix printer \it dvie72 Epson 9-pin family 60/72-dpi dot matrix printer \it dvieps Epson 9-pin family 240/216-dpi dot matrix printer \it dvieps Epson 9-pin family 60/72-dpi dot matrix printer \it dvigd Golden Dawn Golden Laser 100 laser printer \it dviimp imPRESS (Imagen laser printer family) \it dvijep Hewlett-Packard LaserJet Plus laser printer \it dvijet Hewlett-Packard 2686A Laser Jet laser printer \it dvil3p Digital LN03-PLUS 300 dpi laser printer \it dvil3p Digital LN03-PLUS 150 dpi laser printer \it dvil75 DEC LA75 144h x 144v dot matrix printer \it dvil75 DEC LA75 72h x 72v dot matrix printer \it dvim72 Apple ImageWriter 144 dpi dot matrix printer \it dvim72 Apple ImageWriter 72 dpi dot matrix printer \it dvimac Apple ImageWriter 144 dpi dot matrix printer \it dvimac Apple ImageWriter 72 dpi dot matrix printer \it dvimpi MPI Sprinter 144h x 144v dot matrix printer \it dvimpi MPI Sprinter 72h x 72v dot matrix printer \it dvio72 OKIDATA Pacemark 2410 144 dpi dot matrix printer \it dvio72 OKIDATA Pacemark 2410 72 dpi dot matrix printer \it dvioki OKIDATA Pacemark 2410 144 dpi dot matrix printer \it dvioki OKIDATA Pacemark 2410 72 dpi dot matrix printer \it dviprx Printronix 300/600 60h x 72v dpi dot matrix printer \it dvitos Toshiba P-1351 180h x 180v dpi dot matrix printer

\package{bitpxl}{bitpxl}{C}{dviware/bitpxl}

Converts HP LaserJet bitmaps into PXL files.

\package{cdvi}{cdvi}{}{dviware/cdvi}

MS-DOS DVI file previewer. Does not support external fonts, but has 16 Computer Modern fonts built in.

\package{Crudetype}{crudetype}{Web}{dviware/crudetype/version3}

A DVI-to-text translator. Crudetype attempts to make a readable DVI file. An interactive mode is available on some platforms. A 132-column display is expected for most output.

\package{DVItoVDU}{dvgt, dvitovdu, dvi2vdu}{C}{dviware/dvgt}

DVItoVDU is a terminal previewer for DVI files. The dvgt version supports graphics preview using various graphics terminals and limited typeset preview on other terminals such as the VT100 and VT220. Tektronix emulation allows remote previewing of DVI files through Telnet or using Kermit from a PC, for example.

\package{DVI2PCL}{dvi2pcl}{C}{dviware/dvi2pcl}

Translates DVI files into HP LaserJet format.

\package{dvi2ps}{}{C}{dviware/dvi2ps}

There are a number of translators called dvi2ps. Some appear to be older DVI to PostScript translators supporting the MIT printcap entries and Apple LaserWriter printers, while others offer support for Asian fonts compatible with the tools used by the Japanese TeX User's Group and the chfont program, better support for built-in printer features, and faster execution.

\package{psdvi}{psdvi}{C}{dviware/dvi2ps/psdvi}

This program translates DVI files into resolution-independent PostScript files. This allows the PostScript output to be printed on high-resolution phototypesetting equipment. Many other DVI-to-PostScript converters assume that the output resolution is 300dpi, which makes the PostScript more difficult, or impossible, to print on high-resolution devices.

Because bitmapped fonts are inherently resolution-dependent, documents that use them cannot be translated with this driver. This means that none of the Computer Modern or \AmS fonts can be used unless you have them in PostScript Type 1 format.

\package{DVI2QMS}{dvi2qms}{C}{dviware/dvi2qms}

Translates DVI files into output suitable for QMS 800/1200/2400 printers.

\package{DVI2TTY}{dvi2tty}{C}{dviware/dvi2tty}

Translates DVI files into plain ASCII text.

\package{dvi2xx}{dvilj2, dvilj2p, dvilj, dviljp, dvi3812}{C}{dviware/dvi2xx}

Translates DVI files into output suitable for the HP LaserJet family of printers and compatible printers. It also supports output to the IBM 3812 printer. MS-DOS and OS/2 executables are provided.

\package{dviapollo}{dviapollo}{C}{dviware/dviapollo}

A screen previewer for Apollo workstations.

\package{dvibit}{dvibit}{C}{dviware/dvibit}

A screen previewer for BBN BitGraph terminals.

\package{dvibook}{dvibook}{C}{dviware/dvibook}

Rearranges DVI file pages into a sequence suitable for printing and folding into a book. Actually, it produces signatures, which are small groups of pages that can be folded together. A signature is composed of several folded pages; a book is composed of many signatures bound together.

\package{DVIChk}{dvichk}{C}{dviware/dvichk}

DVIChk examines a DVI file and prints out the page numbers that occur in the document in the order in which they occur. Pages in a DVI file do not have to occur in any particular order.

\package{DVICOPY}{dvicopy}{Web}{dviware/dvicopy}

This program copies a DVI file that contains references to virtual fonts and creates an equivalent DVI file with all references to virtual fonts translated into references to the appropriate non-virtual fonts.

\package{DVIDIS}{dvidis}{C}{dviware/dvidis}

A DVI file previewer for VaxStations running VMS.

\package{dvidoc}{dvidoc}{C}{dviware/dvidoc}

Translates DVI files into plain ASCII. Although it does not attempt to form the same page breaks, it does claim to get the interword spacing correct.

\package{DVIDVI}{dvidvi}{C}{dviware/dvidvi}

Rearranges pages in a DVI file. The resulting file is a new DVI file containing only the selected pages. A Macintosh executable is available in dviware/dvidvi/mac.

\package{DVIEW}{dview}{}{dviware/dview}

A very old previewer for MS-DOS. This program relies on PXL files and requires the antique Almost Modern fonts to print the user manual.

\package{DVIIMP}{dviimp}{Web}{dviware/dviimp}

Translates DVI files into a format suitable for printing on an Imagen printer. This program reads GF files rather than PK files.

\package{dvimerge}{dvimerge}{sh}{dviware/dvimerge}

dvimerge is a shell script (written in sh) that uses dvidvi and dviconcat to merge two DVI files together.

\package{DVIMSWin}{dvimswin}{}{dviware/dvimswin}

A DVI previewer for MS-DOS running Windows 3.1. This program uses PK fonts at screen resolution. These can be generated by MetaFont or obtained from the dvivga distribution.

\package{dvipage}{dvipage}{C}{dviware/dvipage}

A DVI previewer for workstations running SunView version 3.0 or later.

\package{dvipj}{dvipj}{C}{dviware/dvipj}

This program is a modification of the dvijet driver that supports color printing on the HP PaintJet printer. To build this program, you need source from the Public Doman DVI Driver Family.

\package{dvips}{afm2tfm, dvips}{C}{dviware/dvips}

The dvips program is the de facto standard DVI to PostScript translator. Several versions are available, although the most recent release seems to offer a superset of the features provided by all the other versions.

\package{dvipsk}{afm2tfm, dvipsk}{C}{dviware/dvipsk}

dvipsk is a modification of dvips version 5.516 that supports an extended path searching algorithm for PK fonts.

\package{DVISUN}{dvisun}{C}{dviware/dvisun}

A DVI previewer for Sun II terminals.

\package{dvitodvi}{dvitodvi}{C}{dviware/dvitodvi}

Rearranges pages in a DVI file, producing a new DVI file.

\package{dvitool}{dvitool}{C}{dviware/dvitool}

A DVI previewer for workstations running SunView.

\package{dvitops}{psfont, pfbtops, aftopl, dvitops}{C}{dviware/dvitops/dvitops}

dvitops is a DVI-to-PostScript translator. psfont can be used to download PostScript fonts. pfbtops decodes printer font binary files into printer font ASCII files. aftopl builds a PL file from a PostScript AFM file. PL files can be further translated into TFM files with the standard PLtoTF utility.

\package{dvitovdu}{dvitovdu}{C}{dviware/dvitovdu}

A DVI previewer for terminals. dvitovdu handles plain ASCII terminals as well as some graphics terminals. Includes VMS and unix ports.

\package{dvitovdu}{dvitovdu}{C}{dviware/dvitovdu32}

Another version of the dvitovdu DVI previewer for terminals. dvitovdu handles plain ASCII terminals as well as some graphics terminals. This version seems to read only PXL files.

\package{dvitty}{dvitty}{Pascal}{dviware/dvitty}

A simple previewer for ASCII display of DVI files.

\package{DVIVGA}{dvivga}{}{dviware/dvivga}

The DVIVGA distribution includes a program for previewing DVI files on PCs with EGA, VGA, or MCGA displays. DVIVGA is derived from the Public Doman DVI Driver Family. \pagebreak The DVIVGA distribution also includes a full set of PK fonts at many resolutions: 70, 76, 84, 92, 100, 110, 121, 132, 145, 174, 208, 250, and 300dpi. Other previewers that require PK fonts at screen resolution (typically near 100dpi) can also use these fonts.

\package{DVIWIN}{dviwin}{}{dviware/dviwin}

A screen previewer for MS-DOS running Windows 3.1. This program includes the ability to use emTeX FLI font libraries.

\goodbreak \package{eps}{eps}{C}{dviware/epson/eps-0.2}

Prints a DVI file on an Epson dot-matrix printer. Some PK fonts at the appropriate resolutions are included in dviware/epson/epson.

\package{ivd2dvi}{ivd2dvi}{C}{dviware/ivd2dvi}

The TeX-\XeT driver produces IVD files, which are like DVI files except that they use some special commands to perform reflection, which allows them to print right-to-left.

This program translates an IVD file into a standard DVI file by replacing all of the special commands with standard DVI file commands.

\package{dvijep}{dvijep}{C}{dviware/kane}

Another DVI-to-HP LaserJet+ driver.

\package{dvijep\_p}{dvijep\_p}{C}{dviware/kane}

A modified version of dvijep with Centronics PP8 workarounds removed where they might confuse a real LaserJet+ printer.

\package{dvi2kyo}{dvi2kyo}{C}{dviware/kyocera}

A DVI translator that produces Kyocera's native Prescribe command language rather than relying on Kyocera's somewhat limited HP LaserJet compatibility mode.

\package{kyodev}{kyodev}{C}{dviware/kyocera}

This DVI driver produces output in Kyocera's native Prescribe format.

\package{dviplus}{dviplus}{Web}{dviware/laserjet}

An old DVI-to-HP LaserJet Plus translator that uses PXL files.

\package{LN03 Driver}{ln03dvi}{C}{dviware/ln03}

Translates DVI files into a format suitable for printing on a Digital LN03 printer.

\package{PSPrint}{psprint}{Pascal}{dviware/psprint}

A PostScript printing program that can handle DVI files, raw PostScript files, or text files. This program is a combined DVI-to-PostScript translator and file-printing utility.

unix and VMS sources are provided, but a Pascal compiler is required.

\package{QMS}{dvilg8, dviqms12, ddviqms8}{}{dviware/qms}

An old VMS DVI driver for QMS printers.

\package{QuicSpool}{pktoch, tfm2difont, tfm2ofont, dumpdesc, cati}{C}{dviware/quicspool}

This is a collection of programs for printing files to QMS and Talaris laser printers. Support for DVI files is included.

\package{SCREENVIEW}{crude}{Web}{dviware/screenview}

A VMS tool based on Crudetype for previewing DVI files at an ASCII terminal.

\package{See\protect\TeX}{xtex, texsun, texx, iptex, mftops}{C}{dviware/seetex}

The SeeTeX package contains a number of tools for working with DVI files. The most substantial of these tools are the xtex and texsun previewers for workstations running the X Window system and the SunView window system, respectively.

xtex is unique among X11 previewers because it uses X Window fonts. This makes xtex quite fast. It also means that xtex has to build a lot of new X Window fonts the first few times that you use it. The mftops program converts TeX PK fonts into X Window fonts. xtex uses the MakeTeXPK program to build new PK fonts at the necessary resolutions. xtex also uses Ghostscript to display the PostScript figures in your document. This is typically much faster than using GhostView to preview the entire document. The texx previewer is a much simpler X Window previewer. It cannot interpret PostScript, but it does recognize most of the tpic specials. SeeTeX also includes iptex, an Imagen printer driver.

\obsolete{symbolics}{symbolics}{}{dviware/symbolics}

\package{\TeX{}tool}{textool}{}{dviware/textool}

This is a TeX previewer for the SunView window system.

\package{umddvi}{dvidmd, dvipr, dviselect, iptex}{C}{dviware/umddvi}

dvidmd is a DVI previewer for DMD 5620 displays. dvipr is a DVI driver for Versatec printers. iptex is a DVI driver for Imagen printers. Finally, dviselect extracts pages from a DVI file and produces a new DVI file containing the selected pages.

\package{VU\protect\TeX}{vutex}{Web}{dviware/vutex}

Another VMS DVI previewer for ASCII terminals.

\package{xdvi}{xdvi}{C}{dviware/xdvi}

A screen previewer for workstations running the X11 Window System. MS-DOS executables, useful only if you have an X11 Window system running on your PC, are available in the dviware/xdvi-dos directory.

\package{xdvik}{xdvik}{C}{dviware/xdvik}

xdvik is a modification of xdvi that supports an extended path searching algorithm for PK fonts.

\package{bit2spr}{bit2spr}{C}{graphics/bit2spr}

bit2spr converts X11 XBM bitmaps into a “sprite” format that can be included directly in TeX documents. The resulting sprites are fully portable, although they require a lot of memory, which may make large bitmaps impractical.

\package{bm2font}{bm2font}{C/Pascal}{graphics/bm2font}

The bm2font program converts bitmapped images into TeX, TFM, and PK files. bm2font also generates the Plain TeX or LaTeX statements necessary to insert the figure into your document. Color images can be dithered in a number of different ways. This is one of the most portable ways to insert pictures into a document; almost every available DVI driver can print TeX PK fonts.

\package{fig2MF}{fig2mf}{C}{graphics/fig2mf}

Translates Fig code into MetaFont source. This allows you to use interactive drawing tools like xfig to construct diagrams that can be included into your document in a portable manner with fig2MF.

\package{gnuplot}{gnuplot}{C}{graphics/gnuplot}

gnuplot is an interactive function plotting program. Several different types of output are supported and can be included directly into your document.

\package{hpgl2ps}{hpgl2ps}{C}{graphics/hpgl2ps}

This program translates HPGL Plotter language commands into encapsulated PostScript.

\package{mactotex}{mactotex}{C}{graphics/mactotex}

This program cleans up Macintosh PostScript so it can be included into your documents with psfig. (Some printers have difficulty printing PostScript output generated on a Macintosh because the PostScript is tailored towards the Apple LaserWriter series of printers.)

\package{MFPic}{mfpic}{C}{graphics/mfpic}

MFPic is a flexible replacement for the LaTeX picture environment. Instead of relying on special fonts to generate pictures, MFPic writes MetaFont code, which generates a font containing the picture specified. This makes MFPic more flexible than the standard picture environment without losing portability.

\package{pbmtopk}{pbmtopk}{C}{graphics/pbmtopk}

Translates PBM files into TeX PK fonts.

\package{PiCTeX}{pictex}{C}{graphics/pictex}

A sophisticated macro package that works on top of Plain TeX and LaTeX. It provides a device-independent way of producing many kinds of figures. The PiCTeX implementation frequently generates documents that are too complex for “small” versions of TeX to render. The PiCTeX manual is not freely available and must be purchased before PiCTeX can be used.

\package{Glo+Index}{idxtex, glotex}{C}{indexing/glo+index}

These are tools for automatic construction of indexes and glossaries. The glossary building tool uses \glossary entries from your document in conjunction with a database of word definitions to automatically construct a glossary. The idxtex program provides many of the same features as the MakeIndex program.

\package{MakeIndex}{makeindex, makeindx}{C}{indexing/makeindex}

This is the standard tool for processing \index entries from LaTeX documents. MakeIndex reads the entries, sorts them, handles a number of useful features (multilevel indexes, special sorting criteria, etc.) and produces LaTeX source code, which produces a typeset index.

\package{RTF Translator}{rtf2text, rtf2troff, *}{C++}{support/RTF-1_06a1}

The RTF Translator package includes several programs for converting RTF (Rich Text Format) files. RTF files contain information about the structure as well as the content of a document. Microsoft Word and several NeXT tools can produce RTF files.

Table 16.2 summarizes the translators provided. Note that there is no TeX or LaTeX translator in this package at present.

Table 16.2. RTF Translators

 \bf Program \bf Translation \it rtf2null Removes RTF codes \it rtf2text Translates to ASCII text \it rtf2troff Translates to ms macros in troff \it rtfwc Counts actual words in an RTF document \it rtfdiag Verifies the RTF parser (or the RTF document) \it rtfskel A skeleton for producing new translators

\package{accents}{accents}{Web}{support/accents}

accents generates a virtual font containing accented letters arranged according to the KOI8-CS character set. This program constructs the accented letters from characters and accent marks, if necessary. If the input font is in Adobe Standard Encoding, accents can rearrange it into TeX Text encoding.

addindex inserts LaTeX \index commands into your document. Presented with a list of words and index entries, addindex reads your LaTeX files and indexes every word from the list that occurs in your document.

\package{amSpell}{amspell}{}{support/amspell}

The amSpell program is an interactive MS-DOS spellchecker for plain ASCII and TeX documents.

\package{atops}{atops}{}{support/atops}

A simple program to convert ASCII text files into PostScript.

\package{\auctex}{}{elisp}{support/auctex}

A comprehensive TeX editing environment for GNU emacs.

\package{basix}{basix}{tex}{support/basix}

basix is a BASIC interpreter written entirely in TeX. Honest. ;-)

\package{BibDB}{bibdb}{}{support/bibdb}

An MS-DOS program for editing BibTeX bibliographic databases.

\package{brief_t}{}{}{support/brief_t}

The brief_t package is a LaTeX editing environment for Borland International's Brief editor.

\package{c++2latex}{c2latex, c++2latex}{C}{support/c++2LaTeX-1_1}

This program parses your C or C++ programs and creates LaTeX source code for pretty-printing them. The syntactic elements of the source (keywords, identifiers, comments, etc.) can be set in different fonts. Compiling this program requires flex.

\package{C2\LaTeX}{c2latex}{}{support/c2latex}

C2LaTeX is a filter designed to provide simple literate programming support for C programming. This filter massages LaTeX-coded C comments and source code into a LaTeX document.

\package{chi2tex}{chi2tex}{}{support/chi2tex}

chi2tex is an MS-DOS program for converting ChiWriter documents into TeX.

\package{detex}{detex, texspell}{C}{support/detex}

detex removes TeX control sequences from a document. The texspell script pipes the resulting output through a spell checker.

\package{bibtex-mode, web-mode}{bibtex-mode.el, web-mode.el}{elisp}{support/emacs-modes}

GNU emacs macros that provide an enhanced editing environment for BibTeX databases and Web source files. Another substantial set of modes for editing LaTeX documents is provided by aucTeX, listed separately.

\package{flow}{flow}{C}{support/flow}

flow reads a plain text description of a flow chart and produces the appropriate LaTeX picture environment for printing the flow chart.

\package{byte2tex}{byte2tex}{C}{support/foreign/byte2tex}

A translator for multilingual documents that use the upper range of the ASCII character set as a second alphabet. The translation performed is controlled by a plain text description of the alphabet. See also EDI and cyrlatex.

\package{cyrlatex}{cyrlatex}{tex}{support/foreign/cyrlatex}

A LaTeX style for using the \AmS Cyrillic fonts as a second alphabet under LaTeX. See also EDI and byte2tex.

\package{EDI}{edi}{}{support/foreign/edi}

An MS-DOS editor for multilingual (particularly Cyrillic) documents. EDI uses the upper range of the ASCII character set as a programmable second alphabet. See also byte2tex and cyrlatex. MS-DOS and Atari executables are available.

\package{genfam}{genfam, modern}{Perl}{support/genfam}

The genfam script reads a configuration file that describes a set of fonts and then runs the appropriate MetaFont commands to produce them. A sample configuration file, modern, is provided for the Computer Modern Roman family.

\package{Ghostview}{ghostview}{C}{support/ghostview}

Ghostview provides an interactive interface to Ghostscript, the GNU PostScript interpreter. Ghostview requires X11, but there are ports to Microsoft Windows and OS/2.

\package{Stanford GraphBase}{}{CWeb}{support/graphbase}

This is a collection of CWeb programs for studying combinatorial algorithms. It is related to TeX only because CWeb files are part TeX.

\package{HPTFM2PL}{hptfm2pl, showsym}{}{support/hp2pl}

This program reads Hewlett-Packard Tagged Font Metric files and creates TeX PL files. The PL files can be further translated into TeX TFM files with the standard utility PLtoTF.

Hewlett-Packard distributes metric information about LaserJet built-in fonts and font cartridges in Tagged Font Metric format, so this program gives you a way of getting TeX metrics for those fonts. To actually use them, you must have both the metrics and a DVI driver that can use built-in fonts.

\package{HP2\protect\TeX}{hp2tex, hpopt}{}{support/hp2tex}

HP2TeX translates HPGL files into TeX documents that use the \special commands found in emTeX for drawing lines at arbitrary angles. This makes diagrams in HPGL format that use only straight lines printable directly with TeX. See also HP2XX.

\package{HP2XX}{hp2xx}{}{support/hp2xx}

HP2XX converts HPGL diagrams into PostScript or one of several bitmapped formats. It can also translate some diagrams directly into TeX if \special commands are available for drawing lines at any angle.

MS-DOS, Sparc, Convex 210, and HP9000 executables are available. A Windows front-end is also available for MS-DOS.

\package{HPtoMF}{hptomf}{}{support/hptomf}

HPtoMF converts HPGL (Hewlett-Packard's plotter language) into a variety of other vector and raster formats.

\undescribed{HTML}{html}{}{support/html}

\package{HTMLto\LaTeX}{html2latex}{}{support/html2latex}

This program converts HTML documents into LaTeX source for printing.

\package{Icons}{}{}{support/icons}

This is a collection of icons for TeX and MetaFont. They were designed by Donald Knuth for OpenWindows and have subsequently been translated into Microsoft Windows, OS/2, and X11 XBM format.

\package{Imake-\TeX}{imaketex}{}{support/imaketex}

Imake-TeX helps you create an Imakefile for TeX documents. Imakefiles are used to generate custom makefiles for an application, in this case a LaTeX document.

\package{ispell}{ispell}{C}{support/ispell}

An interactive spellchecker. ispell is intelligent about TeX documents and can handle languages other than English. \editorial{there are two!}

\package{jspell}{jspell}{C}{support/jspell}

jspell is an MS-DOS spellchecker. It includes special support for TeX documents.

\package{\TeX{}Tools}{textools}{}{support/kamal}

The TeXTools package includes several tools for manipulating TeX documents. detex strips TeX commands from a file. texeqn extracts displayed equations from a document. texexpand merges documents loaded with \input or \include into a single file. texmatch checks for matching delimiters. texspell uses detex to spellcheck the filtered version of a document.

\package{LaCheck}{lacheck}{C}{support/lacheck}

LaCheck reads a LaTeX document and reports any syntax errors it finds. This is faster than running the document through TeX if you are only interested in finding TeXnical mistakes.

\package{\LaTeX2HTML}{latex2html}{}{support/latex2html}

Converts LaTeX documents into HTML documents, suitable for browsing with a WWW browser. Many complex document elements are handled automatically.

\package{\LaTeX{}Mk}{latexmk}{}{support/latexmk}

LaTeXMk is a Perl script that attempts to determine what operations need to be performed on a document to produce a complete DVI file. LaTeXMk runs LaTeX, BibTeX, etc. until a complete document has been built.

\package{lgrind}{lgrind}{}{support/lgrind}

lgrind formats program sources using LaTeX. Syntactic elements are identified by typographic changes in the printed sources.

\package{LSEdit}{}{}{support/lsedit}

This is an add-on package for the VAX/VMS Language Sensitive Editor (LSEDI). It provides an editing environment for LaTeX documents.

\package{make\_\hskip.25pt latex}{make\_latex}{}{support/make\_latex}

Provides a set of make rules for LaTeX documents.

\package{MakeProg}{makeprog}{Web}{support/makeprog}

MakeProg is a system for doing Literate Programming in TeX. It provides a mechanism for combining documentation with TeX macros. Donald Knuth's original articles on Literate Programming are included with the documentation.

MathPad is an X11 editor for TeX sources. It was not available (or known to me) in time for review in this edition of Making TeX Work.

\package{MC\TeX}{}{tex}{support/mctex}

A TeX macro package for pretty-printing Lisp code.

\package{MEW\LaTeX}{}{}{support/mewltx}

An extension to microEMACS for Windows. It provides a LaTeX editing environment that allows you to write, spellcheck, process, and view your document from within microEMACS.

\package{MNU}{}{DOS}{support/mnu}

MNU is an MS-DOS menu system written with batch files. It was designed for running TeX but can be extended to other applications.

\package{pbm2\TeX}{pbm2tex}{}{support/pbm2tex}

pbm2TeX converts PBM files into LaTeX picture environments. This provides a portable way to include bitmap images in documents. The documents take a long time to typeset, however, and may require a big TeX.

\package{PCWri\TeX}{}{}{support/pcwritex}

Adds TeX to PC-Write as a special kind of printer. Documents “printed” to the TeX printer can be processed with TeX to get typeset output.

\package{PM\TeX}{pmtex}{}{support/pmtex}

An OS/2 Presentation Manager application that provides a shell around common TeX-related activities (editing, TeXing, previewing, printing, etc.).

\package{PP}{pp}{}{support/pp}

A Pascal or Modula-2 pretty-printer. It translates code into a Plain TeX or LaTeX document. An MS-DOS executable is provided.

\package{PS2EPS}{ps2eps}{c}{support/ps2eps}

Attempts to convert PostScript output from other programs into encapsulated PostScript output suitable for including in TeX documents with dvips, for example. Support is included for converting output from GEM 3.0, DrawPerfect 1.1, PSpice 4.05, OrCAD 3.11, PrintGL 1.18, Mathcad 3.0, and GNUPlot 3.0.

\package{PS Utils}{psbook, psselect, pstops, psnup, epsffit}{C}{support/psutils}

A collection of utilities for transforming PostScript output files in various ways. psbook rearranges pages into signatures. psselect selects ranges of pages. pstops performs arbitrary rearrangement and selection of pages. psnup prints multiple pages on a single sheet of paper. epsffit rescales an encapsulated PostScript figure to fit within a specified bounding box. These programs can be used to rearrange the output from PostScript DVI drivers like dvips.

PS Utils also includes scripts for displaying character information and “fixing” PostScript output from other sources. (Some PostScript output is nonstandard and must be fixed-up before it can be used with the PS Utils.) These scripts are summarized in Table 16.3.

Table 16.3. Additional Scripts in PS Utils

 \bf Script \bf Purpose \it getafm Retrieves font metrics from the printer \it showchar Prints a character and its metrics \it fixfmps Fixes output from FrameMaker \it fixwpps Fixes output from WordPerfect \it fixwfwps Fixes output from Word for Windows \it fixmacps Fixes Macintosh PostScript \it fixpsditps Fixes Transcriptpsdit files \it fixpspps Fixes output from PSPrint

\package{rtf2\LaTeX}{rtf2latex}{C}{support/rtf2LaTeX}

A conversion program to translate RTF sources into LaTeX.

\package{rtf2\TeX}{rtf2tex}{C}{support/rtf2TeX}

A conversion program to translate RTF sources into TeX.

\package{RTF-to-\LaTeX}{rtflatex}{Pascal}{support/rtflatex}

Another conversion program to translate RTF sources into LaTeX.

\package{S2\LaTeX}{s2l}{C}{support/s2latex}

A Scribe-to-LaTeX converter. Requires lex and yacc to compile.

\package{Scheme\TeX}{schemetex}{C}{support/schemetex}

SchemeTeX provides support for Literate Programming in Scheme. Lex is required to build SchemeTeX.

\package{\TeX{}OrTho}{texortho}{C}{support/spelchek}

TeXOrTho is a spellchecking filter for text files. It was designed for spellchecking TeX and LaTeX documents, but it is parameter-file driven so it may be possible to extend it to other formats.

\package{Tek2EEPIC}{tek2eepic}{C}{support/tek2eepic}

A filter for Tektronix 4015 escape sequences that allows graphics output designed for a Tektronix 4015 display to be included in a TeX document. The resulting DVI file must be processed by a DVI driver that recognizes the tpic \special commands.

\package{\TeX{}calc}{}{}{support/texcalc}

TeXcalc is an InstaCalc spreadsheet for calculating TeX typeface design sizes based upon magnification and scaling factors.

\package{\TeXinfo{}2HTML}{texi2html}{Perl}{support/texi2html}

Translates GNU TeXinfo sources into HTML.

\package{\TeX{}i2roff}{texi2roff}{C}{support/texi2roff}

This is a TeXinfo-to-nroff converter (although it should be possible to process most documents with troff as well).

\package{\TeX{}it}{texit}{Perl}{support/texit}

A Perl script for processing TeX documents intelligently.

\package{texproc}{texproc}{C}{support/texproc}

texproc is a filter that inserts the output from a command into your document. This can be used, for example, to automatically insert the output from GNUPlot directly into your TeX document (assuming that you use one of the TeX-compatible output terminals in GNUPlot).

\package{tgrind}{tgrind}{C}{support/tgrind}

tgrind is a source code pretty-printer modelled after the standard BSD unix vgrind utility. It produces a TeX or LaTeX document that typesets an attractive program listing from your source code.

\package{tr2\LaTeX}{tr2latex}{C}{support/tr2latex}

Translates troff sources into LaTeX.

\package{tr2\TeX}{tr2tex}{C}{support/tr2tex}

Translates troff sources into Plain TeX.

\package{TRANSLIT}{translit}{C}{support/translit}

TRANSLIT transliterates ASCII character codes. Single characters can be translated into multiple characters and vice versa, in addition to simple permutations. This program allows files written in one national character set to be translated into another character set without losing characters or meaning.

\package{TSpell}{tspell, chk, putback}{C}{support/tspell}

A spellchecking filter for TeX documents. It strips TeX and LaTeX macros out of a document, runs the document through a spellchecker, and restores the TeX and LaTeX macros. It looks like it was designed for VAX machines.

\package{umlaute}{umlaute}{\protect\TeX}{support/umlaute}

A collection of style files for processing TeX documents with accented characters using machine-native character encodings. Support for the ISO standard character set (ISO Latin1) and the MS-DOS code page 437 character set is provided.

\package{undump}{undump}{C}{support/undump}

undump combines a core dump and an executable program to build a new executable using the core dump to provide initial values for all of the program's static variables. One use of this program is to construct TeX executables with macro packages preloaded. This is unnecessary on most modern computers (they're fast enough to simply load the format files). undump is no longer a supported program.

\package{untex}{untex}{C}{support/untex}

Removes all LaTeX control sequences from a document. Can optionally remove arguments to control sequences, as well as all math-mode text. Replaces many accented characters with their IBM OEM character set equivalents.

\package{VMSSpell}{vmsspell}{}{support/vmsspell}

A VMS spellchecking tool. Distributed in a VMS-style archive package.

\package{Vor\TeX}{}{Emacs lisp}{support/vortex}

A GNU emacs editing mode for TeX documents. Also provides support for BibTeX databases.

\package{windex}{windex}{C}{support/windex}

windex is an aid for building indexes in LaTeX documents. It modifies the LaTeX indexing macros to produce a different output format. The windex program can then sort the terms and construct an index for you.

\package{WP2\protect\LaTeX}{wp2latex}{C/Pascal}{support/wp2latex-5_1}

This program attempts to translate WordPerfect v5.1 documents into LaTeX.

\package{xet}{xet}{C}{support/xet}

The xet program removes all commands and mathematical formulae from Plain TeX and LaTeX documents. xet has a number of options for handling different aspects of a document (such as accents and LaTeX environments) and claims to be useful as a simple syntax checker for TeX files.

\package{xetal}{xetal}{C}{support/xetal}