Est. 1986 Intermediate

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)

Paradigm Markup and lightweight macro language; @-command markup emphasizing logical document structure over visual formatting
Typing Not applicable — a declarative markup language processed by translators rather than a data-typed programming language
First Appeared 1986
Latest Version Texinfo 7.3 (1 March 2026)

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 @xref say 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 .texi source 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/texi2dvi handled 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 info program 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

1975
Richard Stallman includes an on-line, hypertext help system called Info in the original implementation of Emacs, inspired by a presentation on Douglas Engelbart's NLS hypertext system
1984
The earliest BoTeX version (0.02) appears around 31 October 1984; BoTeX was Stallman's adaptation of the earlier Bolio print-formatting system to run on TeX at MIT
1986
Stallman creates the Texinfo format (around February 1986) by combining BoTeX for printed output with the online Info system, producing a single-source format for both print and hypertext; the first Info translator was written in Emacs Lisp, primarily by Stallman and Robert J. Chassell
1986
Robert J. Chassell and Richard Stallman produce the first editions of the Texinfo manual, establishing @-commands as the markup vocabulary
1990s
Brian Fox reimplements the Info conversion program in C as makeinfo and writes the standalone info reader; Fox maintained the standalone Texinfo distribution through version 3.8
1998
Karl Berry takes over maintenance beginning with Texinfo 3.8 (manual edition 2.22), stewarding the project through its long-stable 4.x and 5.x series
2012
The C makeinfo is superseded by texi2any, a Perl reimplementation (based on texi2html by Lionel Cons and Patrice Dumas) that builds a tree representation of the document usable by all output back-ends, adding HTML, DocBook, and EPUB targets
2015
Gavin Smith becomes the maintainer starting with Texinfo 6.0, continuing active development of the format and its tools
2022
Texinfo 7.0 is released on 7 November 2022, a major update to the modern texi2any-based toolchain
2026
Texinfo 7.3 is released on 1 March 2026, the current version, reflecting continued maintenance forty years after the format's creation

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.

Language Influence

Influenced By

Scribe TeX Bolio

Running Today

Run examples using the official Docker image:

docker pull
Last updated: