## Documentation

Programs for creating and viewing documentation.

To facilitate navigating in this list, projects are categorized by their purpose, authorship, and current state. Each project entry lists the categories it pertains to. Clicking on a category name will bring a listing of all projects in that category.

Additionally, a list of related projects is provided where applicable. Each element in that list is a link to the corresponding project entry.

Clicking on a project's name will bring this project's entry as a separate page (a permalink).

Hovering your mouse over the version information of a project shows the list of changes introduced by that version.

Sort controls below allow you to order the list either lexicographically or by the most recent release date, in both directions.

Using the Search control, you can select projects by name. Shell-style globbing patterns (wildcards) are accepted.

Sorting:

### imprimatur

(Not released)
Category:
Description:

Imprimatur provides Texinfo macros for various editing tasks such as adding editor notes and annotations, as well as Makeinfo rules for verifying Texinfo document structure, format, and (to a certain extent) content coverage.

Related projects:

### texinfo

Version: 6.8  —  3 July 2021
* Language
. new command @displaymath for formatting of mathematical notation
. @example takes an argument to specify the language
. mark these commands as deprecated, not to be used:
@centerchap, @definfoenclose, @refill, @inforef.
. new paper size @bsixpaper

* texi2any
. should be faster as Perl XS parser is enabled by default
. changes to HTML output:
. MathJax support for display of math.  new variables HTML_MATH,
MATHJAX_SCRIPT and MATHJAX_SOURCE.
. new variables JS_WEBLABELS and JS_WEBLABELS_FILE to support
. use section names in links by default (configure with
xrefautomaticsectiontitle customization variable)
. document sections wrapped in <div> elements
. new variable USE_NODE_DIRECTIONS to use node or section structure
for node directions
. copiable anchor links for definitions with COPIABLE_ANCHORS variable
. experimental JavaScript browsing interface enabled with INFO_JS_DIR
. don't add an extra period before file extension given as an argument

* info
. support compressed dir files

* texi2dvi
. stop on first error in input file

* texinfo.tex
. put logical page numbers into PDF's ('page labels')
. put chapter numbers in the PDF outline
. new Finnish translation

* Distribution
. autoconf 2.71, automake 1.16.3, gettext 0.21

Category:
Description:

Texinfo is the official documentation format of the GNU project. It uses a single source file to produce output in a number of formats, both online and printed (dvi, html, info, pdf, xml, etc.).

Related projects:

### xenv

Version: 4.0  —  2022-08-25
* Stash storage

Stash is a special kind of storage to hold temporary data.  It is
used to implement several preprocessor features: diversions,
conditionals and loops.  Data are written to the memory for as long
as their amount fits the memory buffer allotted for stash.  The size
of this buffer is controlled by the feature value "stashsize".  When
the buffer gets full, surplus data are written to a temporary
file.  Number of temporary files that can be open simultaneously is
controlled by the feature value "stashfiles".  This works as follows:
when a new stash file needs to be open and the number of already open
files hits the limit, the program will close the least recently used
stash file, thereby freeing a file descriptor for use in the new
stash.  The closed file will eventually be reopened when it is needed,
using the same process.

Default values are: for "stashsize" - the size of the system memory
page, and for "stashfiles" - 2/3 of the soft limit for open files.

* Sink streams

On systems where fopencookie(3) call is available, xenv uses special
"sink" streams for text that's going to be discarded.  This speeds up
the operation and spares open file descriptors.

* New directives: $$ifcom,$$ifncom

$$ifcom COMMAND TEXT1$$else
TEXT2
$$endif Runs COMMAND and substitutes TEXT1 if it exits with code 0 and TEXT2 otherwise.$$incom is similar, but expands to TEXT1 if COMMAND exits
with a non-zero status and to TEXT2 otherwise.

COMMAND is passed to the shell verbatim, i.e. any variable an command
references in it are expanded by the shell and not by xenv (this is
similar to how command expansion behaves).

* Bugfixes

** $$set and$$unset ignored if evaluated in a false conditional branch

Category:
Description:

Xenv is a text preprocessor. It reads input from files (or the standard input, if none are supplied) and prints it on the standard output, replacing references to environment variables with their actual values. Variables are referenced using POSIX-compatible shell syntax: $NAME, ${NAME}, ${NAME:-word}, ${NAME+=word}, ${NAME:=word}, ${NAME:?word}. A special ternary construct is provided: \${NAME:|word1|word2}, which substitutes the expansion of word1 if NAME is set and the expansion of word2 otherwise. Preprocessor directives provide support for inclusion of external files, conditional text expansion (depending on the value of an environment variable or exit code of an external command), diversions, for and foreach loops etc.