Next: , Previous: Using Texinfo, Up: Overview

1.3 Output Formats

Here is a brief overview of the output formats currently supported by Texinfo.

(Generated via makeinfo.) This format is essentially a plain text transliteration of the Texinfo source. It adds a few control characters to separate nodes and provide navigational information for menus, cross-references, indices, and so on. See the next section (see Info Files) for more details on this format. The Emacs Info subsystem (see Getting Started), and the standalone info program (see Info Standalone), among others, can read these files. See Creating and Installing Info Files.
Plain text
(Generated via makeinfo --no-headers.) This is almost the same as Info output, except the navigational control characters are omitted. Also, standard output is used by default.
(Generated via makeinfo --html.) This is the Hyper Text Markup Language that has become the most commonly used language for writing documents on the World Wide Web. Web browsers, such as Mozilla, Lynx, and Emacs-W3, can render this language online. There are many versions of HTML; makeinfo tries to use a subset of the language that can be interpreted by any common browser. For details of the HTML language and much related information, see See Generating HTML.
(Generated via texi2dvi.) This DeVice Independent binary format is output by the TeX typesetting program ( This is then read by a DVI `driver', which writes the actual device-specific commands that can be viewed or printed, notably Dvips for translation to PostScript (see Invoking Dvips) and Xdvi for viewing on an X display ( See Hardcopy.

Be aware that the Texinfo language is very different from and much stricter than TeX's usual languages, plain TeX and LaTeX. For more information on TeX in general, please see the book TeX for the Impatient, available from

(Generated via texi2dvi --pdf or texi2pdf.) This was developed by Adobe Systems for portable document interchange, based on their previous PostScript language. It can represent the exact appearance of a document, including fonts, and supporting arbitrary scaling. It is intended to be platform-independent and easily viewable, among other design goals; for a discussion, see Texinfo uses the pdftex program, a variant of TeX, to output PDF; see See PDF Output.
(Generated via makeinfo --xml.) XML is a generic syntax specification usable for any sort of content (see, for example, The makeinfo xml output, unlike all the formats above, interprets very little of the Texinfo source. Rather, it merely translates the Texinfo markup commands into XML syntax, for processing by further XML tools. The particular syntax output is defined in the file texinfo.dtd included in the Texinfo source distribution.
(Generated via makeinfo --docbook.) This is an XML-based format developed some years ago, primarily for technical documentation. It therefore bears some resemblance, in broad outlines, to Texinfo. See If you want to convert from Docbook to Texinfo, please see

From time to time, proposals are made to generate traditional Unix man pages from Texinfo source. However, because man pages have a very strict conventional format, generating a good man page requires a completely different source than the typical Texinfo applications of writing a good user tutorial and/or a good reference manual. This makes generating man pages incompatible with the Texinfo design goal of not having to document the same information in different ways for different output formats. You might as well just write the man page directly.

Man pages still have their place, and if you wish to support them, you may find the program help2man to be useful; it generates a traditional man page from the `--help' output of a program. In fact, this is currently used to generate man pages for the programs in the Texinfo distribution. It is GNU software written by Brendan O'Dea, available from

If you are a programmer and would like to contribute to the GNU project by implementing additional output formats for Texinfo, that would be excellent. But please do not write a separate translator texi2foo for your favorite format foo! That is the hard way to do the job, and makes extra work in subsequent maintenance, since the Texinfo language is continually being enhanced and updated. Instead, the best approach is modify makeinfo to generate the new format.