[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ next ]
The following TEXMF trees are available. They are displayed below in the order they are searched, where earlier ones override later ones.
Default location: $HOME/.texmf-config/
Contains user-specific configuration
Default location: $HOME/.texmf-var/
Contains user-specific generated files
Default location: $HOME/texmf/
Contains user-specific static input files, e.g. new LaTeX packages.
Default location: /etc/texmf
Contains system-wide configuration
Default location: /var/lib/texmf/
Contains system-wide generated files
Default location: /usr/share/texmf/
Contains files shipped by Debian packages other than the main texlive packages.
This tree contains system-wide, dpkg
-managed input files.
Default location: /usr/share/texlive/texmf/
Contains files that are closely related to the binaries and the specific
version, thus this tree has higher priority then TEXMFLOCAL below.
It contains only few system-wide, dpkg
-managed input files.
Default location: /usr/local/share/texmf/
Contains system-wide input files, used for configuration on specific systems.
Default location: /usr/share/texlive/texmf-dist
Contains the binary-independent files that are distributed with TeX Live, comprising most of the input files, font files etc.
If you want to add files, you should usually use TEXMFLOCAL or
TEXMFHOME, depending on whether you are the system administrator or
a user. If needed, a system administrator can add additional trees to the
TEXMF variable by copying the definition of TEXMF from
/usr/share/texmf/web2c/texmf.cnf
into one file in
/etc/texmf/texmf.d/
, for example
/etc/texmf/texmf.d/00local.cnf
(earlier entries take precedence).
TEXMFCONFIG and TEXMFVAR are used by the user-specific
texconfig
, updmap
, and fmtutil
commands.
Note that texconfig
creates a copy of configuration files from
TEXMFMAIN (or /etc/texmf
) at the time it is first
invoked to handle a particular file, and does not track later system-wide
changes, and it does not know about update-*
programs (see below
The files texmf.cnf
,
fmtutil.cnf
, updmap.cfg
and language.*
group, Section 2.4).
TeX Live supports a complete user-specific configuration setup in the user's
home directory. System administrators must use the commands
texconfig-sys
, fmtutil-sys
and
updmap-sys
which act on the system-wide configuration files.
Users can invoke their user counterparts texconfig
,
fmtutil
and updmap
. This will put copies of the
system-wide configuration files into the user's TEXMFCONFIG
directory (by default, $HOME/.texmf-config
), modify them and
generate according formats, if applicable.
There is no such mechanism for texmf.cnf
. For a way to customize
texmf.cnf
as a user, see Per
user configuration changes, Section 2.4.4.
On a TeX system, in principle every TeX input file can be used to change
the behavior of the system and hence could be treated as a configuration
file. To avoid an inflation of configuration files, those that are used to
control the typeset output - the appearance of documents - are not installed as
configuration files. It makes more sense to keep changed versions in the
current directory for a certain project, or in TEXMFHOME or
TEXMFCONFIG of a particular user. However, local admins can take
any file they want from the TEXMFDIST
(/usr/share/texlive/texmf-dist
) or TEXMFDEBIAN
(/usr/share/texmf
) trees and put changed copies into the
respective directories below /etc/texmf
(TEXMFSYSCONFIG
which sorts before all other trees) or /usr/local/share/texmf
(TEXMFLOCAL which sorts before the above two trees).
Since the package management system does not know whether a file is treated as a configuration file on a specific system, it is up to the site admin or local user to check whether one of their changed files has changed in TEXMFDIST or TEXMFDEBIAN.
The central system-wide configuration files texmf.cnf
(which
controls the basic operation and file search paths for the included programs),
fmtutil.cnf
(which specifies the available TeX formats), (several)
updmap.cfg
(font configuration) and language.dat
,
language.def
, language.dat.lua
(hyphenation patterns
for latex, etex, lualatex, resp.) are handled through a Debian-specific
mechanism that allows the basic TeX packages, add-on packages and local
administrators to combine their changes (see The files texmf.cnf
,
fmtutil.cnf
, updmap.cfg
and language.*
group, Section 2.4 below).
Hyphenation should pretty much work out of the box. Please note that in
Debian, language.dat, language.def, language.dat.lua are generated files (see
The files texmf.cnf
,
fmtutil.cnf
, updmap.cfg
and language.*
group, Section 2.4).
texmf.cnf
, fmtutil.cnf
, updmap.cfg
and language.*
group
In the following we will refer to the three files language.dat
,
language.def
, language.dat.lua
, as
language.*
.
In the following we describe ways to configure these files for the system
administrator, i.e. one that has write access to the
/etc/texmf
hierachy. In Per
user configuration changes, Section 2.4.4 we describe a per-user
configuration.
The files texmf.cnf
, fmtutil.cnf
,
updmap.cfg
and language.dat
contain configuration
options from TeX Live, possibly from you, and from other TeX-related packages.
They are generated by scripts and may not be edited directly. Rather, you
should work with the source files in the respective directories below
/etc/texmf/
.
In order to make updates smooth, you should avoid editing system-wide
files as far as possible, and instead add new files to change
settings. For texmf.cnf
snippets, this is particularly easy,
since earlier entries override any later entries. Only for removing settings
from fmtutil.cnf
, or language.*
it is necessary to
edit existing files.
texmf.cnf
and update-texmf
The TeX binaries are built to look for and merge texmf.cnf
files
in various trees. That means that it is easy to override the default settings
as shipped in /usr/share/texmf/web2c/texmf.cnf
by adding entries
in /etc/texmf/web2c/texmf.cnf
. The Debian packaging includes a
mechanism for constructing texmf.cnf from a collection of files under
/etc/texmf/texmf.d/
. To customize texmf.cnf
while
retaining the Debian-supplied configuration, create an appropriate file (or
files) in /etc/texmf/texmf.d/
, or change existing files, and then
run update-texmf
. This will generate the desired
texmf.cnf
for you. By default nothing is shipped in
/etc/texmf/texmf.d/
since no adaptions are necessary, but further
addon packages might ship parts.
You may not edit the file /etc/texmf/web2c/texmf.cnf
directly, any
local changes will be overwritten the next time this file is generated.
Instead, please edit the files in /etc/texmf/texmf.d
, or create an
additional one, and invoke update-texmf
. This will write your
changes into /etc/texmf/web2c/texmf.cnf
.
You should name your customization file something like
40macros.cnf
; the leading numerals will decide the order in which
configuration fragments will be assembled by update-texmf
, so it
might be important to place your customizations in an appropriate place in the
sequence — earlier definitions take precedence over later ones. In
previous versions the extension .cnf was not necessary, and all
files in the directory were used. If you had teTeX installed in woody, you
might still have private files which need the extension to be added.
fmtutil.cnf
and update-fmtutil
, language.*
and update-language
These files are also generated files, just as it has been explained above for
texmf.cnf
. The difference to texmf.cnf
is that the
system-wide files will be put into /var/lib/texmf/web2c
, and any
change made in these files will be unconditionally overwritten
by update-fmtutil
and update-language
, respectively.
Only the files in /etc/texmf/fmt.d/
and
/etc/texmf/hyphen.d/
will be treated as configuration files.
Furthermore, the files fmtutil.cnf
and language.*
are
used on a first-found-first-used basis, if there are more than one in the
search path, whereas if there are several texmf.cnf
files in the
search path, their settings are combined as described in Per user configuration changes, Section
2.4.4.
Just as for texmf.cnf
, the right way to change settings is to edit
or add files in /etc/texmf/fmt.d/
or
/etc/texmf/language.d/
. The details have been described above
(see texmf.cnf
and
update-texmf
, Section 2.4.1).
updmap.cfg
updmap-sys(8)
reads all available updmap.cfg
files found, stacking them on top of each other. That means that local
configurations can be done by editing/adding a file in
/etc/texmf/web2c/updmap.cfg
.
updmap-sys(8)
provides options for enabling or disabling font map
files. When enabling a new map file that is not mentioned,
updmap-sys
will create or edit
/etc/texmf/web2c/updmap.cfg
. Note that updmap-sys
's
--edit and --syncwithtrees options cannot be used on
a Debian system.
For more details on how to disable map files that are enabled on a higher
level, please see the man page and help output of updmap
.
update-texmf
is only available for root; if a user wants to
maintain their own texmf.cnf
, they can put it into
TEXMFCONFIG/web2c and must manually edit it. However,
in order for it to be found, they need to set an environment variable [1]:
export TEXMFCNF=$HOME/.texmf-config/web2c:
The final colon includes the system wide default. Since all
texmf.cnf
files are read, with earlier definitions taking
precedence over later ones, it is best to keep only a minimal set of
definitions in the user-specific file.
In contrast to the above—TeX reading and merging all
texmf.cnf
files—the first found occurrence of one
of the files language.dat
, fmtutil.cnf
is used.
Thus, when called by a user, the other configuration update programs also work
with files in TEXMFCONFIG/fmt.d or
TEXMFCONFIG/language.d, where TEXMFCONFIG is
usually HOME/.texmf-config
. They combine files in
these directories with the files in the system-wide directories—naturally
the user-specific ones take precedence if the names are equal (see User-specific installation,
Section 4.4) —and drop the respective generated file into the user's
TEXMFVAR, effectively overriding the system-wide config files. Note
that changes to existing configuration file snippets made by package updates
will not be propagated to the user's files.
updmap(1)
provides the same options for enabling and disabling map
files as updmap-sys(8)
, see above. updmap.cfg
is
created or edited in TEXMFCONFIG/web2c/.
A TeX system needs to generate new font data (pixel data, metric, sources) on
the fly. These files can be saved into the TeX font cache and later be reused.
By default, a separate font cache is created for each user in their own
TEXMFVAR directory ($HOME/.texmf-var/
). If
this directory is not writable, e.g. during automated package building, a
directory called VARTEXFONTS, /tmp/texfonts/
, is used
instead, but this directory is cleaned up regularly.
On multi-user machines, it might be advisable that the local administrator
enables a site-wide font cache and sets VARTEXFONTS to a persistent
directory, e.g. /var/cache/fonts
. The variable can be changed by
adding an entry via /etc/texmf/texmf.d
, e.g.
/etc/texmf/texmf.d/00local.cnf
. Do not forget to run
update-texmf
after making the change. To enable a side-wide font
caching the admin should edit /etc/texmf/web2c/mktex.cnf
and use
'varfonts' instead of 'texmfvar' in MT_FEATURES. Care should be
taken to specifiy appropriate permissions for the directory containing the font
cache. Either the local admin should create all available font data and not
allow write access, or else write access should be limited to trusted users.
Yet an other alternative is to bind-mount /var/cache/fonts
from a
separate partition, so that users are not able to fill up the /var
partition with font data.
[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ next ]
Debian-specific information about TeX packages
generated from $Id$mailto:debian-tex-maint@lists.debian.org