[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ next ]


The Debian TeX sub-policy
Chapter 6 - Configuration


6.1 Configuration files

Files that are used to modify the behavior of executables must be treated as any other configuration file in a Debian package. However, files that are used to control the typeset output - the appearance of documents - need not be treated as configuration files. It is up to the maintainer of the package to decide which files make sense to be used for site-wide (as opposed to per-project or per-document) customization.

A typical case for a site-wide configuration file is a file that must be changed if a style file should use additional modules (installed, for example, into TEXMFLOCAL). Options that only control document output are rather used for a particular document or documentation project and should usually not be installed as a configuration file.

Note that /etc/texmf/ is a usual TDS tree. Files can be put into appropriate TDS-conforming subdirectories (e.g. /etc/texmf/fonts/map/), but directories not specified in TDS (or added Debian-specifically in tex-common's files in /etc/texmf/texmf.d/) are generally not searched for TeX input files and can be used by packages for configuration files that are not TeX input files (e.g. the files in subdirectories fmt.d or hyphen.d).


6.2 Configuration update programs

Configuration files in the TeX world come in two classes: stackable and unstackable. The first class means that the respective programs read all configuration files found, while in the later case only the top or first configuration file is used.

Stackable configuration files in TeX are TEXMFTREE/web2c/texmf.cnf (central configuration for TeX applications), TEXMFTREE/web2c/updmap.cfg (font configuration), and TEXMFTREE/web2c/fmtutil.cnf (for format definitions). Unstackable configuration files are TEXMFTREE/tex/generic/config/language.dat (language support/hyphenation patterns for latex based formats), TEXMFTREE/tex/generic/config/language.def (the same for etex based formats), and TEXMFTREE/tex/generic/config/language.dat.lua (the same for luatex based formats).

In Debian, by default the respective configuration files of the following trees are used: For texmf.cnf: TEXMFDEBIAN (the texmf.cnf file is a link to the one in TEXMFMAIN). For updmap.cfg:TEXMFDIST, TEXMFDEBIAN. For updmap.cfg:TEXMFDIST, TEXMFDEBIAN. For the unstackable configuration files the respective copies in TEXMFSYSVAR are used.

The stackable configuration files are either static (texmf.cnf) or generated automatically in the background without any need for configuration, since changes can be included in a higher order configuration file.

The non stackable configuration files plus the file /etc/texmf/web2c/texmf.cnf are generated by configuration update programs from configuration files in subdirectories of /etc/texmf. For all of them this is the only method of configuration.

Packages are free to add configuration items to the common configuration files, but they should not try to override configuration items that are supplied by other packages. Rather, shared configuration items should be supplied by the Basic TeX packages or any other package on which all involved packages depend, with a setting appropriate for all. If this is impractical, the involved packages must at least agree on the way different packages override other's settings[5].

The configuration update programs should be called without any options to allow for internal changes, e.g. of the directories where the generated files are placed.

All package configuration related to TeX files can be done using tex-common's trigger mechanism. That means that packages that changed updmap.cfg (via update-updmap) must either call update-texmf-config map which will pass the configuration work to tex-common, or call updmap-sys.

In a similar way, packages that changed language.dat or fmtutil.cnf must either call update-texmf-config hyphen (for language.dat) or update-texmf-config format (for fmtutil.cnf), which will pass the configuration work to tex-common, or call fmtutil-sys (see below).

The recommended way to implement the configuration scheme necessary is to use the debhelper program dh_installtex provided by tex-common. See dh_installtex(1) for usage details.


[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ next ]


The Debian TeX sub-policy

2015-09-03 (incomplete)

The Debian TeX mailing list debian-tex-maint@lists.debian.org