Texinfo
The GNU Project's official documentation format — a single-source markup language, created by Richard Stallman, that produces online Info manuals, HTML, PDF, and more from one @-command source file.
Created by Richard M. Stallman (with Robert J. Chassell)
Texinfo is a documentation markup language and toolchain created by Richard M. Stallman and first assembled into its modern form in 1986. It is the official documentation format of the GNU Project, designed around a single guiding idea: an author writes one source file, and the tools generate every output format from it — the hypertext Info manuals read inside Emacs or the standalone info reader, as well as HTML, PDF, DVI, DocBook, EPUB, XML, and plain text. Its markup is built from @-commands (so named because each begins with an @ character) that describe a document’s structure — chapters, nodes, definitions, cross-references — rather than its visual appearance.
Texinfo occupies an unusual niche: it is neither a general-purpose programming language nor a pure typesetting system. It borrows TeX’s typesetting engine for its printed output while adding its own hypertext model for online reading, and it has served as the connective tissue of GNU documentation for four decades.
History & Origins
Texinfo’s roots reach back to two separate systems Stallman built at MIT. The first was Info, an on-line, hypertext help system he added to the original Emacs around 1975, inspired by a demonstration of Douglas Engelbart’s NLS hypertext research. Info organized documentation into a web of linked nodes that a reader could navigate interactively — an idea well ahead of its time.
The second was a print-formatting lineage. MIT used a formatter called Bolio; Stallman adapted it to run on TeX, producing a system he called BoTeX (the earliest known version, 0.02, dates to around 31 October 1984). BoTeX gave high-quality typeset output, but it was separate from Info’s on-line world.
Around February 1986, Stallman merged the two: Texinfo combined BoTeX’s print capabilities with Info’s hypertext model so that a single source file could produce both a printed manual and a browsable Info manual. The first translator that turned Texinfo source into Info was written in Emacs Lisp, primarily by Stallman and Robert J. Chassell, who together also wrote the early editions of the Texinfo manual. The markup vocabulary drew on Brian Reid’s Scribe, an earlier structure-oriented formatting language from Carnegie Mellon that likewise used the @ character to introduce commands and emphasized content over appearance.
Design Philosophy
Texinfo’s central principle is single-source, multi-format documentation. Rather than maintaining separate files for a printed book and an on-line help system, the author writes once and lets translators handle every target. This makes the source file the canonical record and keeps all output types automatically in sync.
Two further ideas shape the language:
- Structure over presentation. @-commands such as
@chapter,@deffn,@code, and@xrefsay what a piece of text is, leaving each back-end to decide how it should look in Info, HTML, or print. A cross-reference works whether the reader is clicking a hyperlink in a browser or reading a page number in a book. - Hypertext as a first-class citizen. Long before the web, Texinfo modeled documentation as a graph of nodes connected by Next, Previous, and Up pointers, giving readers non-linear navigation through a manual.
Key Features
- @-command markup. Commands beginning with
@mark sectioning, inline styling, lists, tables, examples, and definitions of functions, variables, and types. - The node model. Documents are divided into nodes that form the navigable structure of an Info manual, mirrored by the sectioning hierarchy in print and HTML output.
- Many output formats. A single
.texisource can be converted to Info, HTML, PDF (via TeX), DVI, DocBook, EPUB, XML, and plain text. - Two processors. Historically makeinfo (rewritten in C by Brian Fox in the early 1990s) generated Info output, while
tex/texi2dvihandled print. Since 2012 the modern texi2any engine unifies the non-TeX back-ends behind a shared document tree. - The info reader. Texinfo ships a standalone
infoprogram for reading installed manuals in a terminal, complementing the Info browser built into Emacs.
A short Texinfo source fragment shows the structure-first, @-command style:
\input texinfo
@setfilename example.info
@settitle Example Manual
@node Top
@top Example Manual
@chapter Introduction
This manual is written in @code{Texinfo}.
@xref{Details}, for more information.
@node Details
@chapter Details
Here are the @emph{details}.
@bye
Evolution
Texinfo’s tooling has been rewritten several times even as the markup itself stayed remarkably stable. The original Emacs Lisp translator gave way in the early 1990s to Brian Fox’s C implementation, makeinfo, along with the standalone info reader; Fox maintained the standalone distribution through version 3.8. Karl Berry then took over maintenance and guided the long-lived 4.x and 5.x series. In 2012, the C makeinfo was superseded by texi2any, a Perl reimplementation derived from texi2html (originally by Lionel Cons and substantially developed by Patrice Dumas) that builds a tree-based representation of the document and drives all non-TeX back-ends — adding modern targets such as DocBook and EPUB. Gavin Smith has maintained the project since version 6.0 (2015), with the 7.x series continuing under active development; Texinfo 7.3 was released on 1 March 2026.
Current Relevance
Texinfo remains the standard documentation format across the GNU ecosystem. Flagship tools — GCC, glibc, Bash, Make, Autoconf, and Emacs itself — ship their manuals as Texinfo source, and Linux distributions package the toolchain and install generated Info manuals as part of their base documentation. For many GNU utilities, the Info manual is more complete than the corresponding man page, and info coreutils or C-h i inside Emacs is often the fullest reference available. While lighter-weight formats like Markdown dominate casual documentation today, Texinfo’s ability to produce a rigorous printed manual and a navigable on-line reference from one source keeps it firmly in place where comprehensive, book-length technical documentation is required.
Why It Matters
Texinfo is a quiet piece of infrastructure that has shaped how a generation of programmers reads documentation. It demonstrated the single-source, multi-format approach — one canonical file, many outputs — decades before it became a common goal of documentation tooling, and it delivered practical hypertext help on ordinary computers years before the web made hyperlinks universal. As the documentation backbone of the GNU Project, it has carried the reference manuals for some of the most widely used software in the world, and its longevity — actively maintained forty years after its creation — is a testament to a design that got the fundamentals right.
Timeline
Notable Uses & Legacy
The GNU Project
Texinfo is the official documentation format of the GNU Project; core GNU software such as GCC, the GNU C Library (glibc), Bash, Make, Autoconf, and GNU Emacs ship their reference manuals as Texinfo source, distributed as Info manuals and rendered to HTML and PDF.
GNU Emacs and the info reader
Emacs includes a built-in Info browser, and the standalone info program distributed with Texinfo lets users read installed Info manuals from the terminal, making Texinfo the backbone of on-system help across the GNU/Linux world.
GNU Coreutils and system utilities
Command-line tools bundled in GNU Coreutils and related packages document their behavior primarily in Texinfo, so that `info coreutils` often provides fuller reference material than the corresponding man pages.
Linux distributions
Distributions such as Debian, Fedora, and their derivatives package Texinfo (the makeinfo/texi2any toolchain and the info reader) as part of their base documentation infrastructure, installing generated Info manuals under a shared directory tree.
Free-software manuals and books
Many free-software reference manuals — and printed books produced by the Free Software Foundation — are authored in Texinfo so that a single source yields both a browsable Info manual and a typeset, TeX-set printed edition.