Texinfo

Last updated
Original author(s) Richard Stallman
Robert Chassell
Developer(s) Brian Fox [1]
Karl Berry
Initial releaseFebruary 1986 [2]
Stable release
7.1 [3]   OOjs UI icon edit-ltr-progressive.svg / 18 October 2023
Repository
Written in C, Perl
Operating system GNU/Linux, BSD
Type Documentation
License GPL-3.0-or-later
Website www.gnu.org/s/texinfo

Texinfo is a typesetting syntax used for generating documentation in both on-line and printed form (creating filetypes as dvi, html, pdf, etc., and a specific hypertext format, Info) with a single source file. It is implemented by a computer program released as free software of the same name, created and made available by the GNU Project from the Free Software Foundation. [4]

Contents

The main purpose of Texinfo is to provide a way to easily typeset software manuals. Similar to the LaTeX syntax, all the normal features of a book, such as chapters, sections, cross references, tables and indices are available for use in documents. Using the various output generators that are available for Texinfo, it is possible to keep several documentation types up-to-date (such as on-line documentation provided via a Web site, and printed documentation, as generated using the TeX typesetting system) using only a single source file.

The official Texinfo documentation states that the first syllable of "Texinfo" is pronounced so as to rhyme with "speck", not "hex"; this pronunciation is derived from the pronunciation of TeX, in which the X represents the Greek letter chi rather than the English letter x. The maintainers state that "Texinfo" should be written with only a capital "T" and the rest of the letters in lower case.

Output formats

In order to make it possible for several documentation output formats to be updated all at once, upon changing the original Texinfo (.texi) source file, several syntax converters are available that can be used to generate translations of the Texinfo file into other formats. Most of these are created using the texi2any program, also known as makeinfo, which is part of the GNU Texinfo distribution.

HTML
(Generated via texi2any --html.) As HTML is the standard language for documents presented on the World Wide Web, this output format can effectively be used to produce online documentation pages. The manual notes that the texi2any output is intentionally quite plain for maximum portability and accessibility. texi2any HTML output is highly customizable.
DVI
(Generated via texi2dvi.) The device independent file format is output by the TeX typesetting system, and can be used for generating device-specific commands that can be viewed or printed; for example, translation to PostScript (ps files).
PDF
(Generated via texi2dvi --pdf or texi2pdf.) Based on the PostScript language, this format was developed by Adobe Systems for portable document interchange. It can represent the exact appearance of a document and supports arbitrary scaling. It is intended to be platform-independent and can be viewed with a large variety of software. By default, Texinfo uses the pdftex program, a variant of TeX, to output PDF.
LaTeX
(Generated via texi2any --latex.) This is a typesetting system built on top of TeX. The LaTeX output can be further processed into DVI, PostScript, or PDF.
Docbook
(Generated via texi2any --docbook.) This is an XML-based markup language for technical documentation that bears some resemblance to Texinfo, in broad outlines. It is also possible to convert Docbook files to Texinfo, using the docbook2X program.
EPUB
(Generated via texi2any --epub3.) EPUB is a format designed for reading electronic books on portable devices. It is a derivative of HTML.
XML
(Generated via texi2any --xml.) Unlike all the other output formats, is a transliteration of the Texinfo source, rather than finished output. The purpose of the Texinfo XML output is to allow further processing by XML tools.
Info
(Generated via texi2any.) This is a specific format which essentially is a plain text transliteration of the original Texinfo source, with the addition of a few control characters to separate nodes and provide navigational elements for menus, cross-references, indices, and so on. Files in Info format can be browsed with the info program, which is distributed along with Texinfo, as well as with several third-party info viewers.
Plain text
(Generated via texi2any --plaintext.) This is almost the same as Info output with the navigational control characters omitted.

Man output

Notably, man is not available as an output format from the standard Texinfo tools. While Texinfo is used for writing the documentation of GNU software, which typically is used in Unix-like environments such as Linux, where man pages are the traditional format for documentation, the rationale for this is that man pages have a strict conventional format, used traditionally as quick reference guides, whereas typical Texinfo applications are for tutorials as well as reference manuals. As such, no benefit is seen in expressing Texinfo content in man page format. Moreover, many GNU projects eschew man pages almost completely, referring the reader of the provided man page (which often describes itself as seldom maintained) to the Info document.

Texinfo source file

Texinfo enables structuring a document like a book with chapters, sections, cross references and indices. The source is almost plain text, but technically it is formatted text marked up by commands that begin with "@". A sample of a part of a source file:

@node Top @top Short Sample  @node First Chapter @nodedescription The first chapter is the only chapter in this sample. @chapter First Chapter  @cindex chapter, first This is the first chapter. 

The commands mark structure such as chapters, mark words, examples, lists and tables or denote a part of the source to be processed only for certain types of output.

History and status

Texinfo is used as the official documentation system for the GNU Project. The GNU Texinfo distribution is licensed under the GNU General Public License.

The Texinfo format was created by Richard M. Stallman, combining another system for print output in use at MIT called BoTeX, with the online Info hyperlinked documentation system, also created by Stallman on top of the TECO implementation of Emacs. [5] [6] BoTeX itself was based on an earlier system called Bolio (associated with David A. Moon, and used for documentation of the Lisp Machine [7] ), converted to use TeX for its output. Robert Chassell helped Stallman to create the first translator to create Info in Emacs Lisp. Texinfo is "loosely based on Brian Reid's Scribe and other formatting languages of the time". [8]

The Texinfo software distribution development was led by Brian Fox (up to version 3.8), Karl Berry (through version 5.2), and by Gavin Smith (since Dec. 2014).

See also

Notes and references

  1. GNU's Who, The GNU Team has grown larger in the last few months: Brian Fox and Opus Goldstein have joined Jay Fenlason as the only employees of the Foundation. Most recently, Brian created a stand-alone texinfo formatter and browser..., February, 1988, GNU's Bulletin, vol. 1 no. 4
  2. Gnu Status, by Richard M. Stallman. "5. Documentation system. I now have a truly compatible pair of programs which can convert a file of texinfo format documentation into either a printed manual or an Info file. Documentation files are needed for many utilities.", February 1986, GNU's Bulletin, Volume 1 No. 1
  3. Gavin Smith (18 October 2023). "Texinfo 7.1 released" . Retrieved 18 October 2023.
  4. What's GNU: Texinfo, Issue 6, Oct 01, 1994, By Arnold Robbins, Linux Journal
  5. GNU Texinfo Manual, Section 1.14 History
  6. Richard Stallman, January 8, 2012, post on emacs-devel mailing list: "...Info has existed since 1976 or so, in the original Emacs. At that time, Info files were written by hand, and everyone could edit system files on ITS."
  7. Daniel Weinreb and David A. Moon (January 1979), Lisp Machine Manual, Second Preliminary Version
  8. Texinfo

Related Research Articles

<span class="mw-page-title-main">LaTeX</span> Document preparation software system

LaTeX is a software system for typesetting documents. LaTeX markup describes the content and layout of the document, as opposed to the formatted text found in WYSIWYG word processors like Microsoft Word, LibreOffice Writer and Apple Pages. The writer uses markup tagging conventions to define the general structure of a document, to stylise text throughout a document, and to add citations and cross-references. A TeX distribution such as TeX Live or MiKTeX is used to produce an output file suitable for printing or digital distribution.

TeX, stylized within the system as TeX, is a typesetting system which was designed and written by computer scientist and Stanford University professor Donald Knuth and first released in 1978. TeX is a popular means of typesetting complex mathematical formulae; it has been noted as one of the most sophisticated digital typographical systems.

gnuplot Command-line and GUI plotting program

gnuplot is a command-line and GUI program that can generate two- and three-dimensional plots of functions, data, and data fits. The program runs on all major computers and operating systems . Originally released in 1986, its listed authors are Thomas Williams, Colin Kelley, Russell Lang, Dave Kotz, John Campbell, Gershon Elber, Alexander Woo "and many others." Despite its name, this software is not part of the GNU Project.

DocBook is a semantic markup language for technical documentation. It was originally intended for writing technical documents related to computer hardware and software, but it can be used for any other sort of documentation.

man page Unix software documentation

A man page is a form of software documentation usually found on a Unix or Unix-like operating system. Topics covered include computer programs, formal standards and conventions, and even abstract concepts. A user may invoke a man page by issuing the man command.

<span class="mw-page-title-main">GNU TeXmacs</span> Open-source word processor

GNU TeXmacs is a scientific word processor and typesetting component of the GNU Project. It originated as a variant of GNU Emacs with TeX functionalities, though it shares no code with those programs, while using TeX fonts. It is written and maintained by Joris van der Hoeven and a group of developers. The program produces structured documents with a WYSIWYG user interface. New document styles can be created by the user. The editor provides high-quality typesetting algorithms and TeX and other fonts for publishing professional looking documents.

<span class="mw-page-title-main">LilyPond</span> Free software scorewriter

LilyPond is a computer program and file format for music engraving. One of LilyPond's major goals is to produce scores that are engraved with traditional layout rules, reflecting the era when scores were engraved by hand.

<span class="mw-page-title-main">BibTeX</span> Reference management software for formatting lists of references

BibTeX is both a bibliographic flat-file database file format and a software program for processing these files to produce lists of references (citations). The BibTeX file format is a widely used standard with broad support by reference management software.

Pretty-printing is the application of any of various stylistic formatting conventions to text files, such as source code, markup, and similar kinds of content. These formatting conventions may entail adhering to an indentation style, using different color and typeface to highlight syntactic elements of source code, or adjusting size, to make the content easier for people to read, and understand. Pretty-printers for source code are sometimes called code formatters or beautifiers.

<span class="mw-page-title-main">ConTeXt</span> General-purpose document processor, derived from TeX

ConTeXt is a general-purpose document processor. Like LaTeX, it is derived from TeX. It is especially suited for structured documents, automated document production, very fine typography, and multilingual typesetting. It is based in part on the TeX typesetting system, and uses a document markup language for manuscript preparation. The typographical and automated capabilities of ConTeXt are extensive, including interfaces for handling microtypography, multiple footnotes and footnote classes, and manipulating OpenType fonts and features. Moreover, it offers extensive support for colors, backgrounds, hyperlinks, presentations, figure-text integration, and conditional compilation. It gives the user extensive control over formatting while making it easy to create new layouts and styles without learning the low-level TeX macro language.

<span class="mw-page-title-main">Richard Stallman</span> American free software activist and GNU Project founder (born 1953)

Richard Matthew Stallman, also known by his initials, rms, is an American free software movement activist and programmer. He campaigns for software to be distributed in such a manner that its users have the freedom to use, study, distribute, and modify that software. Software that ensures these freedoms is termed free software. Stallman launched the GNU Project, founded the Free Software Foundation (FSF) in October 1985, developed the GNU Compiler Collection and GNU Emacs, and wrote all versions of the GNU General Public License.

info (Unix)

Info is a software utility which forms a hypertextual, multipage documentation and help viewer working on a command-line interface.

In computing, Pic is a domain-specific programming language by Brian Kernighan for specifying line diagrams. The language contains predefined basic linear objects: line, move, arrow, and spline, the planar objects box, circle, ellipse, arc, and definable composite elements. Objects are placed with respect to other objects or absolute coordinates. A liberal interpretation of the input invokes default parameters when objects are incompletely specified. An interpreter translates this description into concrete drawing commands in a variety of possible output formats. Pic is a procedural programming language, with variable assignment, macros, conditionals, and looping. The language is an example of a little language originally intended for the comfort of non-programmers in the Unix environment.

Scribe is a markup language and word processing system that pioneered the use of descriptive markup. Scribe was revolutionary when it was proposed, because it involved for the first time a clean separation of presentation and content.

<span class="mw-page-title-main">GNU Emacs</span> GNU version of the Emacs text editor

GNU Emacs is a free software text editor. It was created by GNU Project founder Richard Stallman, based on the Emacs editor developed for Unix operating systems. GNU Emacs has been a central component of the GNU project and a flagship project of the free software movement. Its tag line is "the extensible self-documenting text editor."

Emacs, originally named EMACS, is a family of text editors that are characterized by their extensibility. The manual for the most widely used variant, GNU Emacs, describes it as "the extensible, customizable, self-documenting, real-time display editor". Development of the first Emacs began in the mid-1970s, and work on GNU Emacs, directly descended from the original, is ongoing; its latest version is 29.3, released March 2024.

<span class="mw-page-title-main">Org-mode</span> Open source mode for GNU Emacs

Org Mode is a mode for document editing, formatting, and organizing within the free software text editor GNU Emacs and its derivatives, designed for notes, planning, and authoring. The name is used to encompass plain text files that include simple marks to indicate levels of a hierarchy, and an editor with functions that can read the markup and manipulate hierarchy elements.