# groff_filenames

## Name



           groff_filenames - filename conventions used in roff systems
    


## Description



           Since the evolution of _roff_ in the 1970s, a whole bunch of
           filename extensions for _roff_ files were used.
    
           The _roff_ extensions refer to preprocessors or macro packages.
           These extensions are fixed in all _Unix_ -like operating systems.
    
           Later on, **groff** added some more extensions.  This _man page_ is
           about these filename extensions.
    


## Compression of _roff_ files



           Each _roff_ file can be optionally _compressed_.  That means that the
           _total filename_ ends with a _compressor name_.  So the whole filename
           has the structure _< name>_._< extension>[_._< compression>]_.
    
           Best-known are the _compressor extensions_ **.Z** , **.gz** , and **.bzip2**.
           Relatively new is **.xz**.
    
           From now on, we will ignore the _compressions_ and only comment the
           structure _< name>_**.**_< extension>_.
    


## Man pages



           The _Unix manual pages_ are widely called _man pages_.  The _man page_
           style is the best-known part of the _roff_ language.
    
           The extensions for _man_ should be better documented.  So this is
           documented here.
    
           Files written in the _man_ language use the following extension:
           ***.**_< section>[<group>]_.
    
       **Man page sections**
           The traditional _man page <section>_ is a digit from **1** to **8**.
    
           _< name>_**.1**
           _< name>_**.2**
           _< name>_**.3**
           _< name>_**.4**
           _< name>_**.5**
           _< name>_**.6**
           _< name>_**.7**
           _< name>_**.8**
                  Classic man page _sections_.
    
           In older commercial _Unix_ systems, the 3 characters **l** , **n** , and **o**
           were also used as _section_ names.  This is today _deprecated_ , but
           there are still documents in this format.
    
           _< name>_**.l**
           _< name>_**.n**
           _< name>_**.o**
                  _Deprecated_ man page sections, which stood for “local”,
                  “new”, and “old”, respectively.
    
       **Man page group extensions**
           The _< group>_ extension in **.**_< section>[<group>]_ is optional, but it
           can be any string of word characters.  Usually programmers use a
           group name that is already used, e.g., **x** for X Window System
           documents or **tcl** to refer to the _Tcl_ programming language.
    
           Examples:
    
           **groff.1**
                  is the man page for **groff** in _section_ **1** without a _group_
    
           **xargs.1posix.gz**
                  is the man page for the program **xargs** in _section_ **1** and
                  _group_ **posix** ; moreover it is _compressed_ with **gz**(**gzip**).
    
           **config.5ssl**
                  _OpenSSL CONF_ library configuration files from _section_ **5**
                  with _group_ **ssl**.
    
           **dpkg-reconfigure.8cdebconf**
                  man page for the program **dpkg-reconfigure** in _section_ **8** and
                  _group_ **cdebconf**.
    
       **Source of man pages**
           There are 2 _roff_ languages for writing man pages: **man** and **mdoc**.
    
           The names of these 2 styles are taken as _extensions_ for the source
           code files of man pages in the _groff_ package.
    
           _< name>_**.man**
                  _traditional_ Unix-like man page format within groff source
                  files.
    
           _< name>_**.**_n_
                  A temporary man page file produced from a _name_**.man** man page
                  by a run of **make** within the **groff** source package.
    
           _< name>_**.mdoc**
                  Man page format in BSD.
    


## Traditional _troff_ extensions



       **Files using macro packages**
           The _classical roff_ languages were interpreted by the traditional
           **troff** and **nroff** programs.
    
           There were several _roff_ languages, each represented by a _macro-_
           _package_.  Each of these provided a suitable file name _extension_ :
    
           _< name>_**.me**
                  _roff_ file using the **me** _macro package_.
    
           _< name>_**.mm**
                  _roff_ file using the **mm** _macro package_
    
           _< name>_**.ms**
                  _roff_ file using the **ms** _macro package_
    
           All of these classical _roff_ languages and their extensions are
           still very active in **groff**.
    
       **Source code for macro packages (_tmac_ files)**
           In traditional _roff_ the source code for the macro packages was
           stored in _TMAC_ files.  Their file names have the form:
    
           **tmac.**_< package>_,
                  _< package>_ is the name of the macro package without the
                  leading **m** character, which is reintegrated by the option
                  **-m**.
    
           For example, **tmac.an** is the source for the **man** macro package.
    
           In the **groff** source, more suitable file names were integrated; see
           later on.
    
       **Preprocessors**
           Moreover, the following _preprocessors_ were used as filename
           extension:
    
           _< name>_**.chem**
                  for the integration of chemical formulas
    
           _< name>_**.eqn**
                  for the mathematical use of equations
    
           _< name>_**.pic**
                  graphical tool
    
           _< name>_**.tbl**
                  for tables with _tbl_
    
           _< name>_**.ref**
                  for files using the **prefer** _preprocessor_
    
       [1mroff[24m files
           _< name>_**.t**
           _< name>_**.tr**
                  for files using the _roff_ language of any kind
    


## New _groff_ extensions



           _GNU roff_ **groff** is the actual _roff_ standard, both for classical
           _roff_ and new extensions.  So even the used new extensions in the
           source code should be regarded as actual standard.  The following
           extensions are used instead of classical **.t** or **.tr** :
    
           _< name>_**.groff**
           _< name>_**.roff**
                  general ending for files using the _groff language_
    
       **Source code for macro packages (_tmac_ files)**
           As the classical form **tmac.**_< package_without_m>_, of the _TMAC_ file
           names is quite strange, _groff_ added the following structures:
    
           _< package_without_m>_**.tmac**
           **m** _< package>_**.tmac**
           **groff_m** _< package>_**.tmac**
    
       **Files using new macro packages**
           _Groff_ uses the following new macro packages:
    
           _< name>_**.mmse**
                  file with swedish **mm** _macros_ for **groff**
    
           _< name>_**.mom**
                  files written in the _groff macro package_ **mom**
    
           _< name>_**.www**
                  files written in **HTML** -like _groff macros_.
    
       **Preprocessors and postprocessors**
           _< name>_**.hdtbl**
                  Heidelberger tables, an alternative to the preprocessor
                  _tbl_.  See _groff_hdtbl_(7).
    
           _< name>_**.grap**
                  files written for the graphical **grap** processor.
    
           _< name>_**.grn**
                  for including _gremlin_(1), pictures, see _grn_(1).
    
           _< name>_**.pdfroff**
                  transform this file with **pdfroff** of the _groff_ system
    


## Authors



           This document was written by Bernd Warken ⟨groff-bernd.warken-72@
           web.de⟩.
    


## See also



           History and future
                  _roff_(7), _man-pages_(7), _groff_diff_(7), _groff_(7)
    
           _Compression_
                  _uncompress_(1posix), _gzip2_(1), _bzip2_(1), _xz_(1)
    


* * *