1.3 Output Formats
Here is a brief overview of the output formats currently supported by
Texinfo.
- Info
- (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.
- HTML
- (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
http://www.w3.org/MarkUp/. See Generating HTML.
- DVI
- (Generated via texi2dvi.) This DeVice Independent binary
format is output by the TeX typesetting program
(http://tug.org). 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
(http://sourceforge.net/projects/xdvi/). 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
http://savannah.gnu.org/projects/teximpatient.
- PDF
- (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
http://tug.org/TUGboat/Articles/tb22-3/tb72beebeI.pdf. Texinfo
uses the pdftex program, a variant of TeX, to output PDF;
see http://tug.org/applications/pdftex. See PDF Output.
- XML
- (Generated via makeinfo --xml.) XML is a generic syntax
specification usable for any sort of content (see, for example,
http://www.w3.org/XML/). 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.
- Docbook
- (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 http://www.docbook.org. If you want
to convert from Docbook to Texinfo, please see
http://docbook2X.sourceforge.net.
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 ftp://ftp.gnu.org/gnu/help2man/.
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.