summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/info
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-05-20 17:48:27 +0000
committerKarl Berry <karl@freefriends.org>2014-05-20 17:48:27 +0000
commit8134709f6bd41afd6d0e810d07e6f3ec89e50310 (patch)
tree91bd78c86f4d2fc7460053ca5c31b1ec3d679e34 /Master/texmf-dist/doc/info
parent9965933ec3f007f4e1385724c4c3e1b131a237ee (diff)
update our texinfo manuals
git-svn-id: svn://tug.org/texlive/trunk@34145 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/info')
-rw-r--r--Master/texmf-dist/doc/info/dir1
-rw-r--r--Master/texmf-dist/doc/info/dvipng.info981
-rw-r--r--Master/texmf-dist/doc/info/dvips.info6
-rw-r--r--Master/texmf-dist/doc/info/kpathsea.info2934
-rw-r--r--Master/texmf-dist/doc/info/tlbuild.info5209
-rw-r--r--Master/texmf-dist/doc/info/web2c.info193
6 files changed, 6700 insertions, 2624 deletions
diff --git a/Master/texmf-dist/doc/info/dir b/Master/texmf-dist/doc/info/dir
index 9132b9981a3..865ccfce962 100644
--- a/Master/texmf-dist/doc/info/dir
+++ b/Master/texmf-dist/doc/info/dir
@@ -30,6 +30,7 @@ TeX
* Naming TeX fonts: (fontname). Filenames for TeX fonts.
* TDS: (tds). Standard TeX directory structure.
* TeXDraw: (texdraw). Drawing PostScript diagrams within TeX.
+* TL-build: (tlbuild). TeX Live configuration and development.
* Web2C: (web2c). TeX, Metafont, and companion programs.
Individual utilities
diff --git a/Master/texmf-dist/doc/info/dvipng.info b/Master/texmf-dist/doc/info/dvipng.info
index c0f565d72be..c1062fb6d72 100644
--- a/Master/texmf-dist/doc/info/dvipng.info
+++ b/Master/texmf-dist/doc/info/dvipng.info
@@ -1,4 +1,4 @@
-This is dvipng.info, produced by makeinfo version 4.13 from dvipng.texi.
+This is dvipng.info, produced by makeinfo version 5.1 from dvipng.texi.
INFO-DIR-SECTION TeX
START-INFO-DIR-ENTRY
@@ -43,43 +43,43 @@ File: dvipng.info, Node: Introduction, Next: Installation, Prev: Top, Up: To
This program makes PNG and/or GIF graphics from DVI files as obtained
from TeX and its relatives.
- If GIF support is enabled, GIF output is chosen by using the
-`dvigif' binary or with the `--gif' option.
+ If GIF support is enabled, GIF output is chosen by using the 'dvigif'
+binary or with the '--gif' option.
It is intended to produce anti-aliased screen-resolution images as
-fast as is possible. The target audience is people who need to generate
-and regenerate many images again and again. The primary target is the
+fast as is possible. The target audience is people who need to generate
+and regenerate many images again and again. The primary target is the
preview-latex (X)Emacs package, a package to preview formulas from
-within (X)Emacs. Yes, you get to see your formulas in the (X)Emacs
-buffer, see `http://www.gnu.org/software/auctex/preview-latex.html'.
+within (X)Emacs. Yes, you get to see your formulas in the (X)Emacs
+buffer, see <http://www.gnu.org/software/auctex/preview-latex.html>.
Another example is WeBWorK, an internet-based method for delivering
-homework problems to students over the internet, giving students
-instant feedback as to whether or not their answers are correct, see
-`http://webwork.math.rochester.edu'.
+homework problems to students over the internet, giving students instant
+feedback as to whether or not their answers are correct, see
+<http://webwork.math.rochester.edu>.
A more recent addition to the dvipng-using applications out there is
-MediaWiki, the software behind Wikipedia and many other wikis out
-there. Dvipng is used to render mathematical formulae from version
-1.8.0 of MediaWiki, see `http://www.mediawiki.org'.
+MediaWiki, the software behind Wikipedia and many other wikis out there.
+Dvipng is used to render mathematical formulae from version 1.8.0 of
+MediaWiki, see <http://www.mediawiki.org>.
Other applications may also benefit, like web applications as
latex2html and WYSIWYG editors like LyX.
- The benefits of `dvipng'/`dvigif' include
+ The benefits of 'dvipng'/'dvigif' include
- * Speed. It is a very fast bitmap-rendering code for DVI files, which
- makes it suitable for generating large amounts of images
+ * Speed. It is a very fast bitmap-rendering code for DVI files,
+ which makes it suitable for generating large amounts of images
on-the-fly, as needed in preview-latex, WeBWorK and others.
* It does not read the postamble, so it can be started before TeX
- finishes. There is a `--follow' switch that makes dvipng wait at
+ finishes. There is a '--follow' switch that makes dvipng wait at
end-of-file for further output, unless it finds the POST marker
that indicates the end of the DVI.
- * Interactive query of options. dvipng can read options interactively
- through stdin, and all options are usable. It is even possible to
- change the input file through this interface.
+ * Interactive query of options. dvipng can read options
+ interactively through stdin, and all options are usable. It is
+ even possible to change the input file through this interface.
* Supports PK, VF, PostScript Type1, and TrueType fonts, subfonts
(i.e., as used in CJK-LaTeX), color specials, and inclusion of
@@ -87,23 +87,22 @@ latex2html and WYSIWYG editors like LyX.
* and more...
-

File: dvipng.info, Node: Installation, Next: Basic usage, Prev: Introduction, Up: Top
2 Installation
**************
-Installing dvipng should be simple: merely `./configure', `make', and
-`make install'.
+Installing dvipng should be simple: merely './configure', 'make', and
+'make install'.
* Menu:
-* Prerequisites::
-* Configure::
-* Build/install::
+* Prerequisites::
+* Configure::
+* Build/install::
* Installation outside the texmf tree::
-* Advice for non-privileged users::
+* Advice for non-privileged users::

File: dvipng.info, Node: Prerequisites, Next: Configure, Up: Installation
@@ -113,35 +112,35 @@ File: dvipng.info, Node: Prerequisites, Next: Configure, Up: Installation
* The GD Graphics Draw library, libgd
- The drawing library `libgd' is necessary, and is downloadable at
- `http://www.boutell.com/gd', and there are binary packages for
- most operating systems from their respective distributors. In any
- case, the latest version of the library installs using `autoconf'
- so it should not be difficult for you to install it from source,
- and then proceed with installing dvipng.
+ The drawing library 'libgd' is necessary, and is downloadable at
+ <http://www.boutell.com/gd>, and there are binary packages for most
+ operating systems from their respective distributors. In any case,
+ the latest version of the library installs using 'autoconf' so it
+ should not be difficult for you to install it from source, and then
+ proceed with installing dvipng.
* The path-searching library kpathsea
Kpathsea is most likely included in your LaTeX installation, but it
- may happen that ./configure does not find it; see below. If you do
- not have it, download it from `http://www.ctan.org' and compile it.
+ may happen that ./configure does not find it; see below. If you do
+ not have it, download it from <http://www.ctan.org> and compile it.
I have no experience with this, so I cannot help much here.
* The font-rendering library FreeType 2
While not strictly necessary, a recent FreeType 2 is recommended
- since dvipng currently will produce better-quality images when
- this library is available. To take advantage of this, you should
- have at least FreeType 2.1.9.
+ since dvipng currently will produce better-quality images when this
+ library is available. To take advantage of this, you should have
+ at least FreeType 2.1.9.
FreeType 2 will enable direct support for PostScript and TrueType
fonts, so that dvipng will not need to generate bitmapped variants
on disk of the TeX fonts since modern TeX distributions include
- PostScript versions of them. Then, you can render images at
+ PostScript versions of them. Then, you can render images at
different (and unusual) resolutions without cluttering the disk
with lots of bitmapped fonts.
- Finally, it will enable subfont support in dvipng. That is, if you
+ Finally, it will enable subfont support in dvipng. That is, if you
want to render CJK-LaTeX characters, you must have FreeType 2
installed.
@@ -151,17 +150,17 @@ File: dvipng.info, Node: Prerequisites, Next: Configure, Up: Installation
PostScript fonts in dvipng and will not include subfont support.
Also here, you can render images at different (and unusual)
resolutions without cluttering the disk with lots of bitmapped
- fonts. If both FreeType 2 and T1lib are present, FreeType will be
+ fonts. If both FreeType 2 and T1lib are present, FreeType will be
internally preferred by dvipng but T1lib can be chosen at runtime.
* libpng and libz
To be able to compress and write PNG files to disk, dvipng (or
- really libgd) uses libpng which in turn uses libz. These should be
+ really libgd) uses libpng which in turn uses libz. These should be
available on any modern system, if not, download them and install
them.
- * The `texinfo' package
+ * The 'texinfo' package
This is needed for building the documentation.
@@ -171,32 +170,32 @@ File: dvipng.info, Node: Configure, Next: Build/install, Prev: Prerequisites,
2.2 Configure
=============
-The first step is to configure the source code, telling it where
-various files will be. To do so, run
+The first step is to configure the source code, telling it where various
+files will be. To do so, run
./configure OPTIONS
(Note: if you have fetched dvipng from CVS rather than a regular
-release, you will have to first generate `./configure' by running
-`autoconf' 2.53 or later.)
+release, you will have to first generate './configure' by running
+'autoconf' 2.53 or later.)
On many machines, you will not need to specify any options, but if
-`configure' cannot determine something on its own, you'll need to help
-it out. For a list of the options type
+'configure' cannot determine something on its own, you'll need to help
+it out. For a list of the options type
./configure --help
On some machines, the libraries will be installed in directories that
-are not in the linker's search path. This will generate an error when
-running `./configure', indicating that it cannot find libgd or
-libkpathsea (most likely). You then need to specify the path to the
-respective library's object files. They are typically called e.g.,
-`libgd.a' or `libgd.so'. If they are located in e.g., `/sw/local/lib',
+are not in the linker's search path. This will generate an error when
+running './configure', indicating that it cannot find libgd or
+libkpathsea (most likely). You then need to specify the path to the
+respective library's object files. They are typically called e.g.,
+'libgd.a' or 'libgd.so'. If they are located in e.g., '/sw/local/lib',
do
./configure LDFLAGS=-L/sw/local/lib
- If the library is available as a shared object file (`.so'), the
+ If the library is available as a shared object file ('.so'), the
runtime linker may also need to be told where to find the library, then
use
@@ -204,11 +203,11 @@ use
When either of these is necessary, it is likely that the C header
files are also installed in directories that are not in the C
-preprocessor's search path. This will also generate an error when
-running `./configure', indicating that it cannot find e.g., `gd.h' or
-`kpathsea.h' (most likely). You then need to specify the path to the
-respective library's C header files. If they are located in e.g.,
-`/sw/local/include', do
+preprocessor's search path. This will also generate an error when
+running './configure', indicating that it cannot find e.g., 'gd.h' or
+'kpathsea.h' (most likely). You then need to specify the path to the
+respective library's C header files. If they are located in e.g.,
+'/sw/local/include', do
./configure CPPFLAGS=-I/sw/local/include
@@ -225,7 +224,7 @@ File: dvipng.info, Node: Build/install, Next: Installation outside the texmf t
2.3 Build/install
=================
-Once `configure' has been run, simply enter
+Once 'configure' has been run, simply enter
make
@@ -243,14 +242,13 @@ File: dvipng.info, Node: Installation outside the texmf tree, Next: Advice for
2.4 Installation outside the texmf tree
=======================================
-In some cases, a dvipng binary installed outside the texmf tree will
-not be able to find virtual fonts, or the PostScript font maps
-(normally used by dvips). This may be because _only_ $SELFAUTOLOC,
-$SELFAUTODIR, and $SELFAUTOPARENT are used in the texmf tree
-configuration file `texmf.cnf'. If so, give the switch
-`--enable-selfauto-set' to `./configure'. This will make dvipng adjust
-these three internally so that kpathsea thinks that dvipng _is_
-installed in the texmf tree.
+In some cases, a dvipng binary installed outside the texmf tree will not
+be able to find virtual fonts, or the PostScript font maps (normally
+used by dvips). This may be because _only_ $SELFAUTOLOC, $SELFAUTODIR,
+and $SELFAUTOPARENT are used in the texmf tree configuration file
+'texmf.cnf'. If so, give the switch '--enable-selfauto-set' to
+'./configure'. This will make dvipng adjust these three internally so
+that kpathsea thinks that dvipng _is_ installed in the texmf tree.

File: dvipng.info, Node: Advice for non-privileged users, Prev: Installation outside the texmf tree, Up: Installation
@@ -259,18 +257,18 @@ File: dvipng.info, Node: Advice for non-privileged users, Prev: Installation o
=========================================
Often people without system administration privileges want to install
-software for their private use. In that case you need to specify more
-options to the `configure' script, usually this is done by using the
-`--prefix' option to the `configure' script, and let it point to the
-personal home directory. In that way, resulting binaries will be
-installed under the `bin' subdirectory of your home directory, manual
-pages under `man' and so on. That way, it is reasonably easy to
+software for their private use. In that case you need to specify more
+options to the 'configure' script, usually this is done by using the
+'--prefix' option to the 'configure' script, and let it point to the
+personal home directory. In that way, resulting binaries will be
+installed under the 'bin' subdirectory of your home directory, manual
+pages under 'man' and so on. That way, it is reasonably easy to
maintain a bunch of additional packages, since the prefix argument is
-supported by most `configure' scripts.
+supported by most 'configure' scripts.
- You'll have to add something like `/home/myself/bin' to your `PATH'
+ You'll have to add something like '/home/myself/bin' to your 'PATH'
shell variable, if it isn't there already, and similarly set the
-`INFOPATH' and `MANPATH' variables to be able to access the
+'INFOPATH' and 'MANPATH' variables to be able to access the
documentation.

@@ -283,21 +281,20 @@ To use dvipng at its simplest, simply type
dvipng foo
-where `foo.dvi' is the output of TeX that you want to convert to PNG
-format. If there are four pages in `foo.dvi', those pages will be
-output as `foo1.png', `foo2.png', `foo3.png', and `foo4.png',
+where 'foo.dvi' is the output of TeX that you want to convert to PNG
+format. If there are four pages in 'foo.dvi', those pages will be
+output as 'foo1.png', 'foo2.png', 'foo3.png', and 'foo4.png',
respectively.
If you have enabled the PostScript font support (via FreeType or
-T1lib), fonts will be rendered as they are needed. Otherwise, dvipng
+T1lib), fonts will be rendered as they are needed. Otherwise, dvipng
will use bitmapped (PK) fonts, and if you use PK fonts that have not
been used on your system before, they may be automatically generated;
this process can take a few minutes, so progress reports appear by
-default. The next time the same font is used, it will have been saved
-on disk, so rendering will go much faster. (If dvipng tries to
+default. The next time the same font is used, it will have been saved
+on disk, so rendering will go much faster. (If dvipng tries to
endlessly generate the same fonts over and over again, something is
-wrong. *Note Unable to generate fonts: (kpathsea)Unable to generate
-fonts.)
+wrong. *Note (kpathsea)Unable to generate fonts::.)
Many options are available (see the next section). For a brief
summary of available options, just type
@@ -315,7 +312,7 @@ section will give a good idea of the capabilities of the driver.
* Menu:
-* Option summary:: Quick listing, from dvipng --help.
+* Option summary:: Quick listing, from dvipng -help.
* Option details:: More information about each option.

@@ -325,9 +322,9 @@ File: dvipng.info, Node: Option summary, Next: Option details, Up: Command-li
==================
Here is a handy summary of the options; it is printed out when you run
-dvipng with no arguments or with the standard `--help' option.
+dvipng with no arguments or with the standard '--help' option.
- This is ./dvipng 1.14 Copyright 2002-2010 Jan-Ake Larsson
+ This is ./dvipng (TeX Live) 1.14 Copyright 2002-2010 Jan-Ake Larsson
Usage: ./dvipng [OPTION]... FILENAME[.dvi]
Options are chosen to be similar to dvips' options where possible:
@@ -362,7 +359,6 @@ dvipng with no arguments or with the standard `--help' option.
--picky When a warning occurs, don't output image
--png Output PNG images (dvipng default)
--strict When a warning occurs, exit
- --t1lib* T1lib font rendering (default on)
--truecolor* Truecolor output
-Q # Quality (T1lib and PK subsampling)
--width* Output the image width on stdout
@@ -378,325 +374,322 @@ File: dvipng.info, Node: Option details, Prev: Option summary, Up: Command-li
==================
Many of the parameterless options listed here can be turned off by
-suffixing the option with a zero (`0'); for instance, to turn off page
-reversal, use `-r0'. Such options are marked with a trailing `*'.
+suffixing the option with a zero ('0'); for instance, to turn off page
+reversal, use '-r0'. Such options are marked with a trailing '*'.
-`-'
+'-'
Read additional options from standard input after processing the
command line.
-`--help'
+'--help'
Print a usage message and exit.
-`--version'
+'--version'
Print the version number and exit.
-`-bd NUM'
-
-`-bd COLOR_SPEC'
-
-`-bd 'NUM COLOR_SPEC''
- Set the pixel width of the transparent border (default 0). Using
+'-bd NUM'
+'-bd COLOR_SPEC'
+'-bd 'NUM COLOR_SPEC''
+ Set the pixel width of the transparent border (default 0). Using
this option will make the image edges transparent, but it only
- affects pixels with the background color. Giving a COLOR_SPEC will
+ affects pixels with the background color. Giving a COLOR_SPEC will
set the fallback color, to be used in viewers that cannot handle
- transparency (the default is the background color). The color spec
+ transparency (the default is the background color). The color spec
should be in TeX color \special syntax, e.g., 'rgb 1.0 0.0 0.0'.
Setting the fallback color makes the default border width 1 px.
*Note Color::.
-`--bdpi NUM'
- This option only has an effect when using bitmapped (PK) fonts. The
- option sets the base (Metafont) resolution, both horizontal and
- vertical, to NUM dpi (dots per inch). This option is necessary
+'--bdpi NUM'
+ This option only has an effect when using bitmapped (PK) fonts.
+ The option sets the base (Metafont) resolution, both horizontal and
+ vertical, to NUM dpi (dots per inch). This option is necessary
when manually selecting Metafont mode with the -mode option (see
below).
-`-bg COLOR_SPEC'
- Choose background color for the images. This option will be
+'-bg COLOR_SPEC'
+ Choose background color for the images. This option will be
ignored if there is a background color \special in the DVI. The
color spec should be in TeX color \special syntax, e.g., 'rgb 1.0
- 0.0 0.0'. You can also specify 'Transparent' or 'transparent'
+ 0.0 0.0'. You can also specify 'Transparent' or 'transparent'
which will give you a transparent background with the normal
- background as a fallback color. A capitalized 'Transparent' will
+ background as a fallback color. A capitalized 'Transparent' will
give a full-alpha transparency, while an all-lowercase
'transparent' will give a simple fully transparent background with
- non-transparent antialiased pixels. The latter would be suitable
+ non-transparent antialiased pixels. The latter would be suitable
for viewers who cannot cope with a true alpha channel. GIF images
do not support full alpha transparency, so in case of GIF output,
both variants will use the latter behaviour. *Note Color::.
-`-d NUM'
+'-d NUM'
Set the debug flags, showing what dvipng (thinks it) is doing.
- This will work unless dvipng has been compiled without the `DEBUG'
- option (not recommended). Set the flags as you need them, use `-d
- -1' as the first option for maximum output. *Note Debug options::.
+ This will work unless dvipng has been compiled without the 'DEBUG'
+ option (not recommended). Set the flags as you need them, use '-d
+ -1' as the first option for maximum output. *Note Debug options::.
-`-D NUM'
- Set the output resolution, both horizontal and vertical, to NUM
- dpi (dots per inch).
+'-D NUM'
+ Set the output resolution, both horizontal and vertical, to NUM dpi
+ (dots per inch).
One may want to adjust this to fit a certain text font size (e.g.,
on a web page), and for a text font height of FONT_PX pixels (in
Mozilla) the correct formula is
DPI = FONT_PX * 72.27 / 10 [px * TeXpt/in / TeXpt]
The last division by ten is due to the standard font height 10pt in
- your document, if you use 12pt, divide by 12. Unfortunately, some
+ your document, if you use 12pt, divide by 12. Unfortunately, some
proprietary browsers have font height in pt (points), not pixels.
You have to rescale that to pixels, using the screen resolution
(default is usually 96 dpi) which means the formula is
FONT_PX = FONT_PT * 96 / 72 [pt * px/in / (pt/in)]
- On some high-res screens, the value is instead 120 dpi. Good luck!
+ On some high-res screens, the value is instead 120 dpi. Good luck!
-`--depth*'
- Report the depth of the image. This only works reliably when the
- LaTeX style `preview.sty' from preview-latex is used with the
- `active' option. It reports the number of pixels from the bottom
- of the image to the baseline of the image. This can be used for
+'--depth*'
+ Report the depth of the image. This only works reliably when the
+ LaTeX style 'preview.sty' from preview-latex is used with the
+ 'active' option. It reports the number of pixels from the bottom
+ of the image to the baseline of the image. This can be used for
vertical positioning of the image in, e.g., web documents, where
one would use (Cascading StyleSheets 1)
<IMG SRC="FILENAME.PNG" STYLE="vertical-align: -DEPTHpx">
The depth is a negative offset in this case, so the minus sign is
necessary, and the unit is pixels (px).
-`--dvinum*'
+'--dvinum*'
Set this option to make the output page number be the TeX page
- numbers rather than the physical page number. See the `-o' switch.
+ numbers rather than the physical page number. See the '-o' switch.
-`-fg COLOR_SPEC'
- Choose foreground color for the images. This option will be
+'-fg COLOR_SPEC'
+ Choose foreground color for the images. This option will be
ignored if there is a foreground color \special in the DVI. The
color spec should be in TeX color \special syntax, e.g., 'rgb 1.0
0.0 0.0'. *Note Color::.
-`--follow*'
- Wait for data at end-of-file. One of the benefits of dvipng is
+'--follow*'
+ Wait for data at end-of-file. One of the benefits of dvipng is
that it does not read the postamble, so it can be started before
- TeX finishes. This switch makes dvipng wait at end-of-file for
+ TeX finishes. This switch makes dvipng wait at end-of-file for
further output, unless it finds the POST marker that indicates the
- end of the DVI. This is similar to `tail -f' but for DVI-to-PNG
+ end of the DVI. This is similar to 'tail -f' but for DVI-to-PNG
conversion.
-`--freetype*'
- Enable/disable FreeType font rendering (default on). This option is
- available if the FreeType2 font library was present at compilation
- time. If this is the case, dvipng will have direct support for
- PostScript Type1 and TrueType fonts internally, rather than using
- `gsftopk' for rendering the fonts. If you have PostScript versions
- of Computer Modern installed, there will be no need to generate
- bitmapped (PK) variants on disk of these. Then, you can render
- images at different (and unusual) resolutions without cluttering
- the disk with lots of bitmapped fonts. Note that if you have both
- FreeType and T1lib on your system, FreeType will be preferred by
- dvipng. If you for some reason would want to use T1lib rendering,
- use this option.
-
-`--gamma NUM'
+'--freetype*'
+ Enable/disable FreeType font rendering (default on). This option
+ is available if the FreeType2 font library was present at
+ compilation time. If this is the case, dvipng will have direct
+ support for PostScript Type1 and TrueType fonts internally, rather
+ than using 'gsftopk' for rendering the fonts. If you have
+ PostScript versions of Computer Modern installed, there will be no
+ need to generate bitmapped (PK) variants on disk of these. Then,
+ you can render images at different (and unusual) resolutions
+ without cluttering the disk with lots of bitmapped fonts. Note
+ that if you have both FreeType and T1lib on your system, FreeType
+ will be preferred by dvipng. If you for some reason would want to
+ use T1lib rendering, use this option.
+
+'--gamma NUM'
Control the interpolation of colors in the greyscale anti-aliasing
color palette. Default value is 1.0. For 0 < NUM < 1, the fonts
will be lighter (more like the background), and for NUM > 1, the
fonts will be darker (more like the foreground).
-`--gif*'
+'--gif*'
The images are output in the GIF format, if GIF support is enabled.
- This is the default for the `dvigif' binary, which only will be
- available when GIF support is enabled. GIF images are palette
- images (see the `--palette' option) and does not support true alpha
- channels (see the `--bg' option). See also the `--png' option.
-
-`--height*'
- Report the height of the image. This only works reliably when the
- LaTeX style `preview.sty' from preview-latex is used with the
- `active' option. It reports the number of pixels from the top of
- the image to the baseline of the image. The total height of the
- image is obtained as the sum of the values reported from
- `--height' and `--depth'.
-
-`-l [=]NUM'
- The last page printed will be the first one numbered NUM. Default
+ This is the default for the 'dvigif' binary, which only will be
+ available when GIF support is enabled. GIF images are palette
+ images (see the '--palette' option) and does not support true alpha
+ channels (see the '--bg' option). See also the '--png' option.
+
+'--height*'
+ Report the height of the image. This only works reliably when the
+ LaTeX style 'preview.sty' from preview-latex is used with the
+ 'active' option. It reports the number of pixels from the top of
+ the image to the baseline of the image. The total height of the
+ image is obtained as the sum of the values reported from '--height'
+ and '--depth'.
+
+'-l [=]NUM'
+ The last page printed will be the first one numbered NUM. Default
is the last page in the document. If NUM is prefixed by an equals
- sign, then it (and the argument to the `-p' option, if specified)
+ sign, then it (and the argument to the '-p' option, if specified)
is treated as a physical (absolute) page number, rather than a
- value to compare with the TeX `\count0' values stored in the DVI
- file. Thus, using `-l =9' will end with the ninth page of the
+ value to compare with the TeX '\count0' values stored in the DVI
+ file. Thus, using '-l =9' will end with the ninth page of the
document, no matter what the pages are actually numbered.
-`--mode MODE'
- This option only has an effect when using bitmapped (PK) fonts. Use
- MODE as the Metafont device name for the PK fonts (both for path
- searching and font generation). This needs to be augmented with
- the base device resolution, given with the `--bdpi' option. See
- the file `ftp://ftp.tug.org/tex/modes.mf' for a list of
- resolutions and mode names for most devices. *Note Unable to
- generate fonts: (kpathsea)Unable to generate fonts.
+'--mode MODE'
+ This option only has an effect when using bitmapped (PK) fonts.
+ Use MODE as the Metafont device name for the PK fonts (both for
+ path searching and font generation). This needs to be augmented
+ with the base device resolution, given with the '--bdpi' option.
+ See the file <ftp://ftp.tug.org/tex/modes.mf> for a list of
+ resolutions and mode names for most devices. *Note
+ (kpathsea)Unable to generate fonts::.
-`-M*'
- This option only has an effect when using bitmapped (PK) fonts. It
- turns off automatic PK font generation (`mktexpk').
+'-M*'
+ This option only has an effect when using bitmapped (PK) fonts. It
+ turns off automatic PK font generation ('mktexpk').
-`--nogs*'
+'--nogs*'
This switch prohibits the internal call to GhostScript for
- displaying PostScript specials. `--nogs0' turns the call back on.
+ displaying PostScript specials. '--nogs0' turns the call back on.
-`--nogssafer*'
+'--nogssafer*'
Normally, if GhostScript is used to render PostScript specials, the
- GhostScript interpreter is run with the option `-dSAFER'. The
- `--nogssafer' option runs GhostScript without `-dSAFER'. The
- `-dSAFER' option in Ghostscript disables PostScript operators such
+ GhostScript interpreter is run with the option '-dSAFER'. The
+ '--nogssafer' option runs GhostScript without '-dSAFER'. The
+ '-dSAFER' option in Ghostscript disables PostScript operators such
as deletefile, to prevent possibly malicious PostScript programs
from having any effect.
-`--norawps*'
+'--norawps*'
Some packages generate raw PostScript specials, even non-rendering
such specials. This switch turns off the internal call to
GhostScript intended to display these raw PostScript specials.
- `--norawps0' turns the call back on.
+ '--norawps0' turns the call back on.
-`-o NAME'
- Send output to the file NAME. A single occurrence of `%d' or
- `%01d', ..., `%09d' will be exchanged for the physical page number
- (this can be changed, see the `--dvinum' switch). The default
- output filename is `FILE%d.png' where the input DVI file was
- `FILE.dvi'.
+'-o NAME'
+ Send output to the file NAME. A single occurrence of '%d' or
+ '%01d', ..., '%09d' will be exchanged for the physical page number
+ (this can be changed, see the '--dvinum' switch). The default
+ output filename is 'FILE%d.png' where the input DVI file was
+ 'FILE.dvi'.
-`-O X-OFFSET,Y-OFFSET'
+'-O X-OFFSET,Y-OFFSET'
Move the origin by X-OFFSET,Y-OFFSET, a comma-separated pair of
- dimensions such as `.1in,-.3cm'. The origin of the page is
- shifted from the default position (of one inch down, one inch to
- the right from the upper left corner of the paper) by this amount.
-
-`-p [=]NUM'
- The first page printed will be the first one numbered NUM. Default
- is the first page in the document. If NUM is prefixed by an
- equals sign, then it (and the argument to the `-l' option, if
- specified) is treated as a physical (absolute) page number, rather
- than a value to compare with the TeX `\count0' values stored in the
- DVI file. Thus, using `-p =3' will start with the third page of
- the document, no matter what the pages are actually numbered.
-
-`--palette*'
- When an external image is included, `dvipng' will automatically
+ dimensions such as '.1in,-.3cm'. The origin of the page is shifted
+ from the default position (of one inch down, one inch to the right
+ from the upper left corner of the paper) by this amount.
+
+'-p [=]NUM'
+ The first page printed will be the first one numbered NUM. Default
+ is the first page in the document. If NUM is prefixed by an equals
+ sign, then it (and the argument to the '-l' option, if specified)
+ is treated as a physical (absolute) page number, rather than a
+ value to compare with the TeX '\count0' values stored in the DVI
+ file. Thus, using '-p =3' will start with the third page of the
+ document, no matter what the pages are actually numbered.
+
+'--palette*'
+ When an external image is included, 'dvipng' will automatically
switch to truecolor mode, to avoid unnecessary delay and quality
reduction, and enable the EPS translator to draw on a transparent
- background and outside of the boundingbox. This switch will force
- palette (256-color) output and make `dvipng' revert to opaque
- clipped image inclusion. This will also override the `--truecolor'
+ background and outside of the boundingbox. This switch will force
+ palette (256-color) output and make 'dvipng' revert to opaque
+ clipped image inclusion. This will also override the '--truecolor'
switch if present.
-`--picky*'
- No images are output when a warning occurs. Normally, dvipng will
+'--picky*'
+ No images are output when a warning occurs. Normally, dvipng will
output an image in spite of a warning, but there may be something
- missing in this image. One reason to use this option would be if
- you have a more complete but slower fallback converter. Mainly,
+ missing in this image. One reason to use this option would be if
+ you have a more complete but slower fallback converter. Mainly,
this is useful for failed figure inclusion and unknown \special
occurrences, but warnings will also occur for missing or unknown
color specs and missing PK fonts.
-`--png*'
- The images are output in the PNG format. This is the default for
- the `dvipng' binary. See also the `--gif' option.
+'--png*'
+ The images are output in the PNG format. This is the default for
+ the 'dvipng' binary. See also the '--gif' option.
-`-pp FIRSTPAGE-LASTPAGE'
- Print pages FIRSTPAGE through LASTPAGE; but not quite equivalent
- to `-p FIRSTPAGE -l LASTPAGE'. For example, when rendering a book,
+'-pp FIRSTPAGE-LASTPAGE'
+ Print pages FIRSTPAGE through LASTPAGE; but not quite equivalent to
+ '-p FIRSTPAGE -l LASTPAGE'. For example, when rendering a book,
there may be several instances of a page in the DVI file (one in
- `\frontmatter', one in `\mainmatter', and one in `\backmatter').
- In case of several pages matching, `-pp FIRSTPAGE-LASTPAGE' will
- render _all_ pages that matches the specified range, while `-p
+ '\frontmatter', one in '\mainmatter', and one in '\backmatter').
+ In case of several pages matching, '-pp FIRSTPAGE-LASTPAGE' will
+ render _all_ pages that matches the specified range, while '-p
FIRSTPAGE -l LASTPAGE' will render the pages from the _first_
occurrence of FIRSTPAGE to the _first_ occurrence of LASTPAGE.
- This is the (undocumented) behaviour of dvips. In dvipng you can
+ This is the (undocumented) behaviour of dvips. In dvipng you can
give both kinds of options, in which case you get all pages that
- matches the range in `-pp' between the pages from `-p' to `-l'.
- Also multiple `-pp' options accumulate, unlike `-p' and `-l'. The
- `-' separator can also be `:'. Note that `-pp -1' will be
+ matches the range in '-pp' between the pages from '-p' to '-l'.
+ Also multiple '-pp' options accumulate, unlike '-p' and '-l'. The
+ '-' separator can also be ':'. Note that '-pp -1' will be
interpreted as "all pages up to and including 1", if you want a
- page numbered -1 (only the table of contents, say) put `-pp -1--1',
- or more readable, `-pp -1:-1'.
+ page numbered -1 (only the table of contents, say) put '-pp -1--1',
+ or more readable, '-pp -1:-1'.
-`-q*'
+'-q*'
Run quietly. Don't chatter about pages converted, etc. to standard
output; report no warnings (only errors) to standard error.
-`-Q NUM'
- Set the quality to NUM. That is, choose the number of antialiasing
+'-Q NUM'
+ Set the quality to NUM. That is, choose the number of antialiasing
levels for bitmapped fonts (PK) and fonts rendered using T1lib, to
- be NUM*NUM+1. The default value is 4 which gives 17 levels of
- antialiasing for antialiased fonts from these two. If FreeType is
+ be NUM*NUM+1. The default value is 4 which gives 17 levels of
+ antialiasing for antialiased fonts from these two. If FreeType is
available, its rendering is unaffected by this option.
-`-r*'
- Toggle output of pages in reverse/forward order. By default, the
+'-r*'
+ Toggle output of pages in reverse/forward order. By default, the
first page in the DVI is output first.
-`--strict*'
- The program exits when a warning occurs. Normally, dvipng will
+'--strict*'
+ The program exits when a warning occurs. Normally, dvipng will
output an image in spite of a warning, but there may be something
- missing in this image. One reason to use this option would be if
- you have a more complete but slower fallback converter. See the
- `--picky' option above for a list of when warnings occur.
-
-`-T IMAGE_SIZE'
- Set the image size to IMAGE_SIZE which can be either of `bbox',
- `tight', or a comma-separated pair of dimensions HSIZE,VSIZE such
- as `.1in,.3cm'. The default is `bbox' which produces a PNG that
+ missing in this image. One reason to use this option would be if
+ you have a more complete but slower fallback converter. See the
+ '--picky' option above for a list of when warnings occur.
+
+'-T IMAGE_SIZE'
+ Set the image size to IMAGE_SIZE which can be either of 'bbox',
+ 'tight', or a comma-separated pair of dimensions HSIZE,VSIZE such
+ as '.1in,.3cm'. The default is 'bbox' which produces a PNG that
includes all ink put on the page and in addition the DVI origin,
located 1in from the top and 1in from the left edge of the paper.
- This usually gives whitespace above and to the left in the
- produced image. The value `tight' will make dvipng only include
- all ink put on the page, producing neat images.
+ This usually gives whitespace above and to the left in the produced
+ image. The value 'tight' will make dvipng only include all ink put
+ on the page, producing neat images.
-`--t1lib*'
- Enable T1lib font rendering (default on). This option is available
- if the T1lib font library was present at compilation time. If this
+'--t1lib*'
+ Enable T1lib font rendering (default on). This option is available
+ if the T1lib font library was present at compilation time. If this
is the case, dvipng will have direct support for PostScript Type1
- fonts internally, rather than using `gsftopk' for rendering the
- fonts. If you have PostScript versions of Computer Modern
+ fonts internally, rather than using 'gsftopk' for rendering the
+ fonts. If you have PostScript versions of Computer Modern
installed, there will be no need to generate bitmapped variants on
disk of these. Then, you can render images at different (and
unusual) resolutions without cluttering the disk with lots of
- bitmapped fonts. Note that if you have both FreeType and T1lib on
+ bitmapped fonts. Note that if you have both FreeType and T1lib on
your system, FreeType will be preferred by dvipng, and if you for
- some reason rather want to use T1lib, give the option
- `--freetype0' (see above).
+ some reason rather want to use T1lib, give the option '--freetype0'
+ (see above).
-`--truecolor*'
- This will make `dvipng' generate truecolor output. Note that
+'--truecolor*'
+ This will make 'dvipng' generate truecolor output. Note that
truecolor output is automatic if you include an external image in
- your DVI, e.g., via a PostScript special (i.e., the `graphics' or
- `graphicx' package). This switch is overridden by the `--palette'
+ your DVI, e.g., via a PostScript special (i.e., the 'graphics' or
+ 'graphicx' package). This switch is overridden by the '--palette'
switch.
-`-v*'
- Enable verbose operation. This will currently indicate what fonts
+'-v*'
+ Enable verbose operation. This will currently indicate what fonts
is used, in addition to the usual output.
-`--width*'
- Report the width of the image. See also `--height' and `--depth'.
+'--width*'
+ Report the width of the image. See also '--height' and '--depth'.
-`-x NUM'
- This option is deprecated; it should not be used. It is much
- better to select the output resolution directly with the `-D'
- option. This option sets the magnification ratio to NUM/1000 and
+'-x NUM'
+ This option is deprecated; it should not be used. It is much
+ better to select the output resolution directly with the '-D'
+ option. This option sets the magnification ratio to NUM/1000 and
overrides the magnification specified in the DVI file. Must be
between 10 and 100000. It is recommended that you use standard
magstep values (1095, 1200, 1440, 1728, 2074, 2488, 2986, and so
- on) to help reduce the total number of PK files generated. NUM
- may be a real number, not an integer, for increased precision.
+ on) to help reduce the total number of PK files generated. NUM may
+ be a real number, not an integer, for increased precision.
-`-z NUM'
- Set the PNG compression level to NUM. This option is enabled if
- your `libgd' is new enough. The default compression level is 1,
+'-z NUM'
+ Set the PNG compression level to NUM. This option is enabled if
+ your 'libgd' is new enough. The default compression level is 1,
which selects maximum speed at the price of slightly larger PNGs.
- For an older `libgd', the hard-soldered value 5 is used. The
- include file `png.h' says
-
+ For an older 'libgd', the hard-soldered value 5 is used. The
+ include file 'png.h' says
Currently, valid values range from 0 - 9, corresponding
directly to the zlib compression levels 0 - 9 (0 - no
- compression, 9 - "maximal" compression). Note that tests have
- shown that zlib compression levels 3-6 usually perform as
- well as level 9 for PNG images, and do considerably fewer
- calculations. In the future, these values may not correspond
+ compression, 9 - "maximal" compression). Note that tests have
+ shown that zlib compression levels 3-6 usually perform as well
+ as level 9 for PNG images, and do considerably fewer
+ calculations. In the future, these values may not correspond
directly to the zlib compression levels.

@@ -705,12 +698,12 @@ File: dvipng.info, Node: Graphics, Next: Color, Prev: Command-line options,
5 Graphics
**********
-`dvipng' attempts to handle graphics as included by the `graphicx' and
-`graphics' packages, without the need of specifying a driver to these
-packages. This means that it recognizes the encapsulated postscript
-inclusion meant for `dvips', but is also able (from version 1.8) to
-include bitmapped graphics. It also tries to handle some of the raw
-PostScript that is output from various packages. Some of the
+'dvipng' attempts to handle graphics as included by the 'graphicx' and
+'graphics' packages, without the need of specifying a driver to these
+packages. This means that it recognizes the encapsulated postscript
+inclusion meant for 'dvips', but is also able (from version 1.8) to
+include bitmapped graphics. It also tries to handle some of the raw
+PostScript that is output from various packages. Some of the
possibilities and problems are mentioned below.
* Menu:
@@ -726,25 +719,25 @@ File: dvipng.info, Node: Encapsulated PostScript, Next: Bitmapped graphics, U
===========================
When an EPS file is included, a call to GhostScript is performed to
-produce a bitmapped image that can be included. The default is to
+produce a bitmapped image that can be included. The default is to
produce an image with transparent background, at the same size as the
DVI page currently being converted to PNG, and include that as
-foreground on the PNG. Of course, if the image is to be cropped, that
-is done. The included image will be a truecolor image, so for maximum
+foreground on the PNG. Of course, if the image is to be cropped, that is
+done. The included image will be a truecolor image, so for maximum
performance the output PNG will be in truecolor mode as well.
- This conversion needs the `pngalpha' output device to be present in
-your copy of GhostScript. If that device is not present, or you use the
-`--palette' switch or request GIF output, the fallback is to use the
-`png16m' device to produce a cropped opaque image for inclusion. Other
-relevant switches are `--noghostscript' and `--nogssafer'. *Note Option
+ This conversion needs the 'pngalpha' output device to be present in
+your copy of GhostScript. If that device is not present, or you use the
+'--palette' switch or request GIF output, the fallback is to use the
+'png16m' device to produce a cropped opaque image for inclusion. Other
+relevant switches are '--noghostscript' and '--nogssafer'. *Note Option
details::.
The most common problem with including graphics is an incorrect
-bounding box. Complain to whoever wrote the software that generated the
-file if the bounding box is indeed incorrect. An adjusted boundingbox
-can be specified in the `\includegraphics' call, as in this example
-(using `graphicx'):
+bounding box. Complain to whoever wrote the software that generated the
+file if the bounding box is indeed incorrect. An adjusted boundingbox
+can be specified in the '\includegraphics' call, as in this example
+(using 'graphicx'):
\includegraphics[bb=10 20 100 200]{imagename.eps}
@@ -754,11 +747,11 @@ File: dvipng.info, Node: Bitmapped graphics, Next: Raw PostScript, Prev: Enca
5.2 Bitmapped graphics
======================
-dvipng can include PNG, JPEG and GIF graphics. When including such
-images via `\includegraphics' you need to specify the bounding box
-since TeX itself cannot read them from the files in question. The
-bounding box size should be given as `0 0 w h' in pixels, e.g., if the
-file `imagename.png' is 300x400 pixels, the inclusion would read
+dvipng can include PNG, JPEG and GIF graphics. When including such
+images via '\includegraphics' you need to specify the bounding box since
+TeX itself cannot read them from the files in question. The bounding
+box size should be given as '0 0 w h' in pixels, e.g., if the file
+'imagename.png' is 300x400 pixels, the inclusion would read
\includegraphics[bb=0 0 300 400]{imagename.png}
@@ -768,10 +761,10 @@ That is, default resolution will be 72 dpi for included bitmaps, which
is the default size in the few other bitmap-capable drivers that are
known to me (dvipdfm and PDFLaTeX).
- If you want 100 dpi you need to specify the width accordingly. You
+ If you want 100 dpi you need to specify the width accordingly. You
just divide your image width by 100: a 135 pixel wide image at 100 dpi
-will take up 1.35 inches. If you want 200 dpi you divide by 200, and so
-on. Simple, eh? The example above at 200 dpi would be 1.5 inches wide:
+will take up 1.35 inches. If you want 200 dpi you divide by 200, and so
+on. Simple, eh? The example above at 200 dpi would be 1.5 inches wide:
\includegraphics[bb=0 0 300 400,witdh=1.5in]{imagename.png}
@@ -781,40 +774,40 @@ File: dvipng.info, Node: Raw PostScript, Prev: Bitmapped graphics, Up: Graphi
5.3 Raw PostScript
==================
-dvipng attempts to handle raw PostScript. Rendering raw PostScript
+dvipng attempts to handle raw PostScript. Rendering raw PostScript
specials is done on top of the page by including a transparent image
-generated by the `pngalpha' device in GhostScript (automatically
-selecting `truecolor' mode in dvipng).
+generated by the 'pngalpha' device in GhostScript (automatically
+selecting 'truecolor' mode in dvipng).
Included PostScript headers are respected, and if the header
-`tex.pro' is included, dvipng also throws in `color.pro' and
-`special.pro'. The package `xcolor' includes its own headers with color
+'tex.pro' is included, dvipng also throws in 'color.pro' and
+'special.pro'. The package 'xcolor' includes its own headers with color
names, and this is not only kept as a PostScript header, but is also
-read and interpreted by dvipng itself. An attempt is also made to
-respect the PGF header. The non-rendering specials from `hyperref' are
+read and interpreted by dvipng itself. An attempt is also made to
+respect the PGF header. The non-rendering specials from 'hyperref' are
handled via some heuristics and do not give an error.
Really rendering and moving things with raw PostScript specials is
-more troublesome. The \rotatebox macro serves as a good example. The
+more troublesome. The \rotatebox macro serves as a good example. The
dvips driver of the graphicx package surrounds DVI glyphs with
PostScript code so that after conversion by dvips, the glyphs (now
-themselves in PostScript) will be rotated in the desired way. dvipng
-does not handle this, at present. An attempt has been made to handle
-the rendering specials output by PGF (tikz), and also PSTricks. Some
+themselves in PostScript) will be rotated in the desired way. dvipng
+does not handle this, at present. An attempt has been made to handle
+the rendering specials output by PGF (tikz), and also PSTricks. Some
things work, but others do not. This is especially clear when mixing
-PostScript and DVI rendering commands such as glyphs. dvipng cannot at
-present detect if PostScript code moves `currentpoint' or rotates the
-frame since GhostScript does not return such information. A
+PostScript and DVI rendering commands such as glyphs. dvipng cannot at
+present detect if PostScript code moves 'currentpoint' or rotates the
+frame since GhostScript does not return such information. A
recommendation would be to produce images from these packages as EPS
files and include them into your document in the standard manner.
Another way to handle this would be to use a slower fallback (with
-dvips and gs, for example). If you want to disable raw PostScript
-handling in dvipng, use the switch `--norawps'. This switch turns off
+dvips and gs, for example). If you want to disable raw PostScript
+handling in dvipng, use the switch '--norawps'. This switch turns off
the internal call to GhostScript intended to display these raw
-PostScript specials. Further, when dvipng encounters raw PostScript and
-the gs call is turned off, it gives a warning. It is now possible to
-use the switch `--picky' to disable page rendering of pages with
+PostScript specials. Further, when dvipng encounters raw PostScript and
+the gs call is turned off, it gives a warning. It is now possible to
+use the switch '--picky' to disable page rendering of pages with
warnings, and use the slower fallback for these pages.

@@ -824,14 +817,14 @@ File: dvipng.info, Node: Color, Next: Diagnosing problems, Prev: Graphics, U
*******
To support color, dvipng recognizes a certain set of specials as
-generated by the `color' and `xcolor' style files. These specials start
-with the keyword `color' or the keyword `background', followed by a
+generated by the 'color' and 'xcolor' style files. These specials start
+with the keyword 'color' or the keyword 'background', followed by a
color specification.
* Menu:
-* Color specifications::
-* Color specials::
+* Color specifications::
+* Color specials::

File: dvipng.info, Node: Color specifications, Next: Color specials, Up: Color
@@ -839,23 +832,23 @@ File: dvipng.info, Node: Color specifications, Next: Color specials, Up: Colo
6.1 Color specifications
========================
-The color specification supported by dvipng is by-value or by-name. The
-by-value spec starts with the name of a color model (one of `rgb',
-`hsb', `cmy', `cmyk', or `gray') followed by the appropriate number of
-parameters. Thus, the color specification `rgb 0.3 0.4 0.5' would
-correspond to the color that is `0.3 0.4 0.5' in its red, blue and
-green values. The color model used internally in dvipng is `RGB'
-(discretized to 256 levels), for details on the formulas used in
-conversion, see the `xcolor' documentation.
+The color specification supported by dvipng is by-value or by-name. The
+by-value spec starts with the name of a color model (one of 'rgb',
+'hsb', 'cmy', 'cmyk', or 'gray') followed by the appropriate number of
+parameters. Thus, the color specification 'rgb 0.3 0.4 0.5' would
+correspond to the color that is '0.3 0.4 0.5' in its red, blue and green
+values. The color model used internally in dvipng is 'RGB' (discretized
+to 256 levels), for details on the formulas used in conversion, see the
+'xcolor' documentation.
By-name color specifications are single (case-dependent) words and
-are compared with color names defined in `dvipsnam.def' (from the
-`graphics' bundle), `svgnam.def' and `xcolor.sty' (from the `xcolor'
-bundle). See the `xcolor' documentation for a list of names and the
+are compared with color names defined in 'dvipsnam.def' (from the
+'graphics' bundle), 'svgnam.def' and 'xcolor.sty' (from the 'xcolor'
+bundle). See the 'xcolor' documentation for a list of names and the
corresponding colors.
- On the command-line, the name `Transparent' can also be used as an
-argument to `--bg' to choose transparent background. *Note Option
+ On the command-line, the name 'Transparent' can also be used as an
+argument to '--bg' to choose transparent background. *Note Option
details::.

@@ -864,28 +857,27 @@ File: dvipng.info, Node: Color specials, Prev: Color specifications, Up: Colo
6.2 Color specials
==================
-We will describe `background' first, since it is the simplest. The
-`background' keyword must be followed by a color specification. That
-color specification is used as a fill color for the background. The
-last `background' special on a page is the one that gets used, and is
-used for the whole of the page image. (This is possible because the
+We will describe 'background' first, since it is the simplest. The
+'background' keyword must be followed by a color specification. That
+color specification is used as a fill color for the background. The
+last 'background' special on a page is the one that gets used, and is
+used for the whole of the page image. (This is possible because the
prescan phase of dvipng notices all of the color specials so that the
appropriate information can be written out during the second phase.)
- The `color' special itself has three forms. The first is just
-`color' followed by a color specification. In this case, the current
+ The 'color' special itself has three forms. The first is just
+'color' followed by a color specification. In this case, the current
global color is set to that color; the color stack must be empty when
such a command is executed.
- The second form is `color push' followed by a color specification.
+ The second form is 'color push' followed by a color specification.
This saves the current color on the color stack and sets the color to be
that given by the color specification. This is the most common way to
set a color.
- The final form of the `color' special is just `color pop', with no
-color specification; this says to pop the color last pushed on the
-color stack from the color stack and set the current color to be that
-color.
+ The final form of the 'color' special is just 'color pop', with no
+color specification; this says to pop the color last pushed on the color
+stack from the color stack and set the current color to be that color.
dvipng correctly handles these color specials across pages, even when
the pages are rendered repeatedly or in reverse order.
@@ -898,7 +890,7 @@ File: dvipng.info, Node: Diagnosing problems, Next: Credits, Prev: Color, Up
You've gone through all the trouble of installing dvipng, carefully read
all the instructions in this manual, and still can't get something to
-work. The following sections provide some helpful hints if you find
+work. The following sections provide some helpful hints if you find
yourself in such a situation.
* Menu:
@@ -915,16 +907,16 @@ File: dvipng.info, Node: Contact information, Next: Debug options, Up: Diagno
Bug reports should be sent to <dvipng@nongnu.org>.
Questions, suggestions for new features, pleas for help, and/or
-praise should go to <dvipng@nongnu.org>. For more information on this
-mailing list, send a message with just the word `help' as subject or
+praise should go to <dvipng@nongnu.org>. For more information on this
+mailing list, send a message with just the word 'help' as subject or
body to <dvipng-request@nongnu.org> or look at
-`http://lists.nongnu.org/mailman/listinfo/dvipng'.
+<http://lists.nongnu.org/mailman/listinfo/dvipng>.
- Offers to support further development will be appreciated. For
+ Offers to support further development will be appreciated. For
developer access, ask on <dvipng@nongnu.org>.
- For details on the TeX path-searching library, and `mktexpk'
-problems, *note Common problems: (kpathsea)Common problems.
+ For details on the TeX path-searching library, and 'mktexpk'
+problems, *note (kpathsea)Common problems::.

File: dvipng.info, Node: Debug options, Prev: Contact information, Up: Diagnosing problems
@@ -932,60 +924,46 @@ File: dvipng.info, Node: Debug options, Prev: Contact information, Up: Diagno
7.2 Debug options
=================
-The `-d' flag to dvipng helps in tracking down certain errors. The
+The '-d' flag to dvipng helps in tracking down certain errors. The
parameter to this flag is an integer that tells what errors are
currently being tracked. To track a certain class of debug messages,
simply provide the appropriate number given below; if you wish to track
multiple classes, sum the numbers of the classes you wish to track. To
-track all classes, you can use `-1'.
+track all classes, you can use '-1'.
Some of these debugging options are actually provided by Kpathsea
-(*note Debugging: (kpathsea)Debugging.).
+(*note (kpathsea)Debugging::).
The classes are:
1
Normal dvi op-codes
-
2
Virtual fonts
-
4
PK fonts
-
8
TFM files
-
16
Glyph rendering
-
32
FreeType calls
-
64
Encoding loads
-
128
Color specials
-
256
GhostScript specials
-
512
T1lib calls
-
1024
- Kpathsea `stat' calls
-
+ Kpathsea 'stat' calls
2048
Kpathsea hash table lookups
-
4096
Kpathsea path element expansion
-
8192
Kpathsea path searches
-

File: dvipng.info, Node: Credits, Next: Copying, Prev: Diagnosing problems, Up: Top
@@ -993,10 +971,10 @@ File: dvipng.info, Node: Credits, Next: Copying, Prev: Diagnosing problems,
*********
A number of persons have contributed, if I forget to mention someone, I
-apologize. First and foremost we have David Kastrup whose preview-latex
+apologize. First and foremost we have David Kastrup whose preview-latex
project provided the incentive to write this program. There is also a
number of people who have contributed by reporting bugs and suggesting
-improvements as the thing has evolved. These include but is perhaps not
+improvements as the thing has evolved. These include but is perhaps not
limited to (in semi-random order): Thomas Esser (teTeX), Christian
Schenk (MIKTeX), Brian R Furry (debian package), Angus Leeming (LyX),
Thomas Boutell (libgd), John Jones (first user report), Uwe Kern
@@ -1009,59 +987,50 @@ Ridderstro"m, Ezra Peisach, William H Wheeler, Thomas Klausner, Harald
Koenig, Adrian Bunk, Kevin Smith, Jason Riedy, Wolfram Krause, Reinhard
Kotucha, Takeshi Abe, and Waldeck Schutzer.
- Use of the `gd' library requires inclusion of the following
-copyright notice, which applies to the `gd' library:
+ Use of the 'gd' library requires inclusion of the following copyright
+notice, which applies to the 'gd' library:
Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
- 2002, 2003, 2004 by Cold Spring Harbor Laboratory. Funded under
- Grant P41-RR02188 by the National Institutes of Health.
+ 2002 by Cold Spring Harbor Laboratory. Funded under Grant
+ P41-RR02188 by the National Institutes of Health.
- Portions copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
- 2004 by Boutell.Com, Inc.
+ Portions copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 by
+ Boutell.Com, Inc.
- Portions relating to GD2 format copyright 1999, 2000, 2001, 2002,
- 2003, 2004 Philip Warner.
+ Portions relating to GD2 format copyright 1999, 2000, 2001, 2002
+ Philip Warner.
- Portions relating to PNG copyright 1999, 2000, 2001, 2002, 2003,
- 2004 Greg Roelofs.
+ Portions relating to PNG copyright 1999, 2000, 2001, 2002 Greg
+ Roelofs.
- Portions relating to gdttf.c copyright 1999, 2000, 2001, 2002,
- 2003, 2004 John Ellson (ellson@graphviz.org).
+ Portions relating to gdttf.c copyright 1999, 2000, 2001, 2002 John
+ Ellson (ellson@lucent.com).
- Portions relating to gdft.c copyright 2001, 2002, 2003, 2004 John
- Ellson (ellson@graphviz.org).
+ Portions relating to gdft.c copyright 2001, 2002 John Ellson
+ (ellson@lucent.com).
- Portions relating to JPEG and to color quantization copyright
- 2000, 2001, 2002, 2003, 2004, Doug Becker and copyright (C) 1994,
- 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Thomas
- G. Lane. This software is based in part on the work of the
- Independent JPEG Group. See the file README-JPEG.TXT for more
- information.
+ Portions copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+ Pierre-Alain Joye (pierre@libgd.org).
- Portions relating to GIF compression copyright 1989 by Jef
- Poskanzer and David Rowley, with modifications for thread safety
- by Thomas Boutell.
+ Portions relating to JPEG and to color quantization copyright 2000,
+ 2001, 2002, Doug Becker and copyright (C) 1994, 1995, 1996, 1997,
+ 1998, 1999, 2000, 2001, 2002, Thomas G. Lane. This software is
+ based in part on the work of the Independent JPEG Group. See the
+ file README-JPEG.TXT for more information.
- Portions relating to GIF decompression copyright 1990, 1991, 1993
- by David Koblas, with modifications for thread safety by Thomas
- Boutell.
-
- Portions relating to WBMP copyright 2000, 2001, 2002, 2003, 2004
- Maurice Szmurlo and Johan Van den Brande.
-
- Portions relating to GIF animations copyright 2004 Jaakko
- Hyva"dtti (jaakko.hyvatti@iki.fi)
+ Portions relating to WBMP copyright 2000, 2001, 2002 Maurice
+ Szmurlo and Johan Van den Brande.
Permission has been granted to copy, distribute and modify gd in
any context without fee, including a commercial application,
provided that this notice is present in user-accessible supporting
documentation.
- This does not affect your ownership of the derived work itself,
- and the intent is to assure proper credit for the authors of gd,
- not to interfere with your productive use of gd. If you have
- questions, ask. "Derived works" includes all programs that utilize
- the library. Credit must be given in user-accessible documentation.
+ This does not affect your ownership of the derived work itself, and
+ the intent is to assure proper credit for the authors of gd, not to
+ interfere with your productive use of gd. If you have questions,
+ ask. "Derived works" includes all programs that utilize the
+ library. Credit must be given in user-accessible documentation.
This software is provided "AS IS." The copyright holders disclaim
all warranties, either express or implied, including but not
@@ -1069,9 +1038,9 @@ copyright notice, which applies to the `gd' library:
particular purpose, with respect to this code and accompanying
documentation.
- Although their code does not appear in the current release, the
- authors also wish to thank Hutchison Avenue Software Corporation
- for their prior contributions.
+ Although their code does not appear in gd, the authors wish to
+ thank David Koblas, David Rowley, and Hutchison Avenue Software
+ Corporation for their prior contributions.

File: dvipng.info, Node: Copying, Next: Index, Prev: Credits, Up: Top
@@ -1080,9 +1049,9 @@ File: dvipng.info, Node: Copying, Next: Index, Prev: Credits, Up: Top
*********
This program is free software: you can redistribute it and/or modify it
-under the terms of the GNU Lesser General Public License as published
-by the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
+under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation, either version 3 of the License, or (at
+your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -1090,7 +1059,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
General Public License for more details.
You should have received a copy of the GNU Lesser General Public
-License along with this program. If not, see
+License along with this program. If not, see
<http://www.gnu.org/licenses/>.
@@ -1106,107 +1075,107 @@ Index
* Menu:
-* -dSAFER: Option details. (line 168)
-* absolute page number, and -l: Option details. (line 142)
-* absolute page number, and -p: Option details. (line 195)
-* antialiasing levels, number of: Option details. (line 248)
-* background color (option): Option details. (line 42)
-* base resolution, setting: Option details. (line 35)
-* baseline reporting: Option details. (line 78)
+* -dSAFER: Option details. (line 166)
+* absolute page number, and '-l': Option details. (line 140)
+* absolute page number, and '-p': Option details. (line 193)
+* antialiasing levels, number of: Option details. (line 246)
+* background color (option): Option details. (line 40)
+* base resolution, setting: Option details. (line 33)
+* baseline reporting: Option details. (line 76)
+* baseline reporting <1>: Option details. (line 132)
* color specifications: Color specifications.
(line 6)
* command-line options: Command-line options.
(line 6)
* compilation: Installation. (line 6)
-* compression: Option details. (line 314)
+* compression: Option details. (line 312)
* configuration, of dvipng: Installation. (line 6)
-* dark fonts: Option details. (line 121)
+* dark fonts: Option details. (line 119)
+* debugging: Option details. (line 54)
* debugging <1>: Diagnosing problems. (line 6)
-* debugging: Option details. (line 56)
-* depth reporting: Option details. (line 78)
-* exit on erroneous images: Option details. (line 259)
-* first page printed: Option details. (line 195)
-* follow mode: Option details. (line 99)
-* font generation, avoiding: Option details. (line 160)
-* forcing palette output: Option details. (line 204)
-* foreground color (option): Option details. (line 93)
-* FreeType font rendering: Option details. (line 107)
-* fuzzy images: Option details. (line 121)
-* gamma: Option details. (line 121)
-* GhostScript and -dSAFER: Option details. (line 168)
-* GhostScript, turning off: Option details. (line 164)
-* GIF image format: Option details. (line 127)
-* height reporting: Option details. (line 134)
+* depth reporting: Option details. (line 76)
+* exit on erroneous images: Option details. (line 257)
+* first page printed: Option details. (line 193)
+* follow mode: Option details. (line 97)
+* font generation, avoiding: Option details. (line 158)
+* forcing palette output: Option details. (line 202)
+* foreground color (option): Option details. (line 91)
+* FreeType font rendering: Option details. (line 105)
+* fuzzy images: Option details. (line 119)
+* gamma: Option details. (line 119)
+* GhostScript and -dSAFER: Option details. (line 166)
+* GhostScript, turning off: Option details. (line 162)
+* GIF image format: Option details. (line 125)
+* height reporting: Option details. (line 132)
* installation, of dvipng: Installation. (line 6)
* invoking dvipng: Basic usage. (line 6)
-* last page printed: Option details. (line 142)
-* light fonts: Option details. (line 121)
-* magnification, overriding DVI: Option details. (line 304)
-* Metafont mode, specifying: Option details. (line 151)
-* mktexpk, avoiding: Option details. (line 160)
-* mode name, specifying: Option details. (line 151)
-* no erroneous images: Option details. (line 213)
-* offset pages: Option details. (line 189)
+* last page printed: Option details. (line 140)
+* light fonts: Option details. (line 119)
+* magnification, overriding DVI: Option details. (line 302)
+* Metafont mode, specifying: Option details. (line 149)
+* mktexpk, avoiding: Option details. (line 158)
+* mode name, specifying: Option details. (line 149)
+* no erroneous images: Option details. (line 211)
+* offset pages: Option details. (line 187)
* option, details of: Option details. (line 6)
* options, dvipng: Command-line options.
(line 6)
* options, reading from standard input: Option details. (line 11)
* options, summary: Option summary. (line 6)
-* output resolution, setting: Option details. (line 62)
-* output, redirecting: Option details. (line 182)
-* page range: Option details. (line 226)
-* page, first printed: Option details. (line 195)
-* page, last printed: Option details. (line 142)
-* physical page number, and -l: Option details. (line 142)
-* physical page number, and -p: Option details. (line 195)
-* PNG image format: Option details. (line 222)
+* output resolution, setting: Option details. (line 60)
+* output, redirecting: Option details. (line 180)
+* page range: Option details. (line 224)
+* page, first printed: Option details. (line 193)
+* page, last printed: Option details. (line 140)
+* physical page number, and '-l': Option details. (line 140)
+* physical page number, and '-p': Option details. (line 193)
+* PNG image format: Option details. (line 220)
* PostScript inclusion problems: Encapsulated PostScript.
(line 21)
* PostScript, turning off raw PostScript specials: Option details.
- (line 176)
+ (line 174)
* problems: Diagnosing problems. (line 6)
-* quality: Option details. (line 248)
-* quiet operation: Option details. (line 244)
-* reverse pagination: Option details. (line 255)
-* silent operation: Option details. (line 244)
+* quality: Option details. (line 246)
+* quiet operation: Option details. (line 242)
+* reverse pagination: Option details. (line 253)
+* silent operation: Option details. (line 242)
* standard input, reading options from: Option details. (line 11)
-* standard output, output to: Option details. (line 182)
-* T1lib font rendering: Option details. (line 276)
-* transparent border fallback color: Option details. (line 25)
-* transparent border width: Option details. (line 25)
+* standard output, output to: Option details. (line 180)
+* T1lib font rendering: Option details. (line 274)
+* transparent border fallback color: Option details. (line 23)
+* transparent border width: Option details. (line 23)
* trouble: Diagnosing problems. (line 6)
-* truecolor output: Option details. (line 290)
-* warnings, suppressing: Option details. (line 244)
-* width reporting: Option details. (line 301)
+* truecolor output: Option details. (line 288)
+* warnings, suppressing: Option details. (line 242)
+* width reporting: Option details. (line 299)

Tag Table:
-Node: Top297
-Node: Introduction1192
-Node: Installation3431
-Node: Prerequisites3778
-Node: Configure6268
-Node: Build/install8307
-Node: Installation outside the texmf tree8775
-Node: Advice for non-privileged users9482
-Node: Basic usage10490
-Node: Command-line options11662
-Node: Option summary12086
-Node: Option details14512
-Node: Graphics30430
-Node: Encapsulated PostScript31182
-Node: Bitmapped graphics32525
-Node: Raw PostScript33748
-Node: Color35987
-Node: Color specifications36375
-Node: Color specials37474
-Node: Diagnosing problems38886
-Node: Contact information39369
-Node: Debug options40110
-Node: Credits41145
-Node: Copying45146
-Node: Index45926
+Node: Top296
+Node: Introduction1191
+Node: Installation3436
+Node: Prerequisites3834
+Node: Configure6331
+Node: Build/install8378
+Node: Installation outside the texmf tree8846
+Node: Advice for non-privileged users9556
+Node: Basic usage10567
+Node: Command-line options11720
+Node: Option summary12143
+Node: Option details14526
+Node: Graphics30489
+Node: Encapsulated PostScript31244
+Node: Bitmapped graphics32594
+Node: Raw PostScript33822
+Node: Color36075
+Node: Color specifications36486
+Node: Color specials37589
+Node: Diagnosing problems39006
+Node: Contact information39490
+Node: Debug options40218
+Node: Credits41229
+Node: Copying44830
+Node: Index45611

End Tag Table
-
diff --git a/Master/texmf-dist/doc/info/dvips.info b/Master/texmf-dist/doc/info/dvips.info
index 71a64d83ba0..65e4c59c284 100644
--- a/Master/texmf-dist/doc/info/dvips.info
+++ b/Master/texmf-dist/doc/info/dvips.info
@@ -1,6 +1,6 @@
-This is dvips.info, produced by makeinfo version 5.1 from dvips.texi.
+This is dvips.info, produced by makeinfo version 5.2 from dvips.texi.
-This manual documents Dvips version 5.993 (April 2013), a program to
+This manual documents Dvips version 5.994 (April 2014), a program to
translate a DVI file into PostScript. You may freely use, modify and/or
distribute this file.
INFO-DIR-SECTION TeX
@@ -16,7 +16,7 @@ File: dvips.info, Node: Top, Next: Why Dvips, Up: (dir)
Dvips
*****
-This manual documents Dvips version 5.993 (April 2013), a program to
+This manual documents Dvips version 5.994 (April 2014), a program to
translate a DVI file into PostScript. You may freely use, modify and/or
distribute this file.
diff --git a/Master/texmf-dist/doc/info/kpathsea.info b/Master/texmf-dist/doc/info/kpathsea.info
index b28c541d762..2586ede9e5a 100644
--- a/Master/texmf-dist/doc/info/kpathsea.info
+++ b/Master/texmf-dist/doc/info/kpathsea.info
@@ -1,9 +1,9 @@
-This is kpathsea.info, produced by makeinfo version 5.1 from
+This is kpathsea.info, produced by makeinfo version 5.2 from
kpathsea.texi.
This file documents the Kpathsea library for path searching.
- Copyright (C) 1996-2013 Karl Berry & Olaf Weber.
+ Copyright (C) 1996-2014 Karl Berry & Olaf Weber.
Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
@@ -36,56 +36,64 @@ File: kpathsea.info, Node: Top, Next: Introduction, Up: (dir)
Kpathsea library
****************
-This manual documents how to install and use the Kpathsea library for
-filename lookup. It corresponds to version 6.1.1, released in April
-2013.
+This manual documents the Kpathsea library for path searching. It
+corresponds to version 6.2.0, released in May 2014.
* Menu:
-* Introduction:: Overview.
-* Installation:: Compilation, installation, and bug reporting.
+* Introduction:: Overview and history.
-* Path searching:: How filename lookups work.
-* TeX support:: Special support for TeX-related file lookups.
+* unixtex.ftp:: Obtaining TeX software.
+* Security:: Who can write what files, etc.
+* TeX directory structure:: Managing the horde of TeX input files.
-* Programming:: How to use Kpathsea features in your program.
+* Path searching:: How filename lookups work.
+* TeX support:: Special support for TeX-related file lookups.
-* Index:: General index.
+* Programming:: How to use Kpathsea features in your program.
+
+* Reporting bugs:: Where and how to report bugs.
+* Index:: General index.

-File: kpathsea.info, Node: Introduction, Next: Installation, Prev: Top, Up: Top
+File: kpathsea.info, Node: Introduction, Next: unixtex.ftp, Prev: Top, Up: Top
1 Introduction
**************
-This manual corresponds to version 6.1.1 of the Kpathsea library,
-released in April 2013.
+This manual corresponds to version 6.2.0 of the Kpathsea library,
+released in May 2014.
The library's fundamental purpose is to return a filename from a list
of directories specified by the user, similar to what shells do when
looking up program names to execute.
- The following software, all of which we maintain, uses this library:
+ The following software, all of which is maintained in parallel, uses
+this library:
* Dviljk (see the 'dvilj' man page)
- * Dvipsk (*note Introduction: (dvips)Top.)
- * GNU font utilities (*note Introduction: (fontu)Top.)
- * Web2c (*note Introduction: (web2c)Top.)
+ * Dvipsk (*note (dvips)::)
+ * GNU font utilities (*note (fontu)::)
+ * Web2c (*note (web2c)::)
* Xdvik (see the 'xdvi' man page)
Other software that we do not maintain also uses it.
- We are still actively maintaining the library (and probably always
-will be, despite our hopes). If you have comments or suggestions,
-please send them to us (*note Reporting bugs::).
+ Kpathsea is now maintained as part of the TeX Live distribution
+(<http://tug.org/texlive>). For information on configuration, building,
+installing, and more, *note (tlbuild)::.
- We distribute the library under the GNU Library General Public
-License (LGPL). In short, this means if you write a program using the
-library, you must (offer to) distribute the source to the library, along
-with any changes you have made, and allow anyone to modify the library
-source and distribute their modifications. It does not mean you have to
-distribute the source to your program, although we hope you will. See
-the accompanying files for the text of the GNU licenses.
+ The library is still actively maintained. If you have comments or
+suggestions, please send along (*note Reporting bugs::).
+
+ The Kpathsea library is distributed under the GNU Library General
+Public License (LGPL). In short, this means if you write a program using
+the library, you must (offer to) distribute the source to the library,
+along with any changes you have made, and allow anyone to modify the
+library source and distribute their modifications. It does not mean you
+have to distribute the source to your program, although we hope you
+will. See accompanying files for the text of the GNU licenses, or
+<http://www.gnu.org/licenses>.
If you know enough about TeX to be reading this manual, then you (or
your institution) should consider joining the TeX Users Group (if you're
@@ -104,19 +112,19 @@ File: kpathsea.info, Node: History, Up: Introduction
1.1 History
===========
-(This section is for those people who are curious about how the library
-came about.) (If you like to read historical accounts of software, we
+This section is for those people who are curious about how the library
+came about. If you like to read historical accounts of software, we
urge you to seek out the GNU Autoconf manual and the "Errors of TeX"
-paper by Don Knuth, published in 'Software--Practice and Experience'
-19(7), July 1989.)
+paper by Don Knuth, published in his book 'Digital Typography', among
+other places.
[Karl writes.] My first ChangeLog entry for Web2c seems to be
February 1990, but I may have done some work before then. In any case,
Tim Morgan and I were jointly maintaining it for a time. (I should
mention here that Tim had made Web2c into a real distribution long
before I had ever used it or even heard of it, and Tom Rokicki did the
-original implementation. I was using 'pxp' and 'pc' on VAX 11/750's and
-the hot new Sun 2 machines.)
+original implementation. When I started, I was using 'pxp' and 'pc' on
+VAX 11/750's and the hot new Sun 2 machines.)
It must have been later in 1990 and 1991 that I started working on
'TeX for the Impatient'. Dvips, Xdvi, Web2c, and the GNU fontutils
@@ -130,30 +138,29 @@ explicitly specify 'cm', 'pandora', ... in a path.
In the first incarnation, I just hacked separately on each
program--that was the original subdirectory searching code in both Xdvi
-and Dvips, though I think Paul Vojta has completely rewritten Xdvi's
-support by now. That is, I tried to go with the flow in each program,
-rather than changing the program's calling sequences to conform to
-common routines.
+and Dvips. That is, I tried to go with the flow in each program, rather
+than changing the program's calling sequences to conform to new
+routines.
Then, as bugs inevitably appeared, I found I was fixing the same
-thing three times (Web2c and fontutils were always sharing code, since I
-maintained those--there was no Dvipsk or Xdvik or Dviljk at this point).
-After a while, I finally started sharing source files. They weren't yet
-a library, though. I just kept things up to date with shell scripts.
-(I was developing on a 386 running ISC 2.2 at the time, and so didn't
-have symbolic links. An awful experience.)
+thing three times (Web2c and fontutils were already sharing code, since
+I maintained both of those--there was no Dvipsk or Xdvik or Dviljk at
+this point). After a while, I finally started sharing source files.
+They weren't yet a library, though. I just kept things up to date with
+shell scripts. (I was developing on a 386 running ISC 2.2 at the time,
+and so didn't have symbolic links. An awful experience.)
The ChangeLogs for Xdvik and Dvipsk record initial releases of those
distributions in May and June 1992. I think it was because I was tired
of the different configuration strategies of each program, not so much
-because of the path searching. (Autoconf was being developed by David
-MacKenzie and others, and I was adapting it to TeX and friends.)
+because of the path searching. Autoconf was being developed by David
+MacKenzie and others, and I was adapting it to TeX and friends.
I started to make a separate library that other programs could link
with on my birthday in April 1993, according to the ChangeLog. I don't
remember exactly why I finally took the time to make it a separate
-library; a conversation with david zuhn that initiated it. Just seemed
-like it was time.
+library; a conversation with david zuhn initiated it. Just seemed like
+it was time.
Dviljk got started in March 1994 after I bought a Laserjet 4.
(Kpathsea work got suspended while Norm Walsh and I, with Gustaf
@@ -172,906 +179,58 @@ development by anybody smaller than a company with a
million-dollar-a-year legal budget. Which is actually what I think is
likely to happen, but that's another story...)
- [Olaf writes.] At the end of 1997, UNIX is still alive and kicking,
+ [Olaf writes.] At the end of 1997, Unix is still alive and kicking,
individuals still develop software, and Web2c development still
continues. Karl had been looking for some time for someone to take up
part of the burden, and I volunteered.
-
-File: kpathsea.info, Node: Installation, Next: Path searching, Prev: Introduction, Up: Top
-
-2 Installation
-**************
-
-(A copy of this chapter is in the distribution file 'kpathsea/INSTALL'.)
-
- The procedure for Kpathsea (and Web2c, etc.) configuration and
-installation follows. If you encounter trouble, see *note Common
-problems::, a copy of which is in the file 'kpathsea/BUGS'.
-
-* Menu:
-
-* Simple installation:: If you just want to do it.
-* Custom installation:: If you want to change things around.
-* Security:: Who can write what files, etc.
-* TeX directory structure:: Managing the horde of TeX input files.
-* unixtex.ftp:: Getting software via FTP, on CD-ROM, or on tape.
-* Reporting bugs:: Where and how to report bugs.
-
-
-File: kpathsea.info, Node: Simple installation, Next: Custom installation, Up: Installation
-
-2.1 Simple installation
-=======================
-
-Installing TeX and friends for the first time can be a daunting
-experience. Thus, you may prefer to skip this whole thing and just get
-precompiled executables: see *note unixtex.ftp::.
-
- This section explains what to do if you wish to take the defaults for
-everything, and generally to install in the simplest possible way. Most
-steps here refer to corresponding subsection in the next section which
-explains how to override defaults and generally gives more details.
-
- By default everything will be installed under '/usr/local' and the
-following discussion assumes this. However, if you already have TeX
-installed, its location is used to derive the directory under which
-everything is to be installed.
-
- 1. Be sure you have enough disk space: approximately 8 megabytes for
- the compressed archives, 15MB for sources, 50MB for compilation,
- 40MB for the (initial) installed system (including library files).
- *Note Disk space::.
-
- 2. Retrieve these distribution archives:
- <ftp://ftp.tug.org/tex/texk.tar.gz>
- These are the sources, which you will be compiling.
-
- <ftp://ftp.tug.org/tex/texklib.tar.gz>
- This is a basic set of input files. You should unpack it in
- the directory '/usr/local/share'; doing so will create a
- 'texmf' subdirectory there.
-
- These archives are mirrored on the CTAN hosts, in the
- 'systems/web2c' directory.
-
- *Note Kpathsea application distributions::.
-
- 3. When using the default search paths, there is no need to edit any
- distribution files. *Note Changing search paths::.
-
- 4. At the top level of the distribution, run 'sh configure'. (If you
- have the GNU Bash shell installed, run 'bash configure'.) *Note
- Running configure::.
-
- 5. 'make'. *Note Running make::. If you are using a BSD 4.4 system
- such as FreeBSD or NetBSD, you may have to use GNU make (often
- installed in '/usr/local/bin'), not the BSD make.
-
- 6. 'make install'. *Note Installing files::.
-
- 7. 'make distclean'. *Note Cleaning up::.
-
- 8. Set up a cron job to rebuild the filename database that makes
- searching faster. This line will rebuild it every midnight:
- 0 0 * * * cd /usr/local/share/texmf && /BINDIR/mktexlsr
- *Note Filename database generation::, and *note Filename
- database::.
-
- 9. If you're installing Dvips, you also need to set up configuration
- files for your printers and make any additional PostScript fonts
- available. *Note (dvips)Installation::. If you have any color
- printers, see *note (dvips)Color device configuration::.
-
- 10. The first time you run a DVI driver, a bunch of PK fonts will be
- built by Metafont via 'mktexpk' (and added to the filename
- database). This will take some time. Don't be alarmed; they will
- created only this first time (unless something is wrong with your
- path definitions).
-
- By default, 'mktexpk' will create these fonts in a hierarchy under
- '/var/tmp/texfonts'; it simply assumes that '/var/tmp' exists and
- is globally writable. If you need a different arrangement, see
- *note mktex configuration::.
-
- *Note mktex scripts::.
-
- 11. For some simple tests, try 'tex story \\bye' and 'latex sample2e'.
- Then run 'xdvi story' or 'dvips sample2e' on the resulting DVI
- files to preview/print the documents. *Note Installation
- testing::.
-
-
-File: kpathsea.info, Node: Custom installation, Next: Security, Prev: Simple installation, Up: Installation
-
-2.2 Custom installation
-=======================
-
-Most sites need to modify the default installation procedure in some
-way, perhaps merely changing the prefix from '/usr/local', perhaps
-adding extra compiler or loader options to work around 'configure' bugs.
-This section explains how to override default choices. For additional
-distribution-specific information:
- * 'dviljk/INSTALL'.
- * *Note (dvips)Installation::.
- * *Note (web2c)Installation::.
- * 'xdvik/INSTALL'.
-
- These instructions are for Unix systems. Other operating-system
-specific distributions have their own instructions. The code base
-itself supports Amiga, DOS, OS/2, and VMS.
-
- Following are the same steps as in the previous section (which
-describes the simplest installation), but with much more detail.
-
-* Menu:
-
-* Disk space::
-* Kpathsea application distributions::
-* Changing search paths::
-* Running configure::
-* Running make::
-* Installing files::
-* Cleaning up::
-* Filename database generation::
-* mktex scripts::
-* Installation testing::
-
-
-File: kpathsea.info, Node: Disk space, Next: Kpathsea application distributions, Up: Custom installation
-
-2.2.1 Disk space
-----------------
-
-Here is a table showing the disk space needed for each distribution
-(described in the next section). The '(totals)' line reflects the
-'texk' source distribution and 'texklib'; the individual distributions
-don't enter into it. Sizes are in megabytes. All numbers are
-approximate.
-
-Distribution .tar.gz Unpacked Compiled Installed
-dviljk .9 3.8
-dvipsk .9 3.2
-xdvik .7 2.5
-web2c 1.3 5.0
-web 1.9 6.5 - -
-texk 7.5 32.1 95.3 33.5
-texklib 6.3 15.0 - 15.0
-(totals) 14.6 47.1 95.3 48.5
-
-
-File: kpathsea.info, Node: Kpathsea application distributions, Next: Changing search paths, Prev: Disk space, Up: Custom installation
-
-2.2.2 Kpathsea application distributions
-----------------------------------------
-
-The archive <ftp://ftp.tug.org/tex/texk.tar.gz> contains all of the
-Kpathsea applications I maintain, and the library itself. For example,
-since NeXT does not generally support X11, you'd probably want to skip
-'xdvik' (or simply remove it after unpacking 'texk.tar.gz'. If you are
-not interested in all of them, you can also retrieve them separately:
-
-'dviljk.tar.gz'
- DVI to PCL, for LaserJet printers.
-
-'dvipsk.tar.gz'
- DVI to PostScript, for previewers, printers, or PDF generation.
-
-'web2c.tar.gz'
- The software needed to compile TeX and friends.
-
-'web.tar.gz'
- The original WEB source files, also used in compilation.
-
-'xdvik.tar.gz'
- DVI previewing under the X window system.
-
- If you want to use the Babel LaTeX package for support of non-English
-typesetting, you may need to retrieve additional files. See the file
-'install.txt' in the Babel distribution.
-
-
-File: kpathsea.info, Node: Changing search paths, Next: Running configure, Prev: Kpathsea application distributions, Up: Custom installation
-
-2.2.3 Changing search paths
----------------------------
-
-If the search paths for your installation differ from the standard TeX
-directory structure (*note Introduction: (tds)Top.), edit the file
-'kpathsea/texmf.in' as desired, before running 'configure'. For
-example, if you have all your fonts or macros in one big directory.
-
- You may also wish to edit the file 'mktex.cnf', either before or
-after installation, to control various aspects of 'mktexpk' and friends.
-*Note mktex configuration::.
-
- You do not need to edit 'texmf.in' to change the default top-level or
-other installation _directories_ (only the paths). You can and should
-do that when you run 'configure' (next step).
-
- You also do not need to edit 'texmf.in' if you are willing to rely on
-'texmf.cnf' at runtime to define the paths, and let the compile-time
-default paths be incorrect. Usually there is no harm in doing this.
-
- The section below explains default generation in more detail.
-
-* Menu:
-
-* Default path features::
-* Default path generation::
-
-
-File: kpathsea.info, Node: Default path features, Next: Default path generation, Up: Changing search paths
-
-2.2.3.1 Default path features
-.............................
-
-The purpose of having all the different files described in the section
-above is to avoid having the same information in more than one place.
-If you change the installation directories or top-level prefix at
-'configure'-time, those changes will propagate through the whole
-sequence. And if you change the default paths in 'texmf.in', those
-changes are propagated to the compile-time defaults.
-
- The Make definitions are all repeated in several Makefile's; but
-changing the top-level 'Makefile' should suffice, as it passes down all
-the variable definitions, thus overriding the submakes. (The
-definitions are repeated so you can run Make in the subdirectories, if
-you should have occasion to.)
-
- By default, the bitmap font paths end with '/$MAKETEX_MODE', thus
-including the device name (usually a Metafont mode name such as
-'ljfour'). This distinguishes two different devices with the same
-resolution--a write/white from a write/black 300dpi printer, for
-example.
-
- However, since most sites don't have this complication, Kpathsea
-(specifically, the 'kpse_init_prog' function in 'kpathsea/proginit.c')
-has a special case: if the mode has not been explicitly set by the user
-(or in a configuration file), it sets 'MAKETEX_MODE' to '/'. This makes
-the default PK path, for example, expand into '.../pk//', so fonts will
-be found even if there is no subdirectory for the mode (if you arranged
-things that way because your site has only one printer, for example) or
-if the program is mode-independent (e.g., 'pktype').
-
- To make the paths independent of the mode, simply edit 'texmf.in'
-before installation, or the installed 'texmf.cnf', and remove the
-'$MAKETEX_MODE'.
-
- *Note mktex script arguments::, for how this interacts with
-'mktexpk'.
-
- *Note TeX directory structure: TeX directory structure, for a
-description of the default arrangement of the input files that comprise
-the TeX system.
-
-
-File: kpathsea.info, Node: Default path generation, Prev: Default path features, Up: Changing search paths
-
-2.2.3.2 Default path generation
-...............................
-
-This section describes how the default paths are constructed.
-
- You may wish to ignore the whole mess and simply edit 'texmf.cnf'
-after it is installed, perhaps even copying it into place beforehand so
-you can complete the installation, if it seems necessary.
-
- To summarize the chain of events that go into defining the default
-paths:
-
- 1. 'configure' creates a 'Makefile' from each 'Makefile.in'.
-
- 2. When Make runs in the 'kpathsea' directory, it creates a file
- 'texmf.sed' that substitutes the Make value of '$(var)' for a
- string '@var@'. The variables in question are the one that define
- the installation directories.
-
- 3. 'texmf.sed' (together with a little extra magic--see
- 'kpathsea/Makefile') is applied to 'texmf.in' to generate
- 'texmf.cnf'. This is the file that will eventually be installed
- and used.
-
- 4. The definitions in 'texmf.cnf' are recast as C '#define''s in
- 'paths.h'. These values will be the compile-time defaults; they
- are not used at runtime unless no 'texmf.cnf' file can be found.
-
- (That's a lie: the compile-time defaults are what any extra :'s in
- 'texmf.cnf' expand into; but the paths as distributed have no extra
- :'s, and there's no particular reason for them to.)
-
-
-File: kpathsea.info, Node: Running configure, Next: Running make, Prev: Changing search paths, Up: Custom installation
-
-2.2.4 Running 'configure'
--------------------------
-
-Run 'sh configure OPTIONS' (in the top-level directory, the one
-containing 'kpathsea/'), possibly using a shell other than 'sh' (*note
-configure shells::).
-
- 'configure' adapts the source distribution to the present system via
-'#define''s in '*/c-auto.h', which are created from the corresponding
-'c-auto.in'. It also creates a 'Makefile' from the corresponding
-'Makefile.in', doing '@VAR@' and 'ac_include' substitutions).
-
- 'configure' is the best place to control the configuration,
-compilation, and installed location of the software, either via
-command-line options, or by setting environment variables before
-invoking it. For example, you can disable 'mktexpk' by default with the
-option '--disable-mktexpk'. *Note configure options::.
-
-* Menu:
-
-* configure shells::
-* configure options::
-* configure environment::
-* configure scenarios::
-* Shared library::
-
-
-File: kpathsea.info, Node: configure shells, Next: configure options, Up: Running configure
-
-2.2.4.1 'configure' shells
-..........................
-
-Considerable effort has gone into trying to ensure that the 'configure'
-scripts can be run by most Bourne shell variants. If 'sh' runs into
-trouble, your best bet is to use Bash, the GNU Bourne-again shell (*note
-(bash)Top::).
-
- Bourne shell variants for which problems have been reported in the
-past are:
-'ksh'
- Old versions of the Korn shell may fail to handle the scripts. The
- Korn shell may be installed as '/bin/sh' on AIX, in which case
- '/bin/bsh' may serve instead.
-
-'ash'
- Old versions of ash are unable to handle the scripts. Ash is
- sometimes installed as '/bin/sh' on NetBSD, FreeBSD, and Linux
- systems. '/bin/bash' should be available for those systems, but
- might not be part of a default installation.
-
-'Ultrix /bin/sh'
- '/bin/sh' under Ultrix is a DEC-grown shell that is notably
- deficient in many ways. '/bin/sh5' may be necessary.
-
-
-File: kpathsea.info, Node: configure options, Next: configure environment, Prev: configure shells, Up: Running configure
-
-2.2.4.2 'configure' options
-...........................
-
-For a complete list of all 'configure' options, run 'configure --help'
-or see *note Running 'configure' scripts: (autoconf)Invoking configure,
-(a copy is in the file 'kpathsea/README.CONFIGURE'). The generic
-options are listed first in the '--help' output, and the
-package-specific options come last. The environment variables
-'configure' pays attention to are listed below.
-
- Options particularly likely to be useful are '--prefix', '--datadir',
-and the like; see *note configure scenarios::.
-
- This section gives pointers to descriptions of the '--with' and
-'--enable' options to 'configure' that Kpathsea-using programs accept.
-
-'--without-mktexmf-default'
-'--without-mktexpk-default'
-'--without-mktextfm-default'
-'--with-mktextex-default'
- Enable or disable the dynamic generation programs. *Note mktex
- configuration::.
-
-'--enable-shared'
- Build Kpathsea as a shared library, and link against it. Also
- build the usual static library. *Note Shared library::.
-
-'--disable-static'
- Build only the shared library. Implies '--enable-shared'.
-
-'--enable-maintainer-mode'
- Enables make targets that are useful for the maintainer and likely
- to be a pain for anyone else; the makefiles created when this
- option is enabled may not work at all for you. You have been
- warned.
-
-
-File: kpathsea.info, Node: configure environment, Next: configure scenarios, Prev: configure options, Up: Running configure
-
-2.2.4.3 'configure' environment
-...............................
-
-'configure' uses the value of the following environment variables in
-determining your system's characteristics, and substitutes for them in
-Makefile's:
-
-'CC'
- The compiler to use: default is 'gcc' if it's installed, otherwise
- 'cc'.
-
-'CFLAGS'
- Options to give the compiler: default is '-g -O2' for 'gcc', '-g'
- otherwise. 'CFLAGS' comes after any other options. You may need
- to include '-w' here if your compilations commonly have useless
- warnings (e.g., 'NULL redefined'), or 'configure' may fail to
- detect the presence of header files (it takes the messages on
- standard error to mean the header file doesn't exist).
-
-'CPPFLAGS'
- Options to pass to the compiler preprocessor; this matters most for
- configuration, not the actual source compilation. The 'configure'
- script often does only preprocessing (e.g., to check for the
- existence of #include files), and 'CFLAGS' is not used for this.
- You may need to set this to something like
- '-I/usr/local/include/wwwhatever' if you have the libwww library
- installed for hyper-xdvik (see 'xdvik/INSTALL').
-
-'DEFS'
- Additional preprocessor options, but not used by 'configure'.
- Provided for enabling or disabling program features, as documented
- in the various program-specific installation instructions. 'DEFS'
- comes before any compiler options included by the distribution
- 'Makefile's or by 'configure'.
-
-'LDFLAGS'
- Additional options to give to the loader. 'LDFLAGS' comes before
- any other linker options.
-
-'LIBS'
- Additional libraries to link with.
-
-
-File: kpathsea.info, Node: configure scenarios, Next: Shared library, Prev: configure environment, Up: Running configure
-
-2.2.4.4 'configure' scenarios
-.............................
-
-Here are some common installation scenarios:
-
- * Including X support in Metafont. This is disabled by default,
- since many sites have no use for it, and it's a leading cause of
- configuration problems.
- configure --with-x
-
- * Putting the binaries, TeX files, GNU info files, etc. into a single
- TeX hierarchy, say '/here/texmf', requires overriding defaults in
- 'configure':
- configure --prefix=/here/texmf --datadir=/here
-
- * You can compile on multiple architectures simultaneously either by
- building symbolic link trees with the 'lndir' script from the X11
- distribution, or with the '--srcdir' option:
- configure --srcdir=SRCDIR
-
- * If you are installing binaries for multiple architectures into a
- single hierarchy, you will probably want to override the default
- 'bin' and 'lib' directories, something like this:
- configure --prefix=TEXMF --datadir=TEXMF \
- --bindir=TEXMF/ARCH/bin --libdir=TEXMF/ARCH/lib
- make texmf=TEXMF
- (Unless you make provisions for architecture-specific files in
- other ways, e.g., with Depot or an automounter.)
-
- * To compile with optimization (to compile without debugging, remove
- the '-g'):
- env CFLAGS="-g -O" sh configure ...
- For a potential problem if you optimize, see *note TeX or Metafont
- failing: TeX or Metafont failing.
-
-
-File: kpathsea.info, Node: Shared library, Prev: configure scenarios, Up: Running configure
-
-2.2.4.5 Shared library
-......................
-
-You can compile Kpathsea as a shared library on a few systems, by
-specifying the option '--enable-shared' when you run 'configure'.
-
- The main advantage in doing this is that the executables can then
-share the code, thus decreasing memory and disk space requirements.
-
- On some systems, you can record the location of shared libraries in a
-binary, usually by giving certain options to the linker. Then
-individual users do not need to set their system's environment variable
-(e.g., 'LD_LIBRARY_PATH') to find shared libraries. If you want to do
-this, you will need to add the necessary options to 'LDFLAGS' yourself;
-for example, on Solaris, include something like '-R${prefix}/lib', on
-IRIX or Linux, use '-rpath${prefix}/lib'. (Unfortunately, making this
-happen by default is very difficult, because of interactions with an
-existing installed shared library.)
-
-
-File: kpathsea.info, Node: Running make, Next: Installing files, Prev: Running configure, Up: Custom installation
-
-2.2.5 Running 'make'
---------------------
-
-'make' (still in the top-level directory). This also creates the
-'texmf.cnf' and 'paths.h' files that define the default search paths,
-and (by default) the 'plain' and 'latex' TeX formats.
-
- You can override directory names and other values at 'make'-time.
-'make/paths.make' lists the variables most commonly reset. For example,
-'make default_texsizes=600' changes the list of fallback resolutions.
-
- You can also override each of 'configure''s environment variables
-(*note configure environment::). The Make variables have the same
-names.
-
- Finally, you can supply additional options via the following
-variables. ('configure' does not use these.)
-
-'XCPPFLAGS'
-'XDEFS'
- Preprocessor options.
-
-'XCFLAGS'
- Compiler options.
-
-'XLDFLAGS'
- Loader options (included at beginning of link commands).
-
-'XLOADLIBES'
- More loader options (included at end of link commands).
-
-'XMAKEARGS'
- Additional Make arguments passed to all sub-'make''s. You may need
- to include assignments to the other variables here via 'XMAKEARGS';
- for example: 'make XMAKEARGS="CFLAGS=-O XDEFS=-DA4"'.
-
- It's generally a bad idea to use a different compiler ('CC') or
-libraries ('LIBS') for compilation than you did for configuration, since
-the values 'configure' determined may then be incorrect.
-
- Adding compiler options to change the "universe" you are using
-(typically BSD vs. system V) is generally a cause of trouble. It's best
-to use the native environment, whatever that is; 'configure' and the
-software usually adapt best to that. In particular, under Solaris 2.x,
-you should not use the BSD-compatibility library ('libucb') or include
-files ('ucbinclude').
-
- If you want to use the Babel LaTeX package for support of non-English
-typesetting, you need to modify some files before making the LaTeX
-format. See the file 'install.txt' in the Babel distribution.
-
-
-File: kpathsea.info, Node: Installing files, Next: Cleaning up, Prev: Running make, Up: Custom installation
-
-2.2.6 Installing files
-----------------------
-
-The basic command is the usual 'make install'. For security issues,
-*note Security::.
-
- The first time you install any manual in the GNU Info system, you
-should add a line (you choose where) to the file 'dir' in your
-'$(infodir)' directory. Sample text for this is given near the top of
-the Texinfo source files ('kpathsea/kpathsea.texi', 'dvipsk/dvips.texi',
-and 'web2c/doc/web2c.texi'). If you have a recent version of the GNU
-Texinfo distribution installed
-(<ftp://prep.ai.mit.edu/pub/gnu/texinfo-3.9.tar.gz> or later), this
-should happen automatically.
-
- On the offchance that this is your first Info installation, the 'dir'
-file I use is included in the distribution as 'etc/dir-example'.
-
- You may wish to use one of the following targets, especially if you
-are installing on multiple architectures:
- * 'make install-exec' to install in architecture-dependent
- directories, i.e., ones that depend on the '$(exec_prefix)' Make
- variable. This includes links to binaries, libraries, etc., not
- just "executables".
-
- * 'make install-data' to install in architecture-independent
- directories, such as documentation, configuration files, pool
- files, etc.
-
- If you use the Andrew File System, the normal path (e.g., PREFIX/bin)
-only gets you to a read-only copy of the files, and you must specify a
-different path for installation. The best way to do this is by setting
-the 'prefix' variable on the 'make' command line. The sequence becomes
-something like this:
- configure --prefix=/whatever
- make
- make install prefix=/afs/.SYSTEM.NAME/system/1.3/@sys/whatever
-With AFS, you will definitely want to use relative filenames in 'ls-R'
-(*note Filename database::), not absolute filenames. This is done by
-default, but check anyway.
-
-
-File: kpathsea.info, Node: Cleaning up, Next: Filename database generation, Prev: Installing files, Up: Custom installation
-
-2.2.7 Cleaning up
------------------
-
-The basic command is 'make distclean'. This removes all files created
-by the build.
-
- Alternatively,
- * 'make mostlyclean' if you intend to compile on another
- architecture. For Web2C, since the generated C files are portable,
- they are not removed. If the 'lex' vs. 'flex' situation is going
- to be different on the next machine, 'rm web2c/lex.yy.c'.
-
- * 'make clean' to remove files created by compiling, but leave
- configuration files and Makefiles.
-
- * 'make maintainer-clean' to remove everything that the Makefiles can
- rebuild. This is more than 'distclean' removes, and you should
- only use it if you are thoroughly conversant with (and have the
- necessary versions of) Autoconf.
-
- * 'make extraclean' to remove other junk, e.g., core files, log
- files, patch rejects. This is independent of the other 'clean'
- targets.
-
-
-File: kpathsea.info, Node: Filename database generation, Next: mktex scripts, Prev: Cleaning up, Up: Custom installation
-
-2.2.8 Filename database generation
-----------------------------------
-
-You will probably want to set up a 'cron' entry on the appropriate
-machine(s) to rebuild the filename database nightly or so, as in:
- 0 0 * * * cd TEXMF && /BINDIR/mktexlsr
-*Note Filename database::.
-
- Although the 'mktex...' scripts make every effort to add
-newly-created files on the fly, it can't hurt to make sure you get a
-fresh version every so often.
-
-
-File: kpathsea.info, Node: mktex scripts, Next: Installation testing, Prev: Filename database generation, Up: Custom installation
-
-2.2.9 'mktex' scripts
----------------------
-
-If Kpathsea cannot otherwise find a file, for some file types it is
-configured by default to invoke an external program to create it
-dynamically (*note mktex configuration::). These are collectively known
-as "'mktex' scripts", since most of them are named 'mktex...'.
-
- For example, this is useful for fonts (bitmaps, TFM's, and
-arbitrarily-sizable Metafont sources such as the Sauter and EC fonts),
-since any given document can use fonts never before referenced.
-Building all fonts in advance is therefore impractical, if not
-impossible.
-
- It is also useful for the TeX '.fmt' (and Metafont '.base' and
-Metapost '.mem' files, *note (Web2c)Memory dumps::), where
-pre-generating every format consumes a lot of both time and space.
-
- The script is passed the name of the file to create and possibly
-other arguments, as explained below. It must echo the full pathname of
-the file it created (and nothing else) to standard output; it can write
-diagnostics to standard error.
-
-* Menu:
-
-* config: mktex configuration.
-* names: mktex script names.
-* args: mktex script arguments.
-
-
-File: kpathsea.info, Node: mktex configuration, Next: mktex script names, Up: mktex scripts
-
-2.2.9.1 'mktex' configuration
-.............................
-
-The list of file types and program names that can run an external
-program to create missing files is listed in the next section. In the
-absence of 'configure' options specifying otherwise, everything but
-'mktextex' will be enabled by default. The 'configure' options to
-change the defaults are:
-
- --without-mktexfmt-default
- --without-mktexmf-default
- --without-mktexocp-default
- --without-mktexofm-default
- --without-mktexpk-default
- --without-mktextfm-default
- --with-mktextex-default
-
- The 'configure' setting is overridden if the environment variable or
-configuration file value named for the script is set; e.g., 'MKTEXPK'
-(*note mktex script arguments::).
-
- 'mktexfmt' reads a file 'fmtutil.cnf', typically located in
-'texmf/web2c/' to glean its configuration information. The rest of the
-files and features in this section are primarily intended for the font
-generation scripts.
-
- As distributed, all the scripts source a file 'texmf/web2c/mktex.cnf'
-if it exists, so you can override various defaults. See 'mktex.opt',
-for instance, which defines the default mode, resolution, some special
-directory names, etc. If you prefer not to change the distributed
-scripts, you can simply create 'mktex.cnf' with the appropriate
-definitions (you do not need to create it if you have nothing to put in
-it). 'mktex.cnf' has no special syntax; it's an arbitrary Bourne shell
-script. The distribution contains a sample 'mktex.cnf' for you to copy
-and modify as you please (it is not installed anywhere).
-
- In addition, you can configure a number of features with the
-'MT_FEATURES' variable, which you can define:
-
- * in 'mktex.opt', as just mentioned;
-
- * by editing the file 'mktex.opt', either before 'make install' (in
- the source hierarchy) or after (in the installed hierarchy);
-
- * or in the environment.
-
- If none of the options below are enabled, 'mktexpk', 'mktextfm', and
-'mktexmf' follow the following procedure to decide where fonts should be
-installed. Find the tree where the font's sources are, and test the
-permissions of the 'fonts' directory of that tree to determine whether
-it is writable. If it is, put the files in the tree in appropriate
-locations. If it isn't writable, see whether the tree is a system tree
-(named in 'SYSTEXMF'). If so, the 'VARTEXFONTS' tree is used. In all
-other cases the working directory is used.
-
- The 'appendonlydir' option is enabled by default.
-
-'appendonlydir'
- Tell 'mktexdir' to create directories append-only, i.e., set their
- sticky bit (*note (coreutils)Mode Structure::). This feature is
- silently ignored on non-Unix platforms (e.g. Windows/NT and
- MS-DOS) which don't support similar functionality. This feature is
- enabled by default.
-
-'dosnames'
- Use 8.3 names; e.g., 'dpi600/cmr10.pk' instead of 'cmr10.600pk'.
- Note that this feature only affects filenames that would otherwise
- clash with other TeX-related filenames; 'mktex' scripts do nothing
- about filenames which exceed the 8+3 MS-DOS limits but remain
- unique when truncated (by the OS) to these limits, and nether do
- the scripts care about possible clashes with files which aren't
- related with TeX. For example, 'cmr10.600pk' would clash with
- 'cmr10.600gf' and is therefore changed when 'dosnames' is in
- effect, but 'mf.pool' and 'mp.base' don't clash with any
- TeX-related files and are therefore unchanged.
-
- This feature is turned on by default on MS-DOS. If you do not wish
- 'dosnames' to be set on an MS-DOS platform, you need to set the
- 'MT_FEATURES' environment variable to a value that doesn't include
- 'dosnames'. You can also change the default setting by editing
- 'mktex.opt', but only if you use the 'mktex' shell scripts; the
- emulation programs don't consult 'mktex.opt'.
-
-'fontmaps'
- Instead of deriving the location of a font in the destination tree
- from the location of the sources, the aliases and directory names
- from the Fontname distribution are used. (*note Introduction:
- (fontname)Top.).
-
-'nomfdrivers'
- Let mktexpk and mktextfm create metafont driver files in a
- temporary directory. These will be used for just one metafont run
- and not installed permanently.
-
-'nomode'
- Omit the directory level for the mode name; this is fine as long as
- you generate fonts for only one mode.
-
-'stripsupplier'
- Omit the font supplier name directory level.
-
-'striptypeface'
- Omit the font typeface name directory level.
-
-'strip'
- Omit the font supplier and typeface name directory levels. This
- feature is deprecated in favour of 'stripsupplier' and
- 'striptypeface'.
-
-'varfonts'
- When this option is enabled, fonts that would otherwise be written
- in system texmf tree go to the 'VARTEXFONTS' tree instead. The
- default value in 'kpathsea/Makefile.in' is '/var/tmp/texfonts'.
- The 'Linux File System Standard' recommends '/var/tex/fonts'.
-
- The 'varfonts' setting in 'MT_FEATURES' is overridden by the
- 'USE_VARTEXFONTS' environment variable: if set to '1', the feature
- is enabled, and if set to '0', the feature is disabled.
-
-'texmfvar'
- Force generated files that would go into a system tree (as defined
- by 'SYSTEXMF') into 'TEXMFVAR'. Starting with teTeX-3.0, the
- variable 'TEXMFVAR' is always set. The 'varfonts' feature takes
- precedence if also set.
-
- The 'texmfvar' setting in 'MT_FEATURES' is overridden by the
- 'USE_TEXMFVAR' environment variable: if set to '1', the feature is
- enabled, and if set to '0', the feature is disabled.
-
-
-File: kpathsea.info, Node: mktex script names, Next: mktex script arguments, Prev: mktex configuration, Up: mktex scripts
-
-2.2.9.2 'mktex' script names
-............................
-
-The following table shows the default name of the script for each of the
-file types which support runtime generation.
-
-'mktexfmt'
- ('.fmt', '.base', '.mem') TeX/Metafont/MetaPost formats. This
- script is also named 'fmtutil', and reads 'fmtutil.cnf' for
- configuration information.
-
-'mktexmf'
- ('.mf') Metafont input files.
-
-'mkocp'
- ('.ocp') Omega compiled process files.
-
-'mkofm'
- ('.ofm') Omega font metric files.
-
-'mktexpk'
- ('pk') Glyph fonts.
-
-'mktextex'
- ('.tex') TeX input files (disabled by default).
-
-'mktextfm'
- ('.tfm') TFM files.
-
-These names can be overridden by an environment variable specific to the
-program--for example, 'DVIPSMAKEPK' for Dvipsk.
-
- If a 'mktex...' script fails, the invocation is appended to a file
-'missfont.log' (by default) in the current directory. You can then
-execute the log file to create the missing files after fixing the
-problem.
-
- If the current directory is not writable and the environment variable
-or configuration file value 'TEXMFOUTPUT' is set, its value is used.
-Otherwise, nothing is written. The name 'missfont.log' is overridden by
-the 'MISSFONT_LOG' environment variable or configuration file value.
+ [Karl writes again.] Indeed, time goes on. As of 2006 or so, Olaf's
+available time for Kpathsea became rather reduced, and I started taking
+overall care of it again, although I did not do any significant new
+development. In 2009, Taco Hoekwater made a major rearrangement to make
+the library suitable for use within the MetaPost library (*note
+Programming overview::). Also, for some years now, Peter Breitenlohner
+has made many improvements to the infrastructure and kept up-to-date
+with respect to the overall TeX Live build, where Kpathsea is now
+maintained.

-File: kpathsea.info, Node: mktex script arguments, Prev: mktex script names, Up: mktex scripts
+File: kpathsea.info, Node: unixtex.ftp, Next: Security, Prev: Introduction, Up: Top
-2.2.9.3 'mktex' script arguments
-................................
-
-The first argument to a 'mktex' script is always the name of the file to
-be created.
+2 'unixtex.ftp': Obtaining TeX
+******************************
- In the default 'mktexpk' implementation, additional arguments may
-also be passed:
+This is <ftp://ftp.tug.org/tex/unixtex.ftp>, last updated 13 June 2010.
+Also available as <http://www.tug.org/unixtex.ftp>. Email
+<tex-k@tug.org> with comments or questions.
-'--dpi NUM'
- Sets the resolution of the generated font to NUM.
-'--mfmode NAME'
- Sets the Metafont mode to NAME.
-'--bdpi NUM'
- Sets the "base dpi" for the font. This must match the mode being
- used.
-'--mag STRING'
- A "magstep" string suitable for the Metafont 'mag' variable. This
- must match the combination of BDPI and DPI being used.
-'--destdir STRING'
- A directory name. If the directory is absolute, it is used as-is.
- Otherwise, it is appended to the root destination directory set in
- the script.
+ The principal free TeX distribution for Unix-like systems is TeX
+Live, on the web at <http://tug.org/texlive>. The pages there describe
+many ways to acquire and build TeX, over the Internet or on physical
+media, both the sources and precompiled binaries for many systems,
+either standalone or as part of various operating system distributions.
-
-File: kpathsea.info, Node: Installation testing, Prev: mktex scripts, Up: Custom installation
+ Web2C, Kpathsea, Dvips, and Dviljk are no longer released as a
+separate packages. Their sources are now maintained as part of TeX
+Live.
-2.2.10 Installation testing
----------------------------
+ The host ftp.cs.stanford.edu is the original source for the files for
+which Donald Knuth is directly responsible: 'tex.web', 'plain.tex', etc.
+However, unless you want to undertake the very significant project of
+building your TeX installation from scratch, it is far more reliable and
+less work to retrieve these files as part of a larger package
-Besides the tests listed in *note Simple installation::, you can try
-running 'make check'. This includes the torture tests (trip, trap, and
-mptrap) that come with Web2c (*note (web2c)Triptrap::).
+ In any case, the Stanford ftp site is not the canonical source for
+anything except what was created as part of Knuth's original TeX, so do
+not rely on any other files available there being up-to-date. The best
+place to check for up-to-date files is CTAN (the Comprehensive TeX
+Archive Network), <http://www.ctan.org>.

-File: kpathsea.info, Node: Security, Next: TeX directory structure, Prev: Custom installation, Up: Installation
+File: kpathsea.info, Node: Security, Next: TeX directory structure, Prev: unixtex.ftp, Up: Top
-2.3 Security
-============
+3 Security
+**********
None of the programs in the TeX system require any special system
privileges, so there's no first-level security concern of people gaining
@@ -1123,28 +282,20 @@ permissions as their parent directory, unless the 'appendonlydir'
feature is used, in which case the sticky bit is always set.

-File: kpathsea.info, Node: TeX directory structure, Next: unixtex.ftp, Prev: Security, Up: Installation
+File: kpathsea.info, Node: TeX directory structure, Next: Path searching, Prev: Security, Up: Top
-2.4 TeX directory structure
-===========================
+4 TeX directory structure
+*************************
This section describes the default installation hierarchy of the
distribution. It conforms to both the GNU coding standards and the TeX
directory structure (TDS) standard. For rationale and further
-explanation, please see those documents. The GNU standard is available
-as <ftp://prep.ai.mit.edu/pub/gnu/standards/standards.texi> and mirrors.
-The TDS document is available from 'CTAN:/tex-archive/tds' (*note
-unixtex.ftp::).
-
- You can change the default paths in many ways (*note Changing search
-paths::). One common desire is to put everything (binaries and all)
-under a single top-level directory such as '/usr/local/texmf' or
-'/opt/texmf'--in the terms used below, make PREFIX and TEXMF the same.
-For specific instructions on doing that, see *note configure
-scenarios::.
+explanation, please see those documents. The GNU document is available
+from <http://www.gnu.org/prep/standards>. The TDS document is available
+from <http://www.mirror.ctan.org/tds> (*note unixtex.ftp::).
- Here is a skeleton of the default directory structure, extracted from
-the TDS document:
+ In short, here is a skeleton of the default directory structure,
+extracted from the TDS document:
PREFIX/ installation root ('/usr/local' by default)
bin/ executables
@@ -1214,648 +365,9 @@ the TDS document:
/usr/local/share/texmf/web2c/texmf.cnf

-File: kpathsea.info, Node: unixtex.ftp, Next: Reporting bugs, Prev: TeX directory structure, Up: Installation
-
-2.5 'unixtex.ftp': Obtaining TeX
-================================
-
-This is <ftp://ftp.tug.org/tex/unixtex.ftp>, last updated 13 June 2010.
-Also available as <http://www.tug.org/unixtex.ftp>. Email
-<tex-k@tug.org> with comments or questions.
-
- The principal free TeX distribution for Unix-like systems is TeX
-Live, on the web at <http://tug.org/texlive>. The pages there describe
-many ways to acquire TeX, over the Internet or on physical media, both
-the sources and precompiled binaries for many systems, either standalone
-or as part of various operating system distributions.
-
- Web2C, Kpathsea, Dvips, and Dviljk are no longer released as a
-separate packages. Their sources are now maintained as part of TeX
-Live.
-
- The host ftp.cs.stanford.edu is the original source for the files for
-which Donald Knuth is directly responsible: 'tex.web', 'plain.tex', etc.
-However, unless you want to build your TeX library tree ab initio, it is
-more reliable and less work to retrieve these files as part of a larger
-package. In any case, that ftp site is not the canonical source for
-anything except what was created as part of Stanford TeX project, so do
-not rely on the other files available there being up-to-date.
-
-
-File: kpathsea.info, Node: Reporting bugs, Prev: unixtex.ftp, Up: Installation
-
-2.6 Reporting bugs
-==================
-
-(A copy of this chapter is in the file 'kpathsea/BUGS'.)
-
- If you have problems or suggestions, please report them to
-<tex-k@tug.org> using the bug checklist below.
-
- Please report bugs in the documentation; not only factual errors or
-inconsistent behavior, but unclear or incomplete explanations, typos,
-wrong fonts, ...
-
-* Menu:
-
-* Bug checklist:: What to include in a good bug report.
-* Mailing lists:: Joining the bugs or announcements mailing lists.
-* Debugging:: Analyzing runtime problems.
-* Logging:: Recording searches.
-* Common problems:: When things go wrong.
-
-
-File: kpathsea.info, Node: Bug checklist, Next: Mailing lists, Up: Reporting bugs
-
-2.6.1 Bug checklist
--------------------
-
-Before reporting a bug, please check below to be sure it isn't already
-known (*note Common problems::).
-
- Bug reports should be sent via electronic mail to <tex-k@tug.org>.
-
- The general principle is that a good bug report includes all the
-information necessary for reproduction. Therefore, to enable
-investigation, your report should include the following:
-
- * The version number(s) of the program(s) involved, and of Kpathsea
- itself. You can get the former by giving a sole option '--version'
- to the program, and the latter by running 'kpsewhich --version'.
- The 'NEWS' and 'ChangeLog' files also contain the version number.
-
- * The hardware, operating system (including version number),
- compiler, and 'make' program you are using (the output of 'uname
- -a' is a start on the first two, though often incomplete). If the
- bug involves the X window system, include X version and supplier
- information as well (examples: X11R6 from MIT; X11R4 from HP;
- OpenWindows 3.3 bundled with SunOS 4.1.4).
-
- * Any options you gave to 'configure'. This is recorded in the
- 'config.status' files.
-
- If you are reporting a bug in 'configure' itself, it's probably
- system-dependent, and it will be unlikely the maintainers can do
- anything useful if you merely report that thus-and-such is broken.
- Therefore, you need to do some additional work: for some bugs, you
- can look in the file 'config.log' where the test that failed should
- appear, along with the compiler invocation and source program in
- question. You can then compile it yourself by hand, and discover
- why the test failed. Other 'configure' bugs do not involve the
- compiler; in that case, the only recourse is to inspect the
- 'configure' shell script itself, or the Autoconf macros that
- generated 'configure'.
-
- * The log of all debugging output, if the bug is in path searching.
- You can get this by setting the environment variable
- 'KPATHSEA_DEBUG' to '-1' before running the program. Please look
- at the log yourself to make sure the behavior is really a bug
- before reporting it; perhaps "old" environment variable settings
- are causing files not to be found, for example.
-
- * The contents of any input files necessary to reproduce the bug.
- For bugs in DVI-reading programs, for example, this generally means
- a DVI file (and any EPS or other files it uses)--TeX source files
- are helpful, but the DVI file is necessary, because that's the
- actual program input.
-
- * If you are sending a patch (do so if you can!), please do so in the
- form of a context diff ('diff -c') against the original
- distribution source. Any other form of diff is either not as
- complete or harder for me to understand. Please also include a
- 'ChangeLog' entry.
-
- * If the bug involved is an actual crash (i.e., core dump), it is
- easy and useful to include a stack trace from a debugger (I
- recommend the GNU debugger GDB, available from
- <ftp://prep.ai.mit.edu/pub/gnu>). If the cause is apparent (a
- 'NULL' value being dereferenced, for example), please send the
- details along. If the program involved is TeX or Metafont, and the
- crash is happening at apparently-sound code, however, the bug may
- well be in the compiler, rather than in the program or the library
- (*note TeX or Metafont failing: TeX or Metafont failing.).
-
- * Any additional information that will be helpful in reproducing,
- diagnosing, or fixing the bug.
-
-
-File: kpathsea.info, Node: Mailing lists, Next: Debugging, Prev: Bug checklist, Up: Reporting bugs
-
-2.6.2 Mailing lists
--------------------
-
-Web2c and Kpathsea in general are discussed on the mailing list
-<tex-k@tug.org>. To join, email <tex-k-request@tug.org> with a line
-consisting of
-
- subscribe YOU@YOUR.PREFERRED.EMAIL.ADDRESS
-
-in the body of the message.
-
- You do not need to join to submit a report, nor will it affect
-whether you get a response. There is no Usenet newsgroup equivalent (if
-you can be the one to set this up, email 'tex-k-request'). Traffic on
-the list is fairly light, and is mainly bug reports and enhancement
-requests to the software. The best way to decide if you want to join or
-not is read some of the archives from
-<ftp://ftp.tug.org/mail/archives/tex-k/>.
-
- Be aware that large data files are sometimes included in bug reports.
-If this is a problem for you, do not join the list.
-
- If you are looking for general TeX help, such as how to use LaTeX,
-please use the mailing list <texhax@tug.org> mailing list
-(<http://lists.tug.org/texhax>) which is gatewayed to the
-'comp.text.tex' Usenet newsgroup (or post to the newsgroup; the gateway
-is bidirectional).
-
-
-File: kpathsea.info, Node: Debugging, Next: Logging, Prev: Mailing lists, Up: Reporting bugs
-
-2.6.3 Debugging
----------------
-
-Kpathsea provides a number of runtime debugging options, detailed below
-by their names and corresponding numeric values. When the files you
-expect aren't being found, the thing to do is enable these options and
-examine the output.
-
- You can set these with some runtime argument (e.g., '-d') to the
-program; in that case, you should use the numeric values described in
-the program's documentation (which, for Dvipsk and Xdvik, are different
-than those below). It's best to give the '-d' (or whatever) option
-first, for maximal output. Dvipsk and Xdvik have additional
-program-specific debugging options as well.
-
- You can also set the environment variable 'KPATHSEA_DEBUG'; in this
-case, you should use the numbers below. If you run the program under a
-debugger and set the instance variable 'kpse->debug', also use the
-numbers below.
-
- In any case, by far the simplest value to use is '-1', which will
-turn on all debugging output. This is usually better than guessing
-which particular values will yield the output you need.
-
- Debugging output always goes to standard error, so you can redirect
-it easily. For example, in Bourne-compatible shells:
- dvips -d -1 ... 2>/tmp/debug
-
- It is sometimes helpful to run the standalone Kpsewhich utility
-(*note Invoking kpsewhich::), instead of the original program.
-
- In any case, you can _not_ use the _names_ below; you must always use
-somebody's numbers. (Sorry.) To set more than one option, just sum the
-corresponding numbers.
-
-'KPSE_DEBUG_STAT (1)'
- Report 'stat'(2) calls. This is useful for verifying that your
- directory structure is not forcing Kpathsea to do many additional
- file tests (*note Slow path searching::, and *note Subdirectory
- expansion::). If you are using an up-to-date 'ls-R' database
- (*note Filename database::), this should produce no output unless a
- nonexistent file that must exist is searched for.
-
-'KPSE_DEBUG_HASH (2)'
- Report lookups in all hash tables: 'ls-R' and 'aliases' (*note
- Filename database::); font aliases (*note Fontmap::); and config
- file values (*note Config files::). Useful when expected values
- are not being found, e.g.., file searches are looking at the disk
- instead of using 'ls-R'.
-
-'KPSE_DEBUG_FOPEN (4)'
- Report file openings and closings. Especially useful when your
- system's file table is full, for seeing which files have been
- opened but never closed. In case you want to set breakpoints in a
- debugger: this works by redefining 'fopen' ('fclose') to be
- 'kpse_fopen_trace' ('kpse_fclose_trace').
-
-'KPSE_DEBUG_PATHS (8)'
- Report general path information for each file type Kpathsea is
- asked to search. This is useful when you are trying to track down
- how a particular path got defined--from 'texmf.cnf', 'config.ps',
- an environment variable, the compile-time default, etc. This is
- the contents of the 'kpse_format_info_type' structure defined in
- 'tex-file.h'.
-
-'KPSE_DEBUG_EXPAND (16)'
- Report the directory list corresponding to each path element
- Kpathsea searches. This is only relevant when Kpathsea searches
- the disk, since 'ls-R' searches don't look through directory lists
- in this way.
-
-'KPSE_DEBUG_SEARCH (32)'
- Report on each file search: the name of the file searched for, the
- path searched in, whether or not the file must exist (when drivers
- search for 'cmr10.vf', it need not exist), and whether or not we
- are collecting all occurrences of the file in the path (as with,
- e.g., 'texmf.cnf' and 'texfonts.map'), or just the first (as with
- most lookups). This can help you correlate what Kpathsea is doing
- with what is in your input file.
-
-'KPSE_DEBUG_VARS (64)'
- Report the value of each variable Kpathsea looks up. This is
- useful for verifying that variables do indeed obtain their correct
- values.
-
-'GSFTOPK_DEBUG (128)'
- Activates debugging printout specific to 'gsftopk' program.
-
-'MAKETEX_DEBUG (512)'
- If you use the optional 'mktex' programs instead of the traditional
- shell scripts, this will report the name of the site file
- ('mktex.cnf' by default) which is read, directories created by
- 'mktexdir', the full path of the 'ls-R' database built by
- 'mktexlsr', font map searches, 'MT_FEATURES' in effect, parameters
- from 'mktexnam', filenames added by 'mktexupd', and some subsidiary
- commands run by the programs.
-
-'MAKETEX_FINE_DEBUG (1024)'
- When the optional 'mktex' programs are used, this will print
- additional debugging info from functions internal to these
- programs.
-
- Debugging output from Kpathsea is always written to standard error,
-and begins with the string 'kdebug:'. (Except for hash table buckets,
-which just start with the number, but you can only get that output
-running under a debugger. See comments at the 'hash_summary_only'
-variable in 'kpathsea/db.c'.)
-
-
-File: kpathsea.info, Node: Logging, Next: Common problems, Prev: Debugging, Up: Reporting bugs
-
-2.6.4 Logging
--------------
-
-Kpathsea can record the time and filename found for each successful
-search. This may be useful in finding good candidates for deletion when
-your filesystem is full, or in discovering usage patterns at your site.
-
- To do this, define the environment or config file variable
-'TEXMFLOG'. The value is the name of the file to append the information
-to. The file is created if it doesn't exist, and appended to if it
-does.
-
- Each successful search turns into one line in the log file: two words
-separated by a space. The first word is the time of the search, as the
-integer number of seconds since "the epoch", i.e., UTC midnight 1
-January 1970 (more precisely, the result of the 'time' system call).
-The second word is the filename.
-
- For example, after 'setenv TEXMFLOG /tmp/log', running Dvips on
-'story.dvi' appends the following lines:
-
- 774455887 /usr/local/share/texmf/dvips/config.ps
- 774455887 /usr/local/share/texmf/dvips/psfonts.map
- 774455888 /usr/local/share/texmf/dvips/texc.pro
- 774455888 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmbx10.600pk
- 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmsl10.600pk
- 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk
- 774455889 /usr/local/share/texmf/dvips/texc.pro
-
-Only filenames that are absolute are recorded, to preserve some
-semblance of privacy.
-
- In addition to this Kpathsea-specific logging, 'pdftex' provides an
-option '-recorder' to write the names of all files accessed during a run
-to the file 'BASEFILE.fls'.
-
- Finally, most systems provide a general tool to output each system
-call, thus including opening and closing files. It might be named
-'strace', 'truss', 'struss', or something else.
-
-
-File: kpathsea.info, Node: Common problems, Prev: Logging, Up: Reporting bugs
-
-2.6.5 Common problems
----------------------
-
-Here are some common problems with configuration, compilation, linking,
-execution, ...
-
-* Menu:
-
-* Unable to find files:: If your program can't find fonts (or whatever).
-* Slow path searching:: If it takes forever to find anything.
-* Unable to generate fonts:: If mktexpk fails.
-* TeX or Metafont failing:: Likely compiler bugs.
-
-* Empty Makefiles:: When configure produces empty makefiles.
-* XtStrings:: When _XtStrings is undefined.
-* dlopen:: When dlopen is undefined.
-* ShellWidgetClass:: For dynamic linking troubles under OpenWindows.
-* Pointer combination warnings:: For old compilers that don't grok char *.
-
-
-File: kpathsea.info, Node: Unable to find files, Next: Slow path searching, Up: Common problems
-
-2.6.5.1 Unable to find files
-............................
-
-If a program complains it cannot find fonts (or other input files), any
-of several things might be wrong. In any case, you may find the
-debugging options helpful. *Note Debugging::.
-
- * Perhaps you simply haven't installed all the necessary files; the
- basic fonts and input files are distributed separately from the
- programs. *Note unixtex.ftp::.
-
- * You have (perhaps unknowingly) told Kpathsea to use search paths
- that don't reflect where the files actually are. One common cause
- is having environment variables set from a previous installation,
- thus overriding what you carefully set in 'texmf.cnf' (*note
- Supported file formats::). System '/etc/profile' or other files
- such may be the culprit.
-
- * Your files reside in a directory that is only pointed to via a
- symbolic link, in a leaf directory and is not listed in 'ls-R'.
-
- Unfortunately, Kpathsea's subdirectory searching has an
- irremediable deficiency: If a directory D being searched for
- subdirectories contains plain files and symbolic links to other
- directories, but no true subdirectories, D will be considered a
- leaf directory, i.e., the symbolic links will not be followed.
- *Note Subdirectory expansion::.
-
- You can work around this problem by creating an empty dummy
- subdirectory in D. Then D will no longer be a leaf, and the
- symlinks will be followed.
-
- The directory immediately followed by the '//' in the path
- specification, however, is always searched for subdirectories, even
- if it is a leaf. Presumably you would not have asked for the
- directory to be searched for subdirectories if you didn't want it
- to be.
-
- * If the fonts (or whatever) don't already exist, 'mktexpk' (or
- 'mktexmf' or 'mktextfm') will try to create them. If these rather
- complicated shell scripts fail, you'll eventually get an error
- message saying something like 'Can't find font FONTNAME'. The best
- solution is to fix (or at least report) the bug in 'mktexpk'; the
- workaround is to generate the necessary fonts by hand with
- Metafont, or to grab them from a CTAN site (*note unixtex.ftp::).
-
- * There is a bug in the library. *Note Reporting bugs::.
-
-
-File: kpathsea.info, Node: Slow path searching, Next: Unable to generate fonts, Prev: Unable to find files, Up: Common problems
-
-2.6.5.2 Slow path searching
-...........................
-
-If your program takes an excessively long time to find fonts or other
-input files, but does eventually succeed, here are some possible
-culprits:
-
- * Most likely, you just have a lot of directories to search, and that
- takes a noticeable time. The solution is to create and maintain a
- separate 'ls-R' file that lists all the files in your main TeX
- hierarchy. *Note Filename database::. Kpathsea always uses 'ls-R'
- if it's present; there's no need to recompile or reconfigure any of
- the programs.
-
- * Your recursively-searched directories (e.g.,
- '/usr/local/share/texmf/fonts//'), contain a mixture of files and
- directories. This prevents Kpathsea from using a useful
- optimization (*note Subdirectory expansion::).
-
- It is best to have only directories (and perhaps a 'README') in the
- upper levels of the directory structure, and it's very important to
- have _only_ files, and no subdirectories, in the leaf directories
- where the dozens of TFM, PK, or whatever files reside.
-
- In any case, you may find the debugging options helpful in
-determining precisely when the disk or network is being pounded. *Note
-Debugging::.
-
-
-File: kpathsea.info, Node: Unable to generate fonts, Next: TeX or Metafont failing, Prev: Slow path searching, Up: Common problems
+File: kpathsea.info, Node: Path searching, Next: TeX support, Prev: TeX directory structure, Up: Top
-2.6.5.3 Unable to generate fonts
-................................
-
-Metafont outputs fonts in bitmap format, tuned for a particular device
-at a particular resolution, in order to allow for the highest-possible
-quality of output. Some DVI-to-whatever programs, such as Dvips, try to
-generate these on the fly when they are needed, but this generation may
-fail in several cases.
-
- If 'mktexpk' runs, but fails with this error:
- mktexpk: Can't guess mode for NNN dpi devices.
- mktexpk: Use a config file to specify the mode, or update me.
- you need to ensure the resolution and mode match; just specifying the
-resolution, as in '-D 360', is not enough.
-
- You can specify the mode name with the '-mode' option on the Dvips
-command line, or in a Dvips configuration file (*note (dvips)Config
-files::), such as 'config.ps' in your document directory, '~/.dvipsrc'
-in your home directory, or in a system directory (again named
-'config.ps'). (Other drivers use other files, naturally.)
-
- For example, if you need 360dpi fonts, you could include this in a
-configuration file:
- D 360
- M lqmed
-
- If Metafont runs, but generates fonts at the wrong resolution or for
-the wrong device, most likely 'mktexpk''s built-in guess for the mode is
-wrong, and you should override it as above.
-
- See <ftp://ftp.tug.org/tex/modes.mf> for a list of resolutions and
-mode names for most devices (additional submissions are welcome).
-
- If Metafont runs but generates fonts at a resolution of 2602dpi (and
-prints out the name of each character as well as just a character
-number, and maybe tries to display the characters), then your Metafont
-base file probably hasn't been made properly. (It's using the default
-'proof' mode, instead of an actual device mode.) To make a proper
-'plain.base', assuming the local mode definitions are contained in a
-file 'modes.mf', run the following command (assuming Unix):
-
- inimf "plain; input modes; dump"
-
-Then copy the 'plain.base' file from the current directory to where the
-base files are stored on your system ('/usr/local/share/texmf/web2c' by
-default), and make a link (either hard or soft) from 'plain.base' to
-'mf.base' in that directory. *Note (web2c)inimf invocation::.
-
- If 'mf' is a command not found at all by 'mktexpk', then you need to
-install Metafont (*note unixtex.ftp::).
-
-
-File: kpathsea.info, Node: TeX or Metafont failing, Next: Empty Makefiles, Prev: Unable to generate fonts, Up: Common problems
-
-2.6.5.4 TeX or Metafont failing
-...............................
-
-If TeX or Metafont get a segmentation fault or otherwise fail while
-running a normal input file, the problem is usually a compiler bug
-(unlikely as that may sound). Even if the trip and trap tests are
-passed, problems may lurk. Optimization occasionally causes trouble in
-programs other than TeX and Metafont themselves, too.
-
- Insufficient swap space may also cause core dumps or other erratic
-behavior.
-
- For a workaround, if you enabled any optimization flags, it's best to
-omit optimization entirely. In any case, the way to find the facts is
-to run the program under the debugger and see where it's failing.
-
- Also, if you have trouble with a system C compiler, I advise trying
-the GNU C compiler. And vice versa, unfortunately; but in that case I
-also recommend reporting a bug to the GCC mailing list; see *note
-(gcc)Bugs::.
-
- To report compiler bugs effectively requires perseverance and
-perspicacity: you must find the miscompiled line, and that usually
-involves delving backwards in time from the point of error, checking
-through TeX's (or whatever program's) data structures. Things are not
-helped by all-too-common bugs in the debugger itself. Good luck.
-
- One known cause of trouble is the way arrays are handled. Some of
-the Pascal arrays have a lower index other than 0, and the C code will
-take the pointer to the allocated memory, subtract the lower index, and
-use the resulting pointer for the array. While this trick often works,
-ANSI C doesn't guarantee that it will. It it known to fail on HP-UX 10
-machines when the native compiler is used, unless the '+u' compiler
-switch was specified. Using GCC will work on this platform as well.
-
-
-File: kpathsea.info, Node: Empty Makefiles, Next: XtStrings, Prev: TeX or Metafont failing, Up: Common problems
-
-2.6.5.5 Empty Makefiles
-.......................
-
-On some systems (NetBSD, FreeBSD, AIX 4.1, and Mach10), 'configure' may
-fail to properly create the Makefiles. Instead, you get an error which
-looks something like this:
-
- prompt$ ./configure
- ...
- creating Makefile
- sed: 1: "\\@^ac_include make/pat ...": \ can not
- be used as a string delimiter
-
- So far as I know, the bug here is in '/bin/sh' on these systems. I
-don't have access to a machine running any of them, so if someone can
-find a workaround that avoids the quoting bug, I'd be most grateful.
-(Search for 'ac_include' in the 'configure' script to get to the
-problematic code.)
-
- It should work to run 'bash configure', instead of using '/bin/sh'.
-You can get Bash from <ftp://prep.ai.mit.edu/pub/gnu> and mirrors.
-
- Another possible cause (reported for NeXT) is a bug in the 'sed'
-command. In that case the error may look like this:
-
- Unrecognized command: \@^ac_include make/paths.make@r make/paths.make
-
- In this case, installing GNU 'sed' should solve the problem. You can
-get GNU 'sed' from the same places as Bash.
-
-
-File: kpathsea.info, Node: XtStrings, Next: dlopen, Prev: Empty Makefiles, Up: Common problems
-
-2.6.5.6 'XtStrings'
-...................
-
-You may find that linking X programs results in an error from the linker
-that 'XtStrings' is undefined, something like this:
-
- gcc -o virmf ...
- .../x11.c:130: undefined reference to `XtStrings'
-
- This generally happens because of a mismatch between the X include
-files with which you compiled and the X libraries with which you linked;
-often, the include files are from MIT and the libraries from Sun.
-
- The solution is to use the same X distribution for compilation and
-linking. Probably 'configure' was unable to guess the proper
-directories from your installation. You can use the 'configure' options
-'--x-includes=PATH' and '--x-libraries=PATH' to explicitly specify them.
-
-
-File: kpathsea.info, Node: dlopen, Next: ShellWidgetClass, Prev: XtStrings, Up: Common problems
-
-2.6.5.7 'dlopen'
-................
-
-(This section adapted from the file 'dlsym.c' in the X distribution.)
-
- The 'Xlib' library uses the standard C function 'wcstombs'. Under
-SunOS 4.1, 'wcstombs' uses the 'dlsym' interface defined in 'libdl.so'.
-Unfortunately, the SunOS 4.1 distribution does not include a static
-'libdl.a' library.
-
- As a result, if you try to link an X program statically under SunOS,
-you may get undefined references to 'dlopen', 'dlsym', and 'dlclose'.
-One workaround is to include these definitions when you link:
-
- void *dlopen() { return 0; }
- void *dlsym() { return 0; }
- int dlclose() { return -1; }
-
-These are contained in the 'dlsym.c' file in the MIT X distribution.
-
-
-File: kpathsea.info, Node: ShellWidgetClass, Next: Pointer combination warnings, Prev: dlopen, Up: Common problems
-
-2.6.5.8 'ShellWidgetClass'
-..........................
-
-(This section adapted from the comp.sys.sun.admin FAQ.)
-
- If you are linking with Sun's OpenWindows libraries in SunOS 4.1.x,
-you may get undefined symbols '_get_wmShellWidgetClass' and
-'_get_applicationShellWidgetClass' when linking. This problem does not
-arise using the standard MIT X libraries under SunOS.
-
- The cause is bugs in the 'Xmu' shared library as shipped from Sun.
-There are several fixes:
-
- * Install the free MIT distribution from 'ftp.x.org' and mirrors.
-
- * Get the OpenWindows patches listed below.
-
- * Statically link the 'Xmu' library into the executable.
-
- * Avoid using 'Xmu' at all. If you are compiling Metafont, see *note
- (web2c)Online Metafont graphics::. If you are compiling Xdvi, see
- the '-DNOTOOL' option in 'xdvik/INSTALL'.
-
- * Ignore the errors. The binary runs fine regardless.
-
- Here is the information for getting the two patches:
-
- Patch ID: 100512-02
- Bug ID's: 1086793, 1086912, 1074766
- Description: 4.1.x OpenWindows 3.0 'libXt' jumbo patch
-
- Patch ID: 100573-03
- Bug ID: 1087332
- Description: 4.1.x OpenWindows 3.0 undefined symbols when using shared 'libXmu'.
-
- The way to statically link with 'libXmu' depends on whether you are
-using a Sun compiler (e.g., 'cc') or 'gcc'. If the latter, alter the
-'x_libs' Make variable to include
-
- -static -lXmu -dynamic
-
- If you are using the Sun compiler, use '-Bstatic' and '-Bdynamic'.
-
-
-File: kpathsea.info, Node: Pointer combination warnings, Prev: ShellWidgetClass, Up: Common problems
-
-2.6.5.9 Pointer combination warnings
-....................................
-
-When compiling with old C compilers, you may get some warnings about
-"illegal pointer combinations". These are spurious; just ignore them.
-I decline to clutter up the source with casts to get rid of them.
-
-
-File: kpathsea.info, Node: Path searching, Next: TeX support, Prev: Installation, Up: Top
-
-3 Path searching
+5 Path searching
****************
This chapter describes the generic path searching mechanism Kpathsea
@@ -1873,7 +385,7 @@ provides. For information about searching for particular file types

File: kpathsea.info, Node: Searching overview, Next: Path sources, Up: Path searching
-3.1 Searching overview
+5.1 Searching overview
======================
A "search path" is a colon-separated list of "path elements", which are
@@ -1941,7 +453,7 @@ when searching for a file of a particular type (*note File lookup::, and

File: kpathsea.info, Node: Path sources, Next: Path expansion, Prev: Searching overview, Up: Path searching
-3.2 Path sources
+5.2 Path sources
================
A search path can come from many sources. In the order in which
@@ -1973,7 +485,7 @@ expansion::).

File: kpathsea.info, Node: Config files, Up: Path sources
-3.2.1 Config files
+5.2.1 Config files
------------------
As mentioned above, Kpathsea reads "runtime configuration files" named
@@ -2061,7 +573,7 @@ anyway, since the 'sh' process couldn't affect its parent's environment.

File: kpathsea.info, Node: Path expansion, Next: Filename database, Prev: Path sources, Up: Path searching
-3.3 Path expansion
+5.3 Path expansion
==================
Kpathsea recognizes certain special characters and constructions in
@@ -2082,7 +594,7 @@ file 'baz'. These expansions are explained in the sections below.

File: kpathsea.info, Node: Default expansion, Next: Variable expansion, Up: Path expansion
-3.3.1 Default expansion
+5.3.1 Default expansion
-----------------------
If the highest-priority search path (*note Path sources::) contains an
@@ -2133,7 +645,7 @@ expansion is implemented in the source file 'kpathsea/kdefault.c'.

File: kpathsea.info, Node: Variable expansion, Next: Tilde expansion, Prev: Default expansion, Up: Path expansion
-3.3.2 Variable expansion
+5.3.2 Variable expansion
------------------------
'$foo' or '${foo}' in a path element is replaced by (1) the value of an
@@ -2168,7 +680,7 @@ sources::).

File: kpathsea.info, Node: Tilde expansion, Next: Brace expansion, Prev: Variable expansion, Up: Path expansion
-3.3.3 Tilde expansion
+5.3.3 Tilde expansion
---------------------
A leading '~' in a path element is replaced by the value of the
@@ -2195,7 +707,7 @@ the path element '~root/mymacros' expands to just '/mymacros', not

File: kpathsea.info, Node: Brace expansion, Next: KPSE_DOT expansion, Prev: Tilde expansion, Up: Path expansion
-3.3.4 Brace expansion
+5.3.4 Brace expansion
---------------------
'x{A,B}y' expands to 'xAy:xBy'. For example:
@@ -2224,7 +736,7 @@ example could have been written 'x{A:B}{1:2}y'.

File: kpathsea.info, Node: KPSE_DOT expansion, Next: Subdirectory expansion, Prev: Brace expansion, Up: Path expansion
-3.3.5 'KPSE_DOT' expansion
+5.3.5 'KPSE_DOT' expansion
--------------------------
When 'KPSE_DOT' is defined in the environment, it names a directory that
@@ -2236,7 +748,7 @@ directory. You should not ever define it yourself.

File: kpathsea.info, Node: Subdirectory expansion, Prev: KPSE_DOT expansion, Up: Path expansion
-3.3.6 Subdirectory expansion
+5.3.6 Subdirectory expansion
----------------------------
Two or more consecutive slashes in a path element following a directory
@@ -2287,7 +799,7 @@ And if you can find a way to _solve_ the problem, please let me know.

File: kpathsea.info, Node: Filename database, Next: Invoking kpsewhich, Prev: Path expansion, Up: Path searching
-3.4 Filename database ('ls-R')
+5.4 Filename database ('ls-R')
==============================
Kpathsea goes to some lengths to minimize disk accesses for searches
@@ -2315,7 +827,7 @@ filename conventions in source files.

File: kpathsea.info, Node: ls-R, Next: Filename aliases, Up: Filename database
-3.4.1 'ls-R'
+5.4.1 'ls-R'
------------
As mentioned above, you must name the main filename database 'ls-R'.
@@ -2375,7 +887,7 @@ paths.

File: kpathsea.info, Node: Filename aliases, Next: Database format, Prev: ls-R, Up: Filename database
-3.4.2 Filename aliases
+5.4.2 Filename aliases
----------------------
In some circumstances, you may wish to find a file under several names.
@@ -2403,7 +915,7 @@ aliases.

File: kpathsea.info, Node: Database format, Prev: Filename aliases, Up: Filename database
-3.4.3 Database format
+5.4.3 Database format
---------------------
The "database" read by Kpathsea is a line-oriented file of plain text.
@@ -2446,7 +958,7 @@ the '-R' option, as follows.

File: kpathsea.info, Node: Invoking kpsewhich, Prev: Filename database, Up: Path searching
-3.5 'kpsewhich': Standalone path searching
+5.5 'kpsewhich': Standalone path searching
==========================================
The Kpsewhich program exercises the path searching functionality
@@ -2473,7 +985,7 @@ accepted.

File: kpathsea.info, Node: Path searching options, Next: Specially-recognized files, Up: Invoking kpsewhich
-3.5.1 Path searching options
+5.5.1 Path searching options
----------------------------
Kpsewhich looks up each non-option argument on the command line as a
@@ -2577,7 +1089,7 @@ filename, and returns the first file found.
pdftex config (pdftexconfig):
lig files: .lig
texmfscripts:
- lua: .luc .luctex .texluc .lua .luatex .texlua
+ lua: .lua .luatex .luc .luctex .texlua .texluc .tlu
font feature files: .fea
cid maps: .cid .cidmap
mlbib: .mlbib .bib
@@ -2693,7 +1205,7 @@ filename, and returns the first file found.

File: kpathsea.info, Node: Specially-recognized files, Next: Auxiliary tasks, Prev: Path searching options, Up: Invoking kpsewhich
-3.5.2 Specially-recognized files for 'kpsewhich'
+5.5.2 Specially-recognized files for 'kpsewhich'
------------------------------------------------
'kpsewhich' recognizes a few special filenames on the command line and
@@ -2743,7 +1255,7 @@ about the above configuration files (among others).

File: kpathsea.info, Node: Auxiliary tasks, Next: Standard options, Prev: Specially-recognized files, Up: Invoking kpsewhich
-3.5.3 Auxiliary tasks
+5.5.3 Auxiliary tasks
---------------------
Kpsewhich provides some additional features not strictly related to path
@@ -2789,7 +1301,7 @@ lookup:

File: kpathsea.info, Node: Standard options, Prev: Auxiliary tasks, Up: Invoking kpsewhich
-3.5.4 Standard options
+5.5.4 Standard options
----------------------
Kpsewhich accepts the standard GNU options:
@@ -2803,7 +1315,7 @@ Kpsewhich accepts the standard GNU options:

File: kpathsea.info, Node: TeX support, Next: Programming, Prev: Path searching, Up: Top
-4 TeX support
+6 TeX support
*************
Although the basic features in Kpathsea can be used for any type of path
@@ -2829,11 +1341,12 @@ is named 'cmr10.600pk', it will be found as a PK file.
* File lookup:: Searching for most kinds of files.
* Glyph lookup:: Searching for bitmap fonts.
* Suppressing warnings:: Avoiding warnings via TEX_HUSH.
+* mktex scripts:: Generating files at runtime.

File: kpathsea.info, Node: Supported file formats, Next: File lookup, Up: TeX support
-4.1 Supported file formats
+6.1 Supported file formats
==========================
Kpathsea has support for a number of file types. Each file type has a
@@ -3076,7 +1589,7 @@ expansion::.

File: kpathsea.info, Node: File lookup, Next: Glyph lookup, Prev: Supported file formats, Up: TeX support
-4.2 File lookup
+6.2 File lookup
===============
This section describes how Kpathsea searches for most files (bitmap font
@@ -3117,7 +1630,7 @@ the debugging options (*note Debugging::).

File: kpathsea.info, Node: Glyph lookup, Next: Suppressing warnings, Prev: File lookup, Up: TeX support
-4.3 Glyph lookup
+6.3 Glyph lookup
================
This section describes how Kpathsea searches for a bitmap font in GF or
@@ -3152,7 +1665,7 @@ successful lookup.

File: kpathsea.info, Node: Basic glyph lookup, Next: Fontmap, Up: Glyph lookup
-4.3.1 Basic glyph lookup
+6.3.1 Basic glyph lookup
------------------------
When Kpathsea looks for a bitmap font NAME at resolution DPI in a format
@@ -3173,7 +1686,7 @@ than the 0.2% minimum allowed by the DVI standard

File: kpathsea.info, Node: Fontmap, Next: Fallback font, Prev: Basic glyph lookup, Up: Glyph lookup
-4.3.2 Fontmap
+6.3.2 Fontmap
-------------
If a bitmap font or metric file is not found with the original name (see
@@ -3214,9 +1727,8 @@ of extension. For example, an alias 'foo.tfm' matches only when
'foo.600pk', etc.
As an example, here is an excerpt from the 'texfonts.map' in the
-Web2c distribution. It makes the circle fonts equivalent and includes
-automatically generated maps for most PostScript fonts available from
-various font suppliers.
+Web2c distribution. It makes the old and new names of the LaTeX circle
+fonts equivalent.
circle10 lcircle10
circle10 lcirc10
@@ -3225,19 +1737,15 @@ various font suppliers.
lcirc10 circle10
lcirc10 lcircle10
...
- include adobe.map
- include apple.map
- include bitstrea.map
- ...
Fontmaps are implemented in the file 'kpathsea/fontmap.c'. The
Fontname distribution has much more information on font naming (*note
-(fontname)Introduction::).
+(fontname)::).

File: kpathsea.info, Node: Fallback font, Prev: Fontmap, Up: Glyph lookup
-4.3.3 Fallback font
+6.3.3 Fallback font
-------------------
If a bitmap font cannot be found or created at the requested size,
@@ -3255,9 +1763,9 @@ Programs must enable this feature by calling 'kpathsea_init_prog' (*note
Calling sequence::); the default is no fallback font.

-File: kpathsea.info, Node: Suppressing warnings, Prev: Glyph lookup, Up: TeX support
+File: kpathsea.info, Node: Suppressing warnings, Next: mktex scripts, Prev: Glyph lookup, Up: TeX support
-4.4 Suppressing warnings
+6.4 Suppressing warnings
========================
Kpathsea provides a way to suppress selected usually-harmless warnings;
@@ -3292,9 +1800,245 @@ possibilities:
driver implements its own checks where appropriate.

-File: kpathsea.info, Node: Programming, Next: Index, Prev: TeX support, Up: Top
+File: kpathsea.info, Node: mktex scripts, Prev: Suppressing warnings, Up: TeX support
+
+6.5 'mktex' scripts
+===================
+
+If Kpathsea cannot otherwise find a file, for some file types it is
+configured by default to invoke an external program to create it
+dynamically (*note mktex configuration::). These are collectively known
+as "'mktex' scripts", since most of them are named 'mktex...'.
+
+ For example, this is useful for fonts (bitmaps, TFM's, and
+arbitrarily-sizable Metafont sources such as the Sauter and EC fonts),
+since any given document can use fonts never before referenced.
+Building all fonts in advance is therefore impractical, if not
+impossible.
+
+ It is also useful for the TeX '.fmt' (and Metafont '.base' and
+Metapost '.mem' files, *note (Web2c)Memory dumps::), where
+pre-generating every format consumes a lot of both time and space.
+
+ The script is passed the name of the file to create and possibly
+other arguments, as explained below. It must echo the full pathname of
+the file it created (and nothing else) to standard output; it can write
+diagnostics to standard error.
+
+* Menu:
+
+* config: mktex configuration.
+* names: mktex script names.
+* args: mktex script arguments.
+
+
+File: kpathsea.info, Node: mktex configuration, Next: mktex script names, Up: mktex scripts
+
+6.5.1 'mktex' configuration
+---------------------------
+
+The list of file types and program names that can run an external
+program to create missing files is listed in the next section. In the
+absence of 'configure' options specifying otherwise, everything but
+'mktextex' will be enabled by default. The 'configure' options to
+change the defaults are:
+
+ --without-mktexfmt-default
+ --without-mktexmf-default
+ --without-mktexocp-default
+ --without-mktexofm-default
+ --without-mktexpk-default
+ --without-mktextfm-default
+ --with-mktextex-default
+
+ The 'configure' setting is overridden if the environment variable or
+configuration file value named for the script is set; e.g., 'MKTEXPK'
+(*note mktex script arguments::).
+
+ 'mktexfmt' reads a file 'fmtutil.cnf', typically located in
+'texmf/web2c/' to glean its configuration information. The rest of the
+files and features in this section are primarily intended for the font
+generation scripts.
+
+ As distributed, all the scripts source a file 'texmf/web2c/mktex.cnf'
+if it exists, so you can override various defaults. See 'mktex.opt',
+for instance, which defines the default mode, resolution, some special
+directory names, etc. If you prefer not to change the distributed
+scripts, you can simply create 'mktex.cnf' with the appropriate
+definitions (you do not need to create it if you have nothing to put in
+it). 'mktex.cnf' has no special syntax; it's an arbitrary Bourne shell
+script. The distribution contains a sample 'mktex.cnf' for you to copy
+and modify as you please (it is not installed anywhere).
+
+ In addition, you can configure a number of features with the
+'MT_FEATURES' variable, which you can define:
+
+ * in 'mktex.opt', as just mentioned;
+
+ * by editing the file 'mktex.opt', either before 'make install' (in
+ the source hierarchy) or after (in the installed hierarchy);
+
+ * or in the environment.
+
+ If none of the options below are enabled, 'mktexpk', 'mktextfm', and
+'mktexmf' follow the following procedure to decide where fonts should be
+installed. Find the tree where the font's sources are, and test the
+permissions of the 'fonts' directory of that tree to determine whether
+it is writable. If it is, put the files in the tree in appropriate
+locations. If it isn't writable, see whether the tree is a system tree
+(named in 'SYSTEXMF'). If so, the 'VARTEXFONTS' tree is used. In all
+other cases the working directory is used.
+
+ The 'appendonlydir' option is enabled by default.
+
+'appendonlydir'
+ Tell 'mktexdir' to create directories append-only, i.e., set their
+ sticky bit (*note (coreutils)Mode Structure::). This feature is
+ silently ignored on non-Unix platforms (e.g. Windows/NT and
+ MS-DOS) which don't support similar functionality. This feature is
+ enabled by default.
+
+'dosnames'
+ Use 8.3 names; e.g., 'dpi600/cmr10.pk' instead of 'cmr10.600pk'.
+ Note that this feature only affects filenames that would otherwise
+ clash with other TeX-related filenames; 'mktex' scripts do nothing
+ about filenames which exceed the 8+3 MS-DOS limits but remain
+ unique when truncated (by the OS) to these limits, and nether do
+ the scripts care about possible clashes with files which aren't
+ related with TeX. For example, 'cmr10.600pk' would clash with
+ 'cmr10.600gf' and is therefore changed when 'dosnames' is in
+ effect, but 'mf.pool' and 'mp.base' don't clash with any
+ TeX-related files and are therefore unchanged.
+
+ This feature is turned on by default on MS-DOS. If you do not wish
+ 'dosnames' to be set on an MS-DOS platform, you need to set the
+ 'MT_FEATURES' environment variable to a value that doesn't include
+ 'dosnames'. You can also change the default setting by editing
+ 'mktex.opt', but only if you use the 'mktex' shell scripts; the
+ emulation programs don't consult 'mktex.opt'.
+
+'fontmaps'
+ Instead of deriving the location of a font in the destination tree
+ from the location of the sources, the aliases and directory names
+ from the Fontname distribution are used. (*note Introduction:
+ (fontname)Top.).
+
+'nomfdrivers'
+ Let mktexpk and mktextfm create metafont driver files in a
+ temporary directory. These will be used for just one metafont run
+ and not installed permanently.
+
+'nomode'
+ Omit the directory level for the mode name; this is fine as long as
+ you generate fonts for only one mode.
+
+'stripsupplier'
+ Omit the font supplier name directory level.
+
+'striptypeface'
+ Omit the font typeface name directory level.
+
+'strip'
+ Omit the font supplier and typeface name directory levels. This
+ feature is deprecated in favour of 'stripsupplier' and
+ 'striptypeface'.
+
+'varfonts'
+ When this option is enabled, fonts that would otherwise be written
+ in system texmf tree go to the 'VARTEXFONTS' tree instead. The
+ default value in 'kpathsea/Makefile.in' is '/var/tmp/texfonts'.
+ The 'Linux File System Standard' recommends '/var/tex/fonts'.
+
+ The 'varfonts' setting in 'MT_FEATURES' is overridden by the
+ 'USE_VARTEXFONTS' environment variable: if set to '1', the feature
+ is enabled, and if set to '0', the feature is disabled.
+
+'texmfvar'
+ Force generated files that would go into a system tree (as defined
+ by 'SYSTEXMF') into 'TEXMFVAR'. Starting with teTeX-3.0, the
+ variable 'TEXMFVAR' is always set. The 'varfonts' feature takes
+ precedence if also set.
+
+ The 'texmfvar' setting in 'MT_FEATURES' is overridden by the
+ 'USE_TEXMFVAR' environment variable: if set to '1', the feature is
+ enabled, and if set to '0', the feature is disabled.
+
+
+File: kpathsea.info, Node: mktex script names, Next: mktex script arguments, Prev: mktex configuration, Up: mktex scripts
+
+6.5.2 'mktex' script names
+--------------------------
+
+The following table shows the default name of the script for each of the
+file types which support runtime generation.
+
+'mktexfmt'
+ ('.fmt', '.base', '.mem') TeX/Metafont/MetaPost formats. This
+ script is also named 'fmtutil', and reads 'fmtutil.cnf' for
+ configuration information.
+
+'mktexmf'
+ ('.mf') Metafont input files.
+
+'mkocp'
+ ('.ocp') Omega compiled process files.
+
+'mkofm'
+ ('.ofm') Omega font metric files.
+
+'mktexpk'
+ ('pk') Glyph fonts.
+
+'mktextex'
+ ('.tex') TeX input files (disabled by default).
+
+'mktextfm'
+ ('.tfm') TFM files.
+
+These names can be overridden by an environment variable specific to the
+program--for example, 'DVIPSMAKEPK' for Dvipsk.
+
+ If a 'mktex...' script fails, the invocation is appended to a file
+'missfont.log' (by default) in the current directory. You can then
+execute the log file to create the missing files after fixing the
+problem.
+
+ If the current directory is not writable and the environment variable
+or configuration file value 'TEXMFOUTPUT' is set, its value is used.
+Otherwise, nothing is written. The name 'missfont.log' is overridden by
+the 'MISSFONT_LOG' environment variable or configuration file value.
+
+
+File: kpathsea.info, Node: mktex script arguments, Prev: mktex script names, Up: mktex scripts
+
+6.5.3 'mktex' script arguments
+------------------------------
+
+The first argument to a 'mktex' script is always the name of the file to
+be created.
+
+ In the default 'mktexpk' implementation, additional arguments may
+also be passed:
+
+'--dpi NUM'
+ Sets the resolution of the generated font to NUM.
+'--mfmode NAME'
+ Sets the Metafont mode to NAME.
+'--bdpi NUM'
+ Sets the "base dpi" for the font. This must match the mode being
+ used.
+'--mag STRING'
+ A "magstep" string suitable for the Metafont 'mag' variable. This
+ must match the combination of BDPI and DPI being used.
+'--destdir STRING'
+ A directory name. If the directory is absolute, it is used as-is.
+ Otherwise, it is appended to the root destination directory set in
+ the script.
+
+
+File: kpathsea.info, Node: Programming, Next: Reporting bugs, Prev: TeX support, Up: Top
-5 Programming
+7 Programming
*************
This chapter is for programmers who wish to use Kpathsea. *Note
@@ -3310,7 +2054,7 @@ Introduction::, for the conditions under which you may do so.

File: kpathsea.info, Node: Programming overview, Next: Calling sequence, Up: Programming
-5.1 Programming overview
+7.1 Programming overview
========================
Aside from this manual, your best source of information is the source to
@@ -3363,7 +2107,7 @@ the programs above, of course.

File: kpathsea.info, Node: Calling sequence, Next: Program-specific files, Prev: Programming overview, Up: Programming
-5.2 Calling sequence
+7.2 Calling sequence
====================
The typical way to use Kpathsea in your program goes something like
@@ -3481,12 +2225,12 @@ library.)
different systems. You will almost certainly want to use Autoconf and
probably Automake for configuring and building your software if you use
Kpathsea; I strongly recommend using Autoconf and Automake regardless.
-They are available from <ftp://ftp.gnu.og/pub/gnu/>.
+They are available from <http://www.gnu.org/software>.

File: kpathsea.info, Node: Program-specific files, Next: Programming with config files, Prev: Calling sequence, Up: Programming
-5.3 Program-specific files
+7.3 Program-specific files
==========================
Many programs will need to find some configuration files. Kpathsea
@@ -3509,7 +2253,7 @@ mode.

File: kpathsea.info, Node: Programming with config files, Prev: Program-specific files, Up: Programming
-5.4 Programming with config files
+7.4 Programming with config files
=================================
You can (and probably should) use the same 'texmf.cnf' configuration
@@ -3537,7 +2281,454 @@ the string VAR.
No initialization calls are needed.

-File: kpathsea.info, Node: Index, Prev: Programming, Up: Top
+File: kpathsea.info, Node: Reporting bugs, Next: Index, Prev: Programming, Up: Top
+
+8 Reporting bugs
+****************
+
+If you have problems or suggestions, please report them to
+<tex-k@tug.org> using the bug checklist below.
+
+ Please report bugs in the documentation; not only factual errors or
+inconsistent behavior, but unclear or incomplete explanations, typos,
+wrong fonts, ...
+
+* Menu:
+
+* Bug checklist:: What to include in a good bug report.
+* Mailing lists:: Joining the bugs or announcements mailing lists.
+* Debugging:: Analyzing runtime problems.
+* Logging:: Recording searches.
+* Common problems:: When things go wrong.
+
+
+File: kpathsea.info, Node: Bug checklist, Next: Mailing lists, Up: Reporting bugs
+
+8.1 Bug checklist
+=================
+
+Before reporting a bug, please check below to be sure it isn't already
+known (*note Common problems::).
+
+ Bug reports should be sent via electronic mail to <tex-k@tug.org>.
+
+ The general principle is that a good bug report includes all the
+information necessary for reproduction. Therefore, to enable
+investigation, your report should include the following:
+
+ * The version number(s) of the program(s) involved, and of Kpathsea
+ itself. You can get the former by giving a sole option '--version'
+ to the program, and the latter by running 'kpsewhich --version'.
+ The 'NEWS' and 'ChangeLog' files also contain the version number.
+
+ * The hardware, operating system (including version), compiler, and
+ 'make' program you are using (the output of 'uname -a' is a start
+ on the first two, though incomplete).
+
+ * Any options you gave to 'configure'. This is recorded in the
+ 'config.status' files.
+
+ If you are reporting a bug in 'configure' itself, it's probably
+ system-dependent, and it will be unlikely the maintainers can do
+ anything useful if you merely report that thus-and-such is broken.
+ Therefore, you need to do some additional work: for some bugs, you
+ can look in the file 'config.log' where the test that failed should
+ appear, along with the compiler invocation and source program in
+ question. You can then compile it yourself by hand, and discover
+ why the test failed. Other 'configure' bugs do not involve the
+ compiler; in that case, the only recourse is to inspect the
+ 'configure' shell script itself, or the Autoconf macros that
+ generated 'configure'.
+
+ * The log of all debugging output, if the bug is in path searching.
+ You can get this by setting the environment variable
+ 'KPATHSEA_DEBUG' to '-1' before running the program. Please look
+ at the log yourself to make sure the behavior is really a bug
+ before reporting it; perhaps "old" environment variable settings
+ are causing files not to be found, for example.
+
+ * The contents of any input files necessary to reproduce the bug.
+ For bugs in DVI-reading programs, for example, this generally means
+ a DVI file (and any EPS or other files it uses)--TeX source files
+ are helpful, but the DVI file is required, because that's the
+ actual program input.
+
+ * If you are sending a patch (do so if you can!), please do so in the
+ form of a context diff ('diff -c') against the original
+ distribution source. Any other form of diff is either not as
+ complete or harder for me to understand. Please also include a
+ 'ChangeLog' entry.
+
+ * If the bug involved is an actual crash (i.e., core dump), it is
+ easy and useful to include a stack trace from a debugger (I
+ recommend the GNU debugger GDB (<http://www.gnu.org/software/gdb>).
+ If the cause is apparent (a 'NULL' value being dereferenced, for
+ example), please send the details along. If the program involved
+ is TeX or Metafont, and the crash is happening at apparently-sound
+ code, however, the bug may well be in the compiler, rather than in
+ the program or the library (*note TeX or Metafont failing: TeX or
+ Metafont failing.).
+
+ * Any additional information that will be helpful in reproducing,
+ diagnosing, or fixing the bug.
+
+
+File: kpathsea.info, Node: Mailing lists, Next: Debugging, Prev: Bug checklist, Up: Reporting bugs
+
+8.2 Mailing lists
+=================
+
+Web2c and Kpathsea in general are discussed on the mailing list
+<tex-k@tug.org>. You can subscribe and peruse the archives on the web
+<http://lists.tug.org/tex-k>.
+
+ You do not need to join to submit a report, nor will it affect
+whether you get a response. Be aware that large data files are
+sometimes included in bug reports. If this is a problem for you, do not
+join the list.
+
+ If you are looking for general TeX help, such as how to install a
+full TeX system or how to use LaTeX, please see
+<http://tug.org/begin.html>.
+
+
+File: kpathsea.info, Node: Debugging, Next: Logging, Prev: Mailing lists, Up: Reporting bugs
+
+8.3 Debugging
+=============
+
+Kpathsea provides a number of runtime debugging options, detailed below
+by their names and corresponding numeric values. When the files you
+expect aren't being found, the thing to do is enable these options and
+examine the output.
+
+ You can set these with some runtime argument (e.g., '-d') to the
+program; in that case, you should use the numeric values described in
+the program's documentation (which, for Dvipsk and Xdvik, are different
+than those below). It's best to give the '-d' (or whatever) option
+first, for maximal output. Dvipsk and Xdvik have additional
+program-specific debugging options as well.
+
+ You can also set the environment variable 'KPATHSEA_DEBUG'; in this
+case, you should use the numbers below. If you run the program under a
+debugger and set the instance variable 'kpse->debug', also use the
+numbers below.
+
+ In any case, by far the simplest value to use is '-1', which will
+turn on all debugging output. This is usually better than guessing
+which particular values will yield the output you need.
+
+ Debugging output always goes to standard error, so you can redirect
+it easily. For example, in Bourne-compatible shells:
+ dvips -d -1 ... 2>/tmp/debug
+
+ It is sometimes helpful to run the standalone Kpsewhich utility
+(*note Invoking kpsewhich::), instead of the original program.
+
+ In any case, you cannot use the names below; you must always use
+somebody's numbers. (Sorry.) To set more than one option, just sum the
+corresponding numbers.
+
+'KPSE_DEBUG_STAT (1)'
+ Report 'stat'(2) calls. This is useful for verifying that your
+ directory structure is not forcing Kpathsea to do many additional
+ file tests (*note Slow path searching::, and *note Subdirectory
+ expansion::). If you are using an up-to-date 'ls-R' database
+ (*note Filename database::), this should produce no output unless a
+ nonexistent file that must exist is searched for.
+
+'KPSE_DEBUG_HASH (2)'
+ Report lookups in all hash tables: 'ls-R' and 'aliases' (*note
+ Filename database::); font aliases (*note Fontmap::); and config
+ file values (*note Config files::). Useful when expected values
+ are not being found, e.g.., file searches are looking at the disk
+ instead of using 'ls-R'.
+
+'KPSE_DEBUG_FOPEN (4)'
+ Report file openings and closings. Especially useful when your
+ system's file table is full, for seeing which files have been
+ opened but never closed. In case you want to set breakpoints in a
+ debugger: this works by redefining 'fopen' ('fclose') to be
+ 'kpse_fopen_trace' ('kpse_fclose_trace').
+
+'KPSE_DEBUG_PATHS (8)'
+ Report general path information for each file type Kpathsea is
+ asked to search. This is useful when you are trying to track down
+ how a particular path got defined--from 'texmf.cnf', 'config.ps',
+ an environment variable, the compile-time default, etc. This is
+ the contents of the 'kpse_format_info_type' structure defined in
+ 'tex-file.h'.
+
+'KPSE_DEBUG_EXPAND (16)'
+ Report the directory list corresponding to each path element
+ Kpathsea searches. This is only relevant when Kpathsea searches
+ the disk, since 'ls-R' searches don't look through directory lists
+ in this way.
+
+'KPSE_DEBUG_SEARCH (32)'
+ Report on each file search: the name of the file searched for, the
+ path searched in, whether or not the file must exist (when drivers
+ search for 'cmr10.vf', it need not exist), and whether or not we
+ are collecting all occurrences of the file in the path (as with,
+ e.g., 'texmf.cnf' and 'texfonts.map'), or just the first (as with
+ most lookups). This can help you correlate what Kpathsea is doing
+ with what is in your input file.
+
+'KPSE_DEBUG_VARS (64)'
+ Report the value of each variable Kpathsea looks up. This is
+ useful for verifying that variables do indeed obtain their correct
+ values.
+
+'GSFTOPK_DEBUG (128)'
+ Activates debugging printout specific to 'gsftopk' program.
+
+'MAKETEX_DEBUG (512)'
+ If you use the optional 'mktex' programs instead of the traditional
+ shell scripts, this will report the name of the site file
+ ('mktex.cnf' by default) which is read, directories created by
+ 'mktexdir', the full path of the 'ls-R' database built by
+ 'mktexlsr', font map searches, 'MT_FEATURES' in effect, parameters
+ from 'mktexnam', filenames added by 'mktexupd', and some subsidiary
+ commands run by the programs.
+
+'MAKETEX_FINE_DEBUG (1024)'
+ When the optional 'mktex' programs are used, this will print
+ additional debugging info from functions internal to these
+ programs.
+
+ Debugging output from Kpathsea is always written to standard error,
+and begins with the string 'kdebug:'. (Except for hash table buckets,
+which just start with the number, but you can only get that output
+running under a debugger. See comments at the 'hash_summary_only'
+variable in 'kpathsea/db.c'.)
+
+
+File: kpathsea.info, Node: Logging, Next: Common problems, Prev: Debugging, Up: Reporting bugs
+
+8.4 Logging
+===========
+
+Kpathsea can record the time and filename found for each successful
+search. This may be useful in finding good candidates for deletion when
+your filesystem is full, or in discovering usage patterns at your site.
+
+ To do this, define the environment or config file variable
+'TEXMFLOG'. The value is the name of the file to append the information
+to. The file is created if it doesn't exist, and appended to if it
+does.
+
+ Each successful search turns into one line in the log file: two words
+separated by a space. The first word is the time of the search, as the
+integer number of seconds since "the epoch", i.e., UTC midnight 1
+January 1970 (more precisely, the result of the 'time' system call).
+The second word is the filename.
+
+ For example, after 'setenv TEXMFLOG /tmp/log', running Dvips on
+'story.dvi' appends the following lines:
+
+ 774455887 /usr/local/share/texmf/dvips/config.ps
+ 774455887 /usr/local/share/texmf/dvips/psfonts.map
+ 774455888 /usr/local/share/texmf/dvips/texc.pro
+ 774455888 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmbx10.600pk
+ 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmsl10.600pk
+ 774455889 /usr/local/share/texmf/fonts/pk/ljfour/public/cm/cmr10.600pk
+ 774455889 /usr/local/share/texmf/dvips/texc.pro
+
+Only filenames that are absolute are recorded, to preserve some
+semblance of privacy.
+
+ In addition to this Kpathsea-specific logging, 'pdftex' provides an
+option '-recorder' to write the names of all files accessed during a run
+to the file 'BASEFILE.fls'.
+
+ Finally, most systems provide a general tool to output each system
+call, thus including opening and closing files. It might be named
+'strace', 'truss', 'struss', or something else.
+
+
+File: kpathsea.info, Node: Common problems, Prev: Logging, Up: Reporting bugs
+
+8.5 Common problems
+===================
+
+Here are some common problems with configuration, compilation, linking,
+execution, ...
+
+* Menu:
+
+* Unable to find files:: If your program can't find fonts (or whatever).
+* Slow path searching:: If it takes forever to find anything.
+* Unable to generate fonts:: If mktexpk fails.
+* TeX or Metafont failing:: Likely compiler bugs.
+
+
+File: kpathsea.info, Node: Unable to find files, Next: Slow path searching, Up: Common problems
+
+8.5.1 Unable to find files
+--------------------------
+
+If a program complains it cannot find fonts (or other input files), any
+of several things might be wrong. In any case, you may find the
+debugging options helpful. *Note Debugging::.
+
+ * Perhaps you simply haven't installed all the necessary files; the
+ basic fonts and input files are distributed separately from the
+ programs. *Note unixtex.ftp::.
+
+ * You have (perhaps unknowingly) told Kpathsea to use search paths
+ that don't reflect where the files actually are. One common cause
+ is having environment variables set from a previous installation,
+ thus overriding what you carefully set in 'texmf.cnf' (*note
+ Supported file formats::). System '/etc/profile' or other files
+ such may be the culprit.
+
+ * Your files reside in a directory that is only pointed to via a
+ symbolic link, in a leaf directory and is not listed in 'ls-R'.
+
+ Unfortunately, Kpathsea's subdirectory searching has an
+ irremediable deficiency: If a directory D being searched for
+ subdirectories contains plain files and symbolic links to other
+ directories, but no true subdirectories, D will be considered a
+ leaf directory, i.e., the symbolic links will not be followed.
+ *Note Subdirectory expansion::.
+
+ You can work around this problem by creating an empty dummy
+ subdirectory in D. Then D will no longer be a leaf, and the
+ symlinks will be followed.
+
+ The directory immediately followed by the '//' in the path
+ specification, however, is always searched for subdirectories, even
+ if it is a leaf. Presumably you would not have asked for the
+ directory to be searched for subdirectories if you didn't want it
+ to be.
+
+ * If the fonts (or whatever) don't already exist, 'mktexpk' (or
+ 'mktexmf' or 'mktextfm') will try to create them. If these rather
+ complicated shell scripts fail, you'll eventually get an error
+ message saying something like 'Can't find font FONTNAME'. The best
+ solution is to fix (or at least report) the bug in 'mktexpk'; the
+ workaround is to generate the necessary fonts by hand with
+ Metafont, or to grab them from a CTAN site (*note unixtex.ftp::).
+
+ * There is a bug in the library. *Note Reporting bugs::.
+
+
+File: kpathsea.info, Node: Slow path searching, Next: Unable to generate fonts, Prev: Unable to find files, Up: Common problems
+
+8.5.2 Slow path searching
+-------------------------
+
+If your program takes an excessively long time to find fonts or other
+input files, but does eventually succeed, here are some possible
+culprits:
+
+ * Most likely, you just have a lot of directories to search, and that
+ takes a noticeable time. The solution is to create and maintain a
+ separate 'ls-R' file that lists all the files in your main TeX
+ hierarchy. *Note Filename database::. Kpathsea always uses 'ls-R'
+ if it's present; there's no need to recompile or reconfigure any of
+ the programs.
+
+ * Your recursively-searched directories (e.g.,
+ '/usr/local/share/texmf/fonts//'), contain a mixture of files and
+ directories. This prevents Kpathsea from using a useful
+ optimization (*note Subdirectory expansion::).
+
+ It is best to have only directories (and perhaps a 'README') in the
+ upper levels of the directory structure, and it's very important to
+ have _only_ files, and no subdirectories, in the leaf directories
+ where the dozens of TFM, PK, or whatever files reside.
+
+ In any case, you may find the debugging options helpful in
+determining precisely when the disk or network is being pounded. *Note
+Debugging::.
+
+
+File: kpathsea.info, Node: Unable to generate fonts, Next: TeX or Metafont failing, Prev: Slow path searching, Up: Common problems
+
+8.5.3 Unable to generate fonts
+------------------------------
+
+Metafont outputs fonts in bitmap format, tuned for a particular device
+at a particular resolution, in order to allow for the highest-possible
+quality of output. Some DVI-to-whatever programs, such as Dvips, try to
+generate these on the fly when they are needed, but this generation may
+fail in several cases.
+
+ If 'mktexpk' runs, but fails with this error:
+ mktexpk: Can't guess mode for NNN dpi devices.
+ mktexpk: Use a config file to specify the mode, or update me.
+ you need to ensure the resolution and mode match; just specifying the
+resolution, as in '-D 360', is not enough.
+
+ You can specify the mode name with the '-mode' option on the Dvips
+command line, or in a Dvips configuration file (*note (dvips)Config
+files::), such as 'config.ps' in your document directory, '~/.dvipsrc'
+in your home directory, or in a system directory (again named
+'config.ps'). (Other drivers use other files, naturally.)
+
+ For example, if you need 360dpi fonts, you could include this in a
+configuration file:
+ D 360
+ M lqmed
+
+ If Metafont runs, but generates fonts at the wrong resolution or for
+the wrong device, most likely 'mktexpk''s built-in guess for the mode is
+wrong, and you should override it as above.
+
+ See <http://ctan.org/pkg/modes> for a list of resolutions and mode
+names for most devices (additional submissions are welcome).
+
+ If Metafont runs but generates fonts at a resolution of 2602dpi (and
+prints out the name of each character as well as just a character
+number, and maybe tries to display the characters), then your Metafont
+base file probably hasn't been made properly. (It's using the default
+'proof' mode, instead of an actual device mode.) To make a proper
+'plain.base', assuming the local mode definitions are contained in a
+file 'modes.mf', run the following command (assuming Unix):
+
+ inimf "plain; input modes; dump"
+
+Then copy the 'plain.base' file from the current directory to where the
+base files are stored on your system ('/usr/local/share/texmf/web2c' by
+default), and make a link (either hard or soft) from 'plain.base' to
+'mf.base' in that directory. *Note (web2c)inimf invocation::.
+
+ If 'mf' is a command not found at all by 'mktexpk', then you need to
+install Metafont (*note unixtex.ftp::).
+
+
+File: kpathsea.info, Node: TeX or Metafont failing, Prev: Unable to generate fonts, Up: Common problems
+
+8.5.4 TeX or Metafont failing
+-----------------------------
+
+If TeX or Metafont get a segmentation fault or otherwise fail while
+running a normal input file, the problem is usually a compiler bug
+(unlikely as that may sound). Even if the trip and trap tests are
+passed, problems may lurk. Optimization occasionally causes trouble in
+programs other than TeX and Metafont themselves, too.
+
+ Insufficient swap space may also cause core dumps or other erratic
+behavior.
+
+ For a workaround, if you enabled any optimization flags, it's best to
+omit optimization entirely. In any case, the way to find the facts is
+to run the program under the debugger and see where it's failing.
+
+ Also, if you have trouble with a system C compiler, I advise trying
+the GNU C compiler. And vice versa, unfortunately; but in that case I
+also recommend reporting a bug to the GCC mailing list; see *note
+(gcc)Bugs::.
+
+ To report compiler bugs effectively requires perseverance and
+perspicacity: you must find the miscompiled line, and that usually
+involves delving backwards in time from the point of error, checking
+through TeX's (or whatever program's) data structures. Things are not
+helped by all-too-common bugs in the debugger itself. Good luck.
+
+
+File: kpathsea.info, Node: Index, Prev: Reporting bugs, Up: Top
Index
*****
@@ -3551,13 +2742,8 @@ Index
(line 12)
* --color=tty: ls-R. (line 21)
* --debug=NUM: Auxiliary tasks. (line 9)
-* --disable-static: configure options. (line 31)
* --dpi=NUM: Path searching options.
(line 17)
-* --enable options: configure options. (line 16)
-* --enable-maintainer-mode: configure options. (line 34)
-* --enable-shared: configure options. (line 27)
-* --enable-shared <1>: Shared library. (line 6)
* --engine=NAME: Path searching options.
(line 21)
* --expand-braces=STRING: Auxiliary tasks. (line 16)
@@ -3585,13 +2771,10 @@ Index
* --safe-out-name=NAME: Path searching options.
(line 154)
* --show-path=NAME: Auxiliary tasks. (line 41)
-* --srcdir, for building multiple architectures: configure scenarios.
- (line 18)
* --subdir=STRING: Path searching options.
(line 160)
* --var-value=VARIABLE: Auxiliary tasks. (line 12)
* --version: Standard options. (line 11)
-* --with options: configure options. (line 16)
* --with-mktextex-default: mktex configuration. (line 12)
* --without-mktexfmt-default: mktex configuration. (line 12)
* --without-mktexmf-default: mktex configuration. (line 12)
@@ -3601,15 +2784,9 @@ Index
* --without-mktextfm-default: mktex configuration. (line 12)
* -1 debugging value: Debugging. (line 23)
* -A option to 'ls': ls-R. (line 33)
-* -Bdynamic: ShellWidgetClass. (line 44)
-* -Bstatic: ShellWidgetClass. (line 44)
* -D NUM: Path searching options.
(line 17)
-* -dynamic: ShellWidgetClass. (line 42)
-* -g, compiling without: configure scenarios. (line 32)
* -L option to 'ls': ls-R. (line 38)
-* -O, compiling with: configure scenarios. (line 32)
-* -static: ShellWidgetClass. (line 42)
* . directories, ignored: ls-R. (line 33)
* . files: ls-R. (line 33)
* .2602gf: Unable to generate fonts.
@@ -3706,7 +2883,6 @@ Index
* /, trailing in home directory: Tilde expansion. (line 19)
* //: Subdirectory expansion.
(line 6)
-* /afs/... , installing into: Installing files. (line 32)
* /etc/profile: Unable to find files.
(line 14)
* /etc/profile and aliases: ls-R. (line 21)
@@ -3716,7 +2892,6 @@ Index
* 8.3 filenames, using: mktex configuration. (line 68)
* : may not be :: Searching overview. (line 13)
* :: expansion: Default expansion. (line 6)
-* @VAR@ substitutions: Running configure. (line 6)
* \, line continuation in 'texmf.cnf': Config files. (line 37)
* \openin: Searching overview. (line 31)
* \special, suppressing warnings about: Suppressing warnings.
@@ -3725,12 +2900,8 @@ Index
* ~ expansion: Tilde expansion. (line 6)
* absolute filenames: Searching overview. (line 52)
* access warnings: Searching overview. (line 56)
-* ac_include, Autoconf extension: Running configure. (line 6)
* AFMFONTS: Supported file formats.
(line 20)
-* AFS: Installing files. (line 32)
-* AIX 4.1 'configure' error: Empty Makefiles. (line 6)
-* AIX shells and 'configure': configure shells. (line 14)
* aliases for fonts: Fontmap. (line 6)
* aliases, for filenames: Filename aliases. (line 6)
* all: Suppressing warnings.
@@ -3739,33 +2910,19 @@ Index
(line 12)
* alphabetical order, not: Subdirectory expansion.
(line 6)
-* Amiga support: Custom installation. (line 16)
-* Andrew File System, installing with: Installing files. (line 32)
* announcement mailing list: Mailing lists. (line 6)
-* ANSI C: TeX or Metafont failing.
- (line 30)
* API, re-entrant: Programming overview.
(line 16)
* append-only directories and 'mktexpk': Security. (line 36)
* appendonlydir: mktex configuration. (line 60)
-* architecture-(in)dependent files, installing only: Installing files.
- (line 21)
-* architectures, compiling multiple: configure scenarios. (line 18)
* arguments to 'mktex': mktex script arguments.
(line 6)
* argv[0]: Calling sequence. (line 14)
-* ash, losing with 'configure': configure shells. (line 19)
* autoconf, recommended: Calling sequence. (line 117)
-* automounter, and configuration: configure scenarios. (line 29)
* automounter, and 'ls-R': ls-R. (line 40)
* auxiliary tasks: Auxiliary tasks. (line 6)
-* Babel: Kpathsea application distributions.
- (line 27)
-* Babel <1>: Running make. (line 50)
* Bach, Johann Sebastian: Default expansion. (line 41)
* backslash-newline: Config files. (line 37)
-* bash, recommended for running 'configure': configure shells.
- (line 6)
* basic glyph lookup: Basic glyph lookup. (line 6)
* Berry, Karl: History. (line 12)
* BIBINPUTS: Supported file formats.
@@ -3774,36 +2931,25 @@ Index
(line 111)
* blank lines, in 'texmf.cnf': Config files. (line 35)
* brace expansion: Brace expansion. (line 6)
-* BSD universe: Running make. (line 43)
-* bsh, ok with 'configure': configure shells. (line 14)
+* Breitenlohner, Peter: History. (line 78)
* BSTINPUTS: Supported file formats.
(line 32)
* BSTINPUTS <1>: Supported file formats.
(line 115)
-* bug address: Reporting bugs. (line 8)
+* bug address: Reporting bugs. (line 6)
* bug checklist: Bug checklist. (line 6)
* bug mailing list: Mailing lists. (line 6)
* bugs, reporting: Reporting bugs. (line 6)
* c-*.h: Calling sequence. (line 117)
* c-auto.h: Programming overview.
(line 33)
-* c-auto.in: Running configure. (line 6)
* cache of fonts, local: Security. (line 22)
* calling sequence: Calling sequence. (line 6)
-* CC: configure environment.
- (line 10)
-* cc warnings: Pointer combination warnings.
- (line 6)
-* cc, compiling with: configure environment.
- (line 11)
-* CFLAGS: configure environment.
- (line 14)
-* ChangeLog entry: Bug checklist. (line 55)
+* ChangeLog entry: Bug checklist. (line 52)
* checklist for bug reports: Bug checklist. (line 6)
* checksum: Suppressing warnings.
(line 16)
* circle fonts: Fontmap. (line 19)
-* clean Make target: Cleaning up. (line 15)
* client_path in 'kpse->format_info': Calling sequence. (line 47)
* CMAPFONTS: Supported file formats.
(line 36)
@@ -3812,28 +2958,17 @@ Index
* cnf.c: Config files. (line 86)
* cnf.h: Programming with config files.
(line 23)
-* code sharing: Shared library. (line 9)
-* color printers, configuring: Simple installation. (line 60)
* comments, in fontmap files: Fontmap. (line 27)
* comments, in 'texmf.cnf': Config files. (line 27)
-* comments, making: Introduction. (line 23)
+* comments, making: Introduction. (line 28)
* common features in glyph lookup: Basic glyph lookup. (line 6)
* common problems: Common problems. (line 6)
-* comp.sys.sun.admin FAQ: ShellWidgetClass. (line 6)
-* comp.text.tex: Mailing lists. (line 25)
-* compilation: Installation. (line 6)
* compilation value, source for path: Path sources. (line 20)
* compiler bugs: TeX or Metafont failing.
(line 6)
* compiler bugs, finding: TeX or Metafont failing.
(line 24)
-* compiler options, additional: Running make. (line 26)
-* compiler options, specifying: configure environment.
- (line 15)
-* compiler, changing: Running make. (line 39)
-* compiling on HP-UX: TeX or Metafont failing.
- (line 30)
-* conditions for use: Introduction. (line 27)
+* conditions for use: Introduction. (line 31)
* config files: Config files. (line 6)
* config files, for Kpathsea-using programs: Calling sequence.
(line 47)
@@ -3841,60 +2976,37 @@ Index
(line 6)
* config.h: Programming overview.
(line 33)
-* config.log: Bug checklist. (line 27)
+* config.log: Bug checklist. (line 24)
* config.ps: Specially-recognized files.
(line 16)
* config.ps, search path for: Supported file formats.
(line 47)
-* config.status: Bug checklist. (line 30)
-* configuration: Installation. (line 6)
-* configuration bugs: Bug checklist. (line 30)
-* configuration compiler options: configure environment.
- (line 23)
+* config.status: Bug checklist. (line 27)
+* configuration bugs: Bug checklist. (line 27)
* configuration file, source for path: Path sources. (line 17)
* configuration files as shell scripts.: Config files. (line 79)
* configuration of 'mktex' scripts: mktex configuration. (line 6)
-* configuration of optional features: configure options. (line 16)
-* configure error from 'sed': Empty Makefiles. (line 6)
-* 'configure' options: configure options. (line 6)
* 'configure' options for 'mktex' scripts: mktex configuration.
(line 12)
-* configure, running: Running configure. (line 6)
-* context diff: Bug checklist. (line 55)
+* context diff: Bug checklist. (line 52)
* continuation character: Config files. (line 37)
-* core dumps, reporting: Bug checklist. (line 61)
-* CPPFLAGS: configure environment.
- (line 22)
-* crashes, reporting: Bug checklist. (line 61)
-* custom installation: Custom installation. (line 6)
+* core dumps, reporting: Bug checklist. (line 58)
+* crashes, reporting: Bug checklist. (line 58)
* CWEBINPUTS: Supported file formats.
(line 43)
* database search: Searching overview. (line 17)
* database, for filenames: Filename database. (line 6)
* database, format of: Database format. (line 6)
* debug.h: Debugging. (line 6)
-* debugger: Bug checklist. (line 61)
+* debugger: Bug checklist. (line 58)
* debugging: Debugging. (line 6)
* debugging options, in Kpathsea-using program: Calling sequence.
(line 39)
* debugging output: Debugging. (line 27)
-* debugging with '-g', disabling: configure scenarios. (line 32)
-* DEC shells and 'configure': configure shells. (line 25)
* default expansion: Default expansion. (line 6)
-* default path features: Default path features.
- (line 6)
-* default paths, changing: Default path generation.
- (line 6)
-* default paths, how they're made: Default path generation.
- (line 12)
* default_texsizes: Fallback font. (line 6)
-* DEFS: configure environment.
- (line 31)
-* depot: configure scenarios. (line 29)
* device, wrong: Unable to generate fonts.
(line 29)
-* directories, changing default installation: Default path generation.
- (line 6)
* directories, making append-only: mktex configuration. (line 61)
* directory permissions: Security. (line 51)
* directory structure, for TeX files: TeX directory structure.
@@ -3902,27 +3014,14 @@ Index
* disabling 'mktex' scripts: mktex configuration. (line 6)
* disk search: Searching overview. (line 22)
* disk searching, avoiding: ls-R. (line 51)
-* disk space, needed: Disk space. (line 6)
* disk usage, reducing: Logging. (line 6)
-* distclean Make target: Cleaning up. (line 6)
-* distributions, compiling simultaneously: Kpathsea application distributions.
- (line 6)
-* distributions, not compiling: Kpathsea application distributions.
- (line 6)
-* dlclose: dlopen. (line 6)
-* dlopen: dlopen. (line 6)
-* dlsym: dlopen. (line 6)
-* dlsym.c: dlopen. (line 21)
* doc files: Supported file formats.
(line 171)
* DOS compatible names: mktex configuration. (line 68)
-* DOS support: Custom installation. (line 16)
* dosnames: mktex configuration. (line 67)
* dot files: ls-R. (line 33)
* doubled colons: Default expansion. (line 6)
* dpiNNN directories: mktex configuration. (line 68)
-* DVI drivers: Kpathsea application distributions.
- (line 12)
* DVILJMAKEPK: mktex script names. (line 32)
* DVILJSIZES: Fallback font. (line 6)
* dvipdfmx.cfg: Specially-recognized files.
@@ -3934,8 +3033,6 @@ Index
* DVIPSMAKEPK: mktex script names. (line 32)
* DVIPSSIZES: Fallback font. (line 6)
* dynamic creation of files: mktex scripts. (line 6)
-* dynamic linking problems with OpenWin libraries: ShellWidgetClass.
- (line 6)
* EC fonts, and dynamic source creation: mktex scripts. (line 6)
* elt-dirs.c: Subdirectory expansion.
(line 41)
@@ -3968,17 +3065,12 @@ Index
* extensions, filename: File lookup. (line 24)
* externally-built filename database: Filename database. (line 6)
* extra colons: Default expansion. (line 6)
-* extraclean Make target: Cleaning up. (line 23)
* failed 'mktex...' script invocation: mktex script names. (line 35)
* fallback font: Fallback font. (line 6)
* fallback resolutions: Fallback font. (line 6)
-* fallback resolutions, overriding: Running make. (line 10)
-* FAQ, comp.sys.sun.admin: ShellWidgetClass. (line 6)
* FAQ, Kpathsea: Common problems. (line 6)
* Farwell, Matthew: Subdirectory expansion.
(line 22)
-* features, of default paths: Default path features.
- (line 6)
* file formats, supported: Supported file formats.
(line 6)
* file lookup: File lookup. (line 6)
@@ -3987,8 +3079,6 @@ Index
(line 39)
* filename aliases: Filename aliases. (line 6)
* filename database: Filename database. (line 6)
-* filename database generation: Filename database generation.
- (line 6)
* filenames, absolute or explicitly relative: Searching overview.
(line 52)
* files, unable to find: Unable to find files.
@@ -4013,25 +3103,16 @@ Index
* fontmaps <1>: mktex configuration. (line 87)
* fontname: mktex configuration. (line 87)
* fontnames, arbitrary length: Fontmap. (line 15)
-* fonts, being created: Simple installation. (line 78)
* FOOINPUTS: Supported file formats.
(line 222)
* FOOINPUTS <1>: Supported file formats.
(line 225)
* fopen, redefined: Debugging. (line 54)
* format of external database: Database format. (line 6)
-* FreeBSD 'configure' error: Empty Makefiles. (line 6)
-* FreeBSD shells and 'configure': configure shells. (line 19)
* ftp.cs.stanford.edu: unixtex.ftp. (line 20)
* ftp.tug.org: unixtex.ftp. (line 6)
* fundamental purpose of Kpathsea: Introduction. (line 6)
-* gcc, compiling with: configure environment.
- (line 11)
-* gdb, recommended: Bug checklist. (line 61)
-* generation of filename database: Filename database generation.
- (line 6)
-* get_applicationShellWidgetClass: ShellWidgetClass. (line 6)
-* get_wmShellWidgetClass: ShellWidgetClass. (line 6)
+* gdb, recommended: Bug checklist. (line 58)
* gf: Supported file formats.
(line 65)
* GFFONTS: Supported file formats.
@@ -4047,61 +3128,36 @@ Index
(line 25)
* GNU C compiler bugs: TeX or Metafont failing.
(line 19)
-* GNU General Public License: Introduction. (line 27)
+* GNU General Public License: Introduction. (line 31)
* group-writable directories: Security. (line 40)
* GSFTOPK_DEBUG (128): Debugging. (line 88)
* hash table buckets, printing: Debugging. (line 105)
* hash table routines: Calling sequence. (line 110)
* hash_summary_only variable for debugging: Debugging. (line 105)
-* help, mailing list for general TeX: Mailing lists. (line 25)
* history of Kpathsea: History. (line 6)
+* Hoekwater, Taco: History. (line 78)
* home directories in paths: Tilde expansion. (line 6)
* HOME, as ~ expansion: Tilde expansion. (line 6)
-* HP-UX, compiling on: TeX or Metafont failing.
- (line 30)
* identifiers, characters valid in: Config files. (line 47)
-* illegal pointer combination warnings: Pointer combination warnings.
- (line 6)
* include fontmap directive: Fontmap. (line 30)
* INDEXSTYLE: Supported file formats.
(line 74)
-* info-tex@shsu.edu: Mailing lists. (line 25)
* input lines, reading: Calling sequence. (line 110)
-* install-data Make target: Installing files. (line 28)
-* install-exec Make target: Installing files. (line 23)
-* installation: Installation. (line 6)
-* installation testing: Installation testing.
- (line 6)
-* installation, architecture-(in)dependent files only: Installing files.
- (line 21)
-* installation, changing default directories: Default path generation.
- (line 6)
-* installation, customized: Custom installation. (line 6)
-* installation, getting executables instead of: Simple installation.
- (line 6)
-* installation, simple: Simple installation. (line 6)
-* installing files: Installing files. (line 6)
* interactive query: Path searching options.
(line 119)
-* interface, not frozen: Introduction. (line 23)
+* interface, not frozen: Introduction. (line 28)
* introduction: Introduction. (line 6)
* 'kdebug:': Debugging. (line 105)
* kdefault.c: Default expansion. (line 48)
* Knuth, Donald E.: History. (line 6)
* Knuth, Donald E., archive of programs by: unixtex.ftp. (line 20)
-* Korn shell, losing with 'configure': configure shells. (line 14)
-* kpathsae_var_value: Programming with config files.
- (line 10)
* Kpathsea config file, source for path: Path sources. (line 17)
-* Kpathsea version number: Kpathsea application distributions.
- (line 6)
* kpathsea.h: Programming overview.
(line 24)
-* kpathsea/README.CONFIGURE: Running configure. (line 15)
* kpathsea_cnf_get: Programming with config files.
(line 23)
-* KPATHSEA_DEBUG: Debugging. (line 18)
-* KPATHSEA_DEBUG <1>: Calling sequence. (line 28)
+* KPATHSEA_DEBUG: Calling sequence. (line 28)
+* KPATHSEA_DEBUG <1>: Debugging. (line 18)
* kpathsea_find_file: File lookup. (line 38)
* kpathsea_find_file <1>: Calling sequence. (line 62)
* kpathsea_find_glyph: Glyph lookup. (line 26)
@@ -4113,6 +3169,8 @@ Index
* kpathsea_open_file: Calling sequence. (line 74)
* kpathsea_out_name_ok: Calling sequence. (line 82)
* kpathsea_set_program_name: Calling sequence. (line 14)
+* kpathsea_var_value: Programming with config files.
+ (line 10)
* KPATHSEA_WARNING: Config files. (line 18)
* kpse->debug: Debugging. (line 6)
* kpse->debug <1>: Debugging. (line 18)
@@ -4133,39 +3191,18 @@ Index
* KPSE_DEBUG_VARS (64): Debugging. (line 83)
* KPSE_DOT expansion: KPSE_DOT expansion. (line 6)
* kpse_format_info_type: Debugging. (line 61)
-* kpse_init_prog, and 'MAKETEX_MODE': Default path features.
- (line 25)
-* ksh, losing with 'configure': configure shells. (line 14)
-* LaserJet drive: Kpathsea application distributions.
- (line 13)
* last-resort font: Fallback font. (line 6)
-* LaTeX help mailing list: Mailing lists. (line 25)
* lcircle10: Fontmap. (line 19)
-* LDFLAGS: configure environment.
- (line 38)
* leading colons: Default expansion. (line 6)
* leaf directories wrongly guessed: Unable to find files.
(line 21)
* leaf directory trick: Subdirectory expansion.
(line 22)
-* libdl.a: dlopen. (line 6)
-* libraries, changing: Running make. (line 39)
-* libraries, specifying additional: configure environment.
- (line 43)
-* LIBS: configure environment.
- (line 42)
-* libucb, avoiding: Running make. (line 43)
-* license for using the library: Introduction. (line 27)
+* license for using the library: Introduction. (line 31)
* LIGFONTS: Supported file formats.
(line 78)
* lines, reading arbitrary-length: Calling sequence. (line 110)
* Linux File System Standard: mktex configuration. (line 113)
-* Linux shells and 'configure': configure shells. (line 19)
-* lndir for building symlink trees: configure scenarios. (line 18)
-* loader options: configure environment.
- (line 39)
-* loader options, final: Running make. (line 32)
-* loader options, initial: Running make. (line 29)
* local cache of fonts: Security. (line 22)
* log file: Logging. (line 6)
* logging successful searches: Logging. (line 6)
@@ -4174,24 +3211,15 @@ Index
(line 19)
* ls-R: Supported file formats.
(line 81)
-* ls-R and AFS: Installing files. (line 40)
* ls-R database file: ls-R. (line 6)
* ls-R, simplest build: ls-R. (line 18)
-* Mach10 'configure' error: Empty Makefiles. (line 6)
-* MacKenzie, David: History. (line 45)
+* MacKenzie, David: History. (line 44)
* MacKenzie, David <1>: Subdirectory expansion.
(line 22)
* magic characters: Searching overview. (line 13)
* mailing lists: Mailing lists. (line 6)
-* maintainer-clean Make target: Cleaning up. (line 18)
-* Make arguments, additional: Running make. (line 35)
-* make, running: Running make. (line 6)
-* Makefile.in: Running configure. (line 6)
-* Makefiles, empty: Empty Makefiles. (line 6)
* MAKETEX_DEBUG (512): Debugging. (line 91)
* MAKETEX_FINE_DEBUG (1024): Debugging. (line 100)
-* MAKETEX_MODE: Default path features.
- (line 19)
* memory allocation routines: Calling sequence. (line 110)
* metafont driver files: mktex configuration. (line 93)
* Metafont failures: TeX or Metafont failing.
@@ -4223,16 +3251,15 @@ Index
* 'mktex' script configuration: mktex configuration. (line 6)
* 'mktex' script names: mktex script names. (line 6)
* 'mktex' scripts: mktex scripts. (line 6)
-* mktex.cnf: mktex configuration. (line 29)
-* mktex.cnf <1>: Specially-recognized files.
+* mktex.cnf: Specially-recognized files.
(line 28)
+* mktex.cnf <1>: mktex configuration. (line 29)
* mktex.opt: mktex configuration. (line 29)
* mktex.opt <1>: mktex configuration. (line 39)
* mktexdir: mktex configuration. (line 61)
* mktexfmt: mktex script names. (line 10)
* mktexmf: mktex script names. (line 15)
* mktexpk: mktex script names. (line 24)
-* mktexpk , initial runs: Simple installation. (line 78)
* 'mktexpk' can't guess mode: Unable to generate fonts.
(line 12)
* mktextex: mktex script names. (line 27)
@@ -4243,7 +3270,6 @@ Index
(line 115)
* mode directory, omitting: mktex configuration. (line 98)
* Morgan, Tim: History. (line 12)
-* mostlyclean Make target: Cleaning up. (line 10)
* MPINPUTS: Supported file formats.
(line 119)
* MPMEMS: Supported file formats.
@@ -4253,29 +3279,16 @@ Index
* MPSUPPORT: Supported file formats.
(line 91)
* MT_FEATURES: mktex configuration. (line 39)
-* multiple architectures, compiling on: configure scenarios. (line 18)
-* multiple architectures, directories for: configure scenarios.
- (line 23)
-* multiple architectures, installing on: Installing files. (line 21)
* multiple TeX hierarchies: Brace expansion. (line 20)
* must exist: Searching overview. (line 31)
* names for 'mktex' scripts: mktex script names. (line 6)
-* NetBSD 'configure' error: Empty Makefiles. (line 6)
-* NetBSD shells and 'configure': configure shells. (line 19)
-* Neumann, Gustaf: History. (line 57)
-* newsgroup for TeX: Mailing lists. (line 25)
-* NeXT 'sed' error: Empty Makefiles. (line 6)
-* NeXT, lacking X11: Kpathsea application distributions.
- (line 6)
+* Neumann, Gustaf: History. (line 56)
* NFS and 'ls-R': ls-R. (line 40)
* nomfdrivers: mktex configuration. (line 92)
* nomode: mktex configuration. (line 97)
-* non-English typesetting: Kpathsea application distributions.
- (line 27)
-* non-Unix operating systems: Custom installation. (line 16)
* none: Suppressing warnings.
(line 23)
-* null pointers, dereferencing: Bug checklist. (line 61)
+* null pointers, dereferencing: Bug checklist. (line 58)
* numeric debugging values: Debugging. (line 34)
* obtaining TeX: unixtex.ftp. (line 6)
* OCPINPUTS: Supported file formats.
@@ -4286,14 +3299,9 @@ Index
(line 36)
* OPENTYPEFONTS: Supported file formats.
(line 135)
-* OpenWin libraries, dynamic linking problems: ShellWidgetClass.
- (line 6)
* optimization caveat: TeX or Metafont failing.
(line 15)
-* optimization, enabling: configure scenarios. (line 32)
* options for debugging: Debugging. (line 6)
-* options to 'configure': configure options. (line 16)
-* OS/2 support: Custom installation. (line 16)
* OTPINPUTS: Supported file formats.
(line 141)
* overview of path searching: Searching overview. (line 6)
@@ -4303,7 +3311,6 @@ Index
(line 144)
* OVPFONTS: Supported file formats.
(line 147)
-* patches, Sun OpenWin: ShellWidgetClass. (line 28)
* path expansion: Path expansion. (line 6)
* path searching: Path searching. (line 6)
* path searching options: Path searching options.
@@ -4311,22 +3318,9 @@ Index
* path searching, overview: Searching overview. (line 6)
* path searching, standalone: Invoking kpsewhich. (line 6)
* path sources: Path sources. (line 6)
-* paths, changing default: Changing search paths.
- (line 6)
-* paths, changing default <1>: Default path generation.
- (line 6)
-* paths, device name included in: Default path features.
- (line 19)
-* paths.h: Default path generation.
- (line 27)
-* paths.h, creating: Running make. (line 6)
* pathsearch.h: Programming overview.
(line 24)
* pc Pascal compiler: History. (line 12)
-* PCL driver: Kpathsea application distributions.
- (line 13)
-* PDF generation: Kpathsea application distributions.
- (line 16)
* pdfglyphlist.txt: Specially-recognized files.
(line 31)
* pdftex.cfg: Specially-recognized files.
@@ -4342,21 +3336,8 @@ Index
(line 154)
* plain.base: Unable to generate fonts.
(line 46)
-* pointer combination warnings: Pointer combination warnings.
- (line 6)
-* PostScript driver: Kpathsea application distributions.
- (line 16)
-* PostScript fonts, additional: Simple installation. (line 60)
-* precompiled executables, instead of installation: Simple installation.
- (line 6)
-* preprocessor options: configure environment.
- (line 32)
-* preprocessor options, additional: Running make. (line 23)
-* printer configuration files: Simple installation. (line 60)
* privacy, semblance of: Logging. (line 32)
* problems, common: Common problems. (line 6)
-* proginit.c: Default path features.
- (line 25)
* proginit.h: Calling sequence. (line 53)
* program-varying paths: Supported file formats.
(line 12)
@@ -4377,10 +3358,8 @@ Index
* readable: Suppressing warnings.
(line 26)
* reading arbitrary-length lines: Calling sequence. (line 110)
-* README.CONFIGURE: Running configure. (line 15)
* recording successful searches: Logging. (line 6)
* relative filenames: Searching overview. (line 52)
-* relative filenames in 'ls-R': Installing files. (line 40)
* reporting bugs: Reporting bugs. (line 6)
* resident.c: Calling sequence. (line 47)
* resolution, setting: Path searching options.
@@ -4395,48 +3374,37 @@ Index
* Sauter fonts, and dynamic source creation: mktex scripts. (line 6)
* scripts for file creation: mktex scripts. (line 6)
* search path, defined: Searching overview. (line 6)
-* search paths, changing default: Changing search paths.
- (line 6)
* searching for files: File lookup. (line 6)
* searching for glyphs: Glyph lookup. (line 6)
* searching overview: Searching overview. (line 6)
* searching the database: Searching overview. (line 17)
* searching the disk: Searching overview. (line 22)
* security considerations: Security. (line 6)
-* sed error from 'configure': Empty Makefiles. (line 6)
* SELFAUTODIR: Calling sequence. (line 31)
* SELFAUTOLOC: Calling sequence. (line 31)
* SELFAUTOPARENT: Calling sequence. (line 31)
-* sending patches: Bug checklist. (line 55)
+* sending patches: Bug checklist. (line 52)
* setgid scripts: Security. (line 40)
* SFDFONTS: Supported file formats.
(line 163)
-* sh5, ok with 'configure': configure shells. (line 25)
-* shared library, making: Shared library. (line 6)
* shell scripts as configuration files: Config files. (line 79)
* shell variables: Variable expansion. (line 17)
-* shells and 'configure': configure shells. (line 6)
* shell_escape, example for code: Programming with config files.
(line 10)
-* simple installation: Simple installation. (line 6)
* site overrides for 'mktex...': mktex configuration. (line 29)
-* size of distribution archives: Disk space. (line 6)
* skeleton TeX directory: TeX directory structure.
(line 6)
* slow startup time: Slow path searching. (line 6)
-* Solaris BSD compatibility, not: Running make. (line 43)
* source files: Supported file formats.
(line 174)
* sources for search paths: Path sources. (line 6)
* special: Suppressing warnings.
(line 30)
-* stack trace: Bug checklist. (line 61)
+* stack trace: Bug checklist. (line 58)
* standalone path searching: Invoking kpsewhich. (line 6)
* standard error and debugging output: Debugging. (line 27)
* standard options: Standard options. (line 6)
* startup time, excessive: Slow path searching. (line 6)
-* static linking: ShellWidgetClass. (line 38)
-* static linking and 'dlsym': dlopen. (line 6)
* string routines: Calling sequence. (line 110)
* strip: mktex configuration. (line 107)
* stripsupplier: mktex configuration. (line 101)
@@ -4448,25 +3416,20 @@ Index
* subdirectory searching: Subdirectory expansion.
(line 6)
* suffixes, filename: File lookup. (line 24)
-* suggestions, making: Introduction. (line 23)
+* suggestions, making: Introduction. (line 28)
* Sun 2: History. (line 12)
-* Sun OpenWin patches: ShellWidgetClass. (line 28)
* supplier directory, omitting: mktex configuration. (line 102)
* supplier directory, omitting <1>: mktex configuration. (line 108)
* supported file formats: Supported file formats.
(line 6)
* suppressing warnings: Suppressing warnings.
(line 6)
-* symbolic link trees, for multiple architectures: configure scenarios.
- (line 18)
* symbolic links not found: Unable to find files.
(line 21)
* symbolic links, and 'ls-R': ls-R. (line 38)
* symlinks, resolving: Calling sequence. (line 31)
* system C compiler bugs: TeX or Metafont failing.
(line 19)
-* system dependencies: Running configure. (line 6)
-* system V universe: Running make. (line 43)
* T1FONTS: Supported file formats.
(line 197)
* T1INPUTS: Supported file formats.
@@ -4475,16 +3438,9 @@ Index
(line 202)
* tcfmgr.map: Specially-recognized files.
(line 46)
-* TDS: Default path features.
- (line 41)
-* TDS <1>: TeX directory structure.
- (line 6)
-* testing, post-installation: Installation testing.
+* TDS: TeX directory structure.
(line 6)
-* tests, simple: Simple installation. (line 78)
-* TeX directory structure: Default path features.
- (line 41)
-* TeX directory structure <1>: TeX directory structure.
+* TeX directory structure: TeX directory structure.
(line 6)
* TeX environment variables: Supported file formats.
(line 6)
@@ -4492,18 +3448,16 @@ Index
(line 6)
* TeX file lookup: File lookup. (line 6)
* TeX glyph lookup: Glyph lookup. (line 6)
-* TeX help mailing list: Mailing lists. (line 25)
-* TeX hierarchy, one: configure scenarios. (line 13)
* TeX support: TeX support. (line 6)
-* TeX Users Group: Introduction. (line 35)
+* TeX Users Group: Introduction. (line 40)
* tex-file.c: File lookup. (line 38)
* tex-file.h: Programming overview.
(line 24)
* tex-glyph.c: Glyph lookup. (line 26)
* tex-glyph.h: Programming overview.
(line 24)
-* tex-k-request@tug.org: Mailing lists. (line 7)
-* tex-k@tug.org (bug address): Reporting bugs. (line 8)
+* tex-k@tug.org: Mailing lists. (line 6)
+* tex-k@tug.org (bug address): Reporting bugs. (line 6)
* tex.web: unixtex.ftp. (line 20)
* TEXBIB: Supported file formats.
(line 28)
@@ -4538,17 +3492,8 @@ Index
(line 38)
* 'texmf.cnf' missing, warning about: Config files. (line 18)
* texmf.cnf, and variable expansion: Variable expansion. (line 6)
-* texmf.cnf, creating: Running make. (line 6)
* texmf.cnf, definition for: Config files. (line 6)
-* texmf.cnf, generated: Default path generation.
- (line 22)
* texmf.cnf, source for path: Path sources. (line 17)
-* texmf.in: Default path generation.
- (line 22)
-* texmf.in, editing: Changing search paths.
- (line 6)
-* texmf.sed: Default path generation.
- (line 17)
* TEXMFCNF: Config files. (line 6)
* TEXMFCNF <1>: Supported file formats.
(line 39)
@@ -4589,7 +3534,6 @@ Index
* tilde.c: Tilde expansion. (line 25)
* time system call: Logging. (line 15)
* tolerance for glyph lookup: Basic glyph lookup. (line 15)
-* total disk space: Disk space. (line 6)
* trailing '/' in home directory: Tilde expansion. (line 19)
* trailing colons: Default expansion. (line 6)
* TRFONTS: Supported file formats.
@@ -4603,14 +3547,11 @@ Index
* tug.org: unixtex.ftp. (line 6)
* typeface directory, omitting: mktex configuration. (line 105)
* typeface directory, omitting <1>: mktex configuration. (line 108)
-* ucbinclude, avoiding: Running make. (line 43)
-* Ultrix shells and 'configure': configure shells. (line 25)
* unable to find files: Unable to find files.
(line 6)
* unable to generate fonts: Unable to generate fonts.
(line 6)
* uname: Bug checklist. (line 20)
-* universe, BSD vs. system V: Running make. (line 43)
* unixtex.ftp: unixtex.ftp. (line 6)
* unknown special warnings: Suppressing warnings.
(line 31)
@@ -4619,7 +3560,6 @@ Index
* unreadable files: Searching overview. (line 56)
* unusable 'ls-R' warning: ls-R. (line 45)
* usage patterns, finding: Logging. (line 6)
-* Usenet TeX newsgroup: Mailing lists. (line 25)
* USERPROFILE, as ~ expansion: Tilde expansion. (line 6)
* USE_TEXMFVAR: mktex configuration. (line 128)
* USE_VARTEXFONTS: mktex configuration. (line 118)
@@ -4630,132 +3570,90 @@ Index
(line 10)
* VARTEXFONTS: mktex configuration. (line 113)
* VAX 11/750: History. (line 12)
-* version number, of Kpathsea: Kpathsea application distributions.
- (line 6)
* version numbers, determining: Bug checklist. (line 15)
* VF files, not found: Searching overview. (line 31)
* VFFONTS: Supported file formats.
(line 205)
-* VMS support: Custom installation. (line 16)
* Vojta, Paul: History. (line 30)
-* Walsh, Norman: History. (line 57)
+* Walsh, Norman: History. (line 56)
* warning about unusable 'ls-R': ls-R. (line 45)
* warning, about missing 'texmf.cnf': Config files. (line 18)
* warnings, file access: Searching overview. (line 56)
-* warnings, pointer combinations: Pointer combination warnings.
- (line 6)
* warnings, suppressing: Suppressing warnings.
(line 6)
-* wcstombs: dlopen. (line 6)
* WEB2C: Supported file formats.
(line 213)
-* Weber, Olaf: History. (line 74)
+* Weber, Olaf: History. (line 73)
* WEBINPUTS: Supported file formats.
(line 209)
* whitespace, in fontmap files: Fontmap. (line 27)
* whitespace, not ignored on continuation lines: Config files.
(line 37)
* www.tug.org: unixtex.ftp. (line 6)
-* X11 previewer: Kpathsea application distributions.
- (line 25)
-* X11, lacking on NeXT: Kpathsea application distributions.
- (line 6)
-* XCFLAGS: Running make. (line 25)
-* XCPPFLAGS: Running make. (line 21)
-* XDEFS: Running make. (line 22)
* XDvi: Specially-recognized files.
(line 41)
* XDVIFONTS: Supported file formats.
(line 240)
* XDVIMAKEPK: mktex script names. (line 32)
* XDVISIZES: Fallback font. (line 6)
-* XLDFLAGS: Running make. (line 28)
-* XLOADLIBES: Running make. (line 31)
-* XMAKEARGS: Running make. (line 34)
-* Xmu library problems: ShellWidgetClass. (line 13)
-* XtStrings: XtStrings. (line 6)
-* zuhn, david: History. (line 51)
+* zuhn, david: History. (line 50)

Tag Table:
Node: Top1480
-Node: Introduction2124
-Node: History3942
-Node: Installation8034
-Node: Simple installation8828
-Node: Custom installation12376
-Node: Disk space13697
-Node: Kpathsea application distributions14505
-Node: Changing search paths15619
-Node: Default path features16812
-Node: Default path generation18895
-Node: Running configure20338
-Node: configure shells21421
-Node: configure options22470
-Node: configure environment23976
-Node: configure scenarios25778
-Node: Shared library27364
-Node: Running make28378
-Node: Installing files30426
-Node: Cleaning up32370
-Node: Filename database generation33418
-Node: mktex scripts33982
-Node: mktex configuration35246
-Node: mktex script names41053
-Node: mktex script arguments42443
-Node: Installation testing43326
-Node: Security43681
-Node: TeX directory structure46206
-Node: unixtex.ftp50627
-Node: Reporting bugs51962
-Node: Bug checklist52700
-Node: Mailing lists56397
-Node: Debugging57606
-Node: Logging62692
-Node: Common problems64563
-Node: Unable to find files65394
-Node: Slow path searching67808
-Node: Unable to generate fonts69187
-Node: TeX or Metafont failing71667
-Node: Empty Makefiles73543
-Node: XtStrings74782
-Node: dlopen75618
-Node: ShellWidgetClass76436
-Node: Pointer combination warnings78048
-Node: Path searching78437
-Node: Searching overview79084
-Node: Path sources82479
-Node: Config files83537
-Node: Path expansion87464
-Node: Default expansion88413
-Node: Variable expansion90483
-Node: Tilde expansion91884
-Node: Brace expansion92864
-Node: KPSE_DOT expansion93789
-Node: Subdirectory expansion94302
-Node: Filename database96656
-Node: ls-R97710
-Node: Filename aliases100605
-Node: Database format101783
-Node: Invoking kpsewhich102796
-Node: Path searching options103740
-Node: Specially-recognized files111946
-Node: Auxiliary tasks113301
-Node: Standard options115126
-Node: TeX support115482
-Node: Supported file formats116773
-Node: File lookup123972
-Node: Glyph lookup125721
-Node: Basic glyph lookup126845
-Node: Fontmap127725
-Node: Fallback font130314
-Node: Suppressing warnings131226
-Node: Programming132331
-Node: Programming overview132844
-Node: Calling sequence135541
-Node: Program-specific files142071
-Node: Programming with config files143094
-Node: Index144406
+Node: Introduction2258
+Node: History4202
+Node: unixtex.ftp8799
+Node: Security10294
+Node: TeX directory structure12798
+Node: Path searching16846
+Node: Searching overview17504
+Node: Path sources20899
+Node: Config files21957
+Node: Path expansion25884
+Node: Default expansion26833
+Node: Variable expansion28903
+Node: Tilde expansion30304
+Node: Brace expansion31284
+Node: KPSE_DOT expansion32209
+Node: Subdirectory expansion32722
+Node: Filename database35076
+Node: ls-R36130
+Node: Filename aliases39025
+Node: Database format40203
+Node: Invoking kpsewhich41216
+Node: Path searching options42160
+Node: Specially-recognized files50371
+Node: Auxiliary tasks51726
+Node: Standard options53551
+Node: TeX support53907
+Node: Supported file formats55259
+Node: File lookup62458
+Node: Glyph lookup64207
+Node: Basic glyph lookup65331
+Node: Fontmap66211
+Node: Fallback font68632
+Node: Suppressing warnings69544
+Node: mktex scripts70671
+Node: mktex configuration71886
+Node: mktex script names77689
+Node: mktex script arguments79075
+Node: Programming79954
+Node: Programming overview80476
+Node: Calling sequence83173
+Node: Program-specific files89705
+Node: Programming with config files90728
+Node: Reporting bugs92040
+Node: Bug checklist92718
+Node: Mailing lists96190
+Node: Debugging96865
+Node: Logging101942
+Node: Common problems103809
+Node: Unable to find files104286
+Node: Slow path searching106696
+Node: Unable to generate fonts108071
+Node: TeX or Metafont failing110542
+Node: Index111895

End Tag Table
diff --git a/Master/texmf-dist/doc/info/tlbuild.info b/Master/texmf-dist/doc/info/tlbuild.info
new file mode 100644
index 00000000000..306b033ad62
--- /dev/null
+++ b/Master/texmf-dist/doc/info/tlbuild.info
@@ -0,0 +1,5209 @@
+This is tlbuild.info, produced by makeinfo version 5.2 from
+tlbuild.texi.
+
+This file documents the TeX Live build system and more.
+
+ Copyright (C) 2013, 2014 Karl Berry & Peter Breitenlohner.
+
+ Permission is granted to make and distribute verbatim copies of this
+manual provided the copyright notice and this permission notice are
+preserved on all copies.
+
+ Permission is granted to copy and distribute modified versions of
+this manual under the conditions for verbatim copying, provided that the
+entire resulting derived work is distributed under the terms of a
+permission notice identical to this one.
+
+ Permission is granted to copy and distribute translations of this
+manual into another language, under the above conditions for modified
+versions, except that this permission notice may be stated in a
+translation approved by the TeX Users Group.
+INFO-DIR-SECTION TeX
+START-INFO-DIR-ENTRY
+* TL-build: (tlbuild). TeX Live configuration and development.
+END-INFO-DIR-ENTRY
+
+
+File: tlbuild.info, Node: Top, Next: Introduction, Up: (dir)
+
+Building TeX Live (2014)
+************************
+
+For an overview of this manual, *note Introduction::.
+
+* Menu:
+
+* Introduction:: About this manual.
+* Overview of build system:: The TeX Live build system.
+* Prerequisites:: Requirements for building TeX Live.
+* Building:: The overall build process.
+* Installing:: How and where installation happens (or not).
+* Layout and infrastructure:: Autoconf macros, etc., in detail.
+* Configure options:: List of all configure options.
+* Cross compilation:: Building on host X for target Y.
+* Coding conventions:: Conventions to follow.
+* install-tl:: The TeX Live installer.
+* tlmgr:: The native TeX Live package manager.
+* Index:: General index.
+
+
+File: tlbuild.info, Node: Introduction, Next: Overview of build system, Prev: Top, Up: Top
+
+1 Introduction
+**************
+
+This manual (dated May 2014) corresponds to the TeX Live 2014 release.
+
+ This manual is aimed at system installers and programmers, and
+focuses on how to configure, build, and develop the TeX Live (TL)
+sources. The sources can be acquired in a number of ways; see
+<http://tug.org/texlive/svn>.
+
+ This manual does not duplicate the (primarily user-level) information
+found in other TL documentation resources, such as:
+
+ * The TeX Live web pages: <http://tug.org/texlive>.
+
+ * The web page with an overview of how to build the binaries which
+ are distributed with TeX Live: <http://tug.org/texlive/build.html>.
+
+ * The TeX Live user manual: <http://tug.org/texlive/doc.html>, or run
+ 'texdoc texlive'.
+
+ * Other TeX-related Texinfo manuals (*note (web2c)::, *note
+ (kpathsea)::, etc.): <http://tug.org/texinfohtml/>, or check the
+ 'TeX' category in the GNU Info system.
+
+ * Package documentation:
+ <http://tug.org/texlive/Contents/live/doc.html>, or the 'doc.html'
+ file at the top level of the installed TL.
+
+ As an exception, the full documentation for 'install-tl' and 'tlmgr'
+is included here, just because it is convenient to do so. The same text
+is available online (linked from <http://tug.org/texlive/doc.html>, or
+by invoking the program with '--help' (or look at the end of the source
+file).
+
+
+File: tlbuild.info, Node: Overview of build system, Next: Prerequisites, Prev: Introduction, Up: Top
+
+2 Overview of build system
+**************************
+
+The TeX Live build system was redesigned in 2009, consistently using
+Autoconf, Automake, and Libtool. Thus
+ 'configure && make && make check && make install'
+or the basically-equivalent top-level 'Build' script suffice to build
+and install the TL programs. The 'make check' clause performs various
+tests of the generated programs--not strictly required but strongly
+recommended. Running 'configure --help' will display a comprehensive
+list of all 'configure' options.
+
+ The main components of the TL build system are:
+
+'libs/LIB'
+ Generic libraries.
+
+'texk/LIB'
+ TeX-specific libraries in subdirectories, notably LIB='kpathsea'.
+ (The other one is 'texk/ptexenc'.)
+
+'texk/PROG'
+ TeX-specific programs (that use Kpathsea).
+
+'utils/PROG'
+ Other programs (that don't use Kpathsea).
+
+ The primary design goal of the build system is modularity. Each
+program and library module (or package) specifies its own requirements
+and properties, such as required libraries, whether an installed
+(system) version of a library can be used, 'configure' options to be
+seen at the top-level, and more. An explicit list of all available
+modules is kept in only one, central, place ('m4/kpse-pkgs.m4').
+
+ A second, related goal is to configure and build each library before
+configuring any other (program or library) module which uses that
+library. This allows checking for properties and features of a library
+built as part of the TL tree in much the same way as for a system
+version of that library.
+
+ All generic libraries and several programs are maintained
+independently. The corresponding modules use (most of) the distributed
+source tree and document any modifications of that source.
+
+ All this is for the sake of simplifying both upgrading of modules
+maintained independently and integrating new modules into the TL build
+system. (Not to say that either task is trivial.)
+
+
+File: tlbuild.info, Node: Prerequisites, Next: Building, Prev: Overview of build system, Up: Top
+
+3 Prerequisites
+***************
+
+Overall, building the TeX Live programs, when using all libraries from
+the TL source tree, requires only C and C++ compilers and GNU 'make'.
+(If 'make' from your 'PATH' is not GNU make, you can set 'MAKE' in the
+environment to whatever is necessary.)
+
+ Indeed, GNU 'make' is required only because of some third-party
+libraries, notably FreeType; all the TL-maintained directories (and
+Automake/Autoconf output in general) should work with any reasonable
+'make'.
+
+ However, a few programs in the tree have additional requirements:
+
+'web2c'
+ requires 'perl' for some tests run by 'make check'.
+
+'xdvik'
+'xpdfopen'
+ require X11 headers and libraries, often in "development" packages
+ that are not installed by default.
+
+'xetex'
+ requires 'fontconfig' (again both headers and library).
+
+'xindy'
+ requires GNU 'clisp' and in addition 'perl', 'latex', and
+ 'pdflatex' to build the rules and/or documentation.
+
+Lacking the required tools, building these programs must avoided, e.g.,
+'configure --without-x --disable-xetex --disable-xindy'
+
+ Modifying source files induces more requirements, as one might
+expect:
+
+ * Modification of any '.y' or '.l' source files requires 'bison' or
+ 'flex' to updatete the corresponding C sources.
+
+ * Modification of the sources for '.info' files requires 'makeinfo'.
+
+ * Modification of any part of the build system (M4 macros,
+ 'configure.ac', 'Makefile.am', or their fragments) requires GNU M4,
+ GNU Autoconf, GNU Automake, and GNU Libtool to update the generated
+ files. *Note Build system tools::.
+
+ If you haven't modified any source files, and infrastructure tools
+such as 'autoconf' or 'makeinfo' are still being run, check your
+timestamps--notably, 'use-commit-times' must be set to 'yes' in your
+Subversion configuration (*note Build system tools::). Barring buggy
+commits, no infrastructure tools are needed to do a normal build.
+
+
+File: tlbuild.info, Node: Building, Next: Installing, Prev: Prerequisites, Up: Top
+
+4 Building
+**********
+
+The top-level 'Build' script is intended to simplify building the
+binaries distributed with TeX Live itself--we call this the "native" TL
+build. It configures and makes everything in a subdirectory of the main
+build tree (default 'Work/'), installs everything in an other
+subdirectory (default 'inst/'), and finally runs 'make check'. The
+exact directory and command names can be specified via environment
+variables and a few leading options. All remaining arguments
+(assignments or options) are passed to the 'configure' script. Please
+take a look at the script itself for more information; it is not
+complicated.
+
+ An alternative, and the one we will mainly discuss here, is to run
+'configure' and 'make' oneself in a suitable empty subdirectory.
+Building in the source directory itself is not supported (sorry).
+
+* Menu:
+
+* Build iteration:: What 'configure' and 'make' do.
+* Build problems:: If the build fails.
+* Build in parallel:: Simultaneous 'make' processes.
+* Build distribution:: Making a distribution tarball.
+* Build one package:: Example of working on just one program.
+
+
+File: tlbuild.info, Node: Build iteration, Next: Build problems, Up: Building
+
+4.1 Build iteration
+===================
+
+Running the top-level 'configure' script configures the top level and
+the subdirectories 'libs', 'utils', and 'texk'. Running 'make' at the
+top-level first iterates over all TeX-specific libraries, and then runs
+'make' in 'libs', 'utils', and 'texk' to iterate over all generic
+libraries, utility programs, and TeX-specific programs. These
+iterations consist of two steps:
+
+ 1. For each library or program module not yet configured, run
+ 'configure', adding the configure option '--disable-build' if the
+ module need not be built, otherwise running 'make all'.
+
+ 2. For each library or program module that must be built, run 'make'
+ for the selected target(s): 'default' or 'all' to (re-)build,
+ 'check' to run tests, 'install', etc.
+
+ Running the top-level 'make' a second time iterates again over all
+the library and program modules, but finds (should find) nothing to be
+done unless some source files have been modified.
+
+
+File: tlbuild.info, Node: Build problems, Next: Build in parallel, Prev: Build iteration, Up: Building
+
+4.2 Build problems
+==================
+
+If configuring or building a module fails, you could either (a) find and
+fix the problem, or (b) remove the subdirectory for that module from the
+build tree, and rerun the top-level 'make' (or 'Build' with '--no-clean'
+as its first argument).
+
+
+File: tlbuild.info, Node: Build in parallel, Next: Build distribution, Prev: Build problems, Up: Building
+
+4.3 Build in parallel
+=====================
+
+The TL build system carefully formulates dependencies as well as 'make'
+rules when a tool (such as 'tangle', 'ctangle', or 'convert') creates
+several output files. This allows for parallel builds ('make -j N' with
+N>1 or even 'make -j') that can considerably speed up the TL build.
+
+ Incidentally, a noticeable speed-up can also be (independently)
+gained by using a configure cache file, i.e., with the option '-C'
+(recommended).
+
+
+File: tlbuild.info, Node: Build distribution, Next: Build one package, Prev: Build in parallel, Up: Building
+
+4.4 Build distribution
+======================
+
+Running 'make dist' at the top-level creates a tarball
+'tex-live-YYYY-MM-DD.tar.xz' from the TL source tree. Running 'make
+distcheck' also verifies that this tarball suffices to build and install
+all of TL.
+
+ This is useful for checking consistency of the source tree and
+Makefiles, but the result is not a complete or even usable TeX system,
+since all the support files are lacking; *note Installing::.
+
+
+File: tlbuild.info, Node: Build one package, Prev: Build distribution, Up: Building
+
+4.5 Build one package
+=====================
+
+To build one package, the basic idea is to use the 'configure' option
+'--disable-all-pkgs' (*note '--disable-all-pkgs'::). Then all program
+and library modules are configured but none are made. However, the
+'Makefile's still contain all build rules and dependencies and can be
+invoked to build an individual program or library and causes to first
+build any required libraries.
+
+ This "build-on-demand" procedure is used, e.g., in the 'luatex'
+repository to build LuaTeX, essentially from a subset of the complete
+TeX Live tree. Similarly, when, e.g., building the original e-TeX has
+been disabled (as it is by default), one can run 'make etex' (or 'make
+etex.exe') in 'texk/web2c/' to build e-TeX (although there is no
+comparably simple way to install e-TeX).
+
+ If you want to work on a single program within the TL sources, this
+is the recommended way to do it. Here is an example from start to
+finish for working on 'dvipdfmx'.
+
+ mkdir mydir && cd mydir # new working directory
+
+ # Get sources (<http://tug.org/texlive/svn>)
+ rsync -a --delete --exclude=.svn --exclude=Work \
+ tug.org::tldevsrc/Build/source/ .
+
+ # Create build directory:
+ mkdir Work && cd Work
+
+ # Do the configure:
+ ../configure --disable-all-pkgs --enable-dvipdfm-x \
+ -C CFLAGS=-g CXXFLAGS=-g >&outc
+
+ # Do the make:
+ make >&outm
+
+ # Test:
+ cd texk/dvipdfmx
+ make check
+
+ Then you modify source files in 'mydir/texk/dvipdfm-x' and rerun
+'make' in 'mydir/Work/texk/dvipdfm-x' to rebuild.
+
+ The second line the 'configure' are invocation shows examples of
+extra things you likely want to specify if you intend to hack the
+sources (and not just build binaries): the '-C' speeds up 'configure',
+and the 'CFLAGS' and 'CXXFLAGS' are to eliminate compiler optimization
+for debugging purposes.
+
+ Of course, one should actually look at the output and check that
+things are working. There are many 'configure' options you can tweak as
+desired; check the output from 'configure --help'.
+
+ Finally, the above retrieves the entire TL source tree (some 300mb).
+It is natural to ask if this is really necessary. Strictly speaking,
+the answer is no, but it is vastly more convenient to do so. If you cut
+down the source tree, you must also give additional 'configure' flags to
+individually disable using system versions of libraries, or the
+intricacies of the dependencies (such as 'teckit' requiring 'zlib') will
+have undesired side effects. For an example, see the 'build-pdftex.sh'
+script in the 'pdftex' development sources (<http://pdftex.org>), which
+are indeed a cut-down TL source tree.
+
+
+File: tlbuild.info, Node: Installing, Next: Layout and infrastructure, Prev: Building, Up: Top
+
+5 Installing
+************
+
+This section discusses the results of 'make install' in the source tree.
+
+ The main consideration is that 'make install' is not enough to make a
+usable TeX installation. Beyond the compiled binaries, (thousands of)
+support files are needed; just as a first example 'plain.tex' is not in
+the source tree.
+
+ These support files are maintained completely independently and are
+not present in the source tree. The best basis for dealing with them is
+the TeX Live (plain text) database in 'Master/tlpkg/texlive.tlpdb',
+and/or the TeX Live installer, 'install-tl'. More information is under
+'Master/tlpkg' and at <http://tug.org/texlive/distro.html>.
+
+* Menu:
+
+* Installation directories:: The prefix, 'bindir', etc., directories.
+* Linked scripts:: Scripts not maintained in the sources.
+* Distro builds:: Configuring and building for OS distributions.
+
+
+File: tlbuild.info, Node: Installation directories, Next: Linked scripts, Up: Installing
+
+5.1 Installation directories
+============================
+
+Running 'make install' (or 'make install-strip') installs executables in
+'BINDIR', libraries in 'LIBDIR', headers in 'INCLUDEDIR', general data
+(including "linked scripts", *note Linked scripts::) in
+'DATAROOTDIR/texmf-dist', man pages in 'MANDIR', and Info files in
+'INFODIR'.
+
+ The values of these directories are determined by 'configure' and can
+be specified explictly as options such as '--prefix=PREFIX' or
+'--bindir=BINDIR'; otherwise, they are given by their usual Autoconf
+defaults:
+
+ PREFIX /usr/local
+ EXEC_PREFIX PREFIX
+ BINDIR EXEC_PREFIX/bin
+ LIBDIR EXEC_PREFIX/lib
+ INCLUDEDIR PREFIX/include
+ DATAROOTDIR PREFIX/share
+ MANDIR DATAROOTDIR/man
+ INFODIR DATAROOTDIR/info
+
+... except possibly modified as follows:
+
+ * If the option '--enable-multiplatform' is given, '/PLATFORM' (i.e.,
+ the canonical platform name) is appended to 'BINDIR' and 'LIBDIR'.
+ This is implied for a native TL build.
+
+ * In a native TL build, 'DATAROOTDIR' is set to 'PREFIX', 'INFODIR'
+ is set to 'PREFIX/texmf-dist/doc/info', and 'MANDIR' to
+ 'PREFIX/texmf-dist/doc/man', corresponding to the directories used
+ in the TL distribution.
+
+The top-level 'configure' script displays all these installation paths.
+
+ For the native TL build, the 'Build' script leaves the binaries in
+'./inst/bin/STD-PLATFORM-NAME'. The new binaries are not directly
+usable from that location; they need to be copied to
+'Master/bin/TL-PLATFORM'. The other files and directories that end up
+in './inst/' are ignored.
+
+
+File: tlbuild.info, Node: Linked scripts, Next: Distro builds, Prev: Installation directories, Up: Installing
+
+5.2 Linked scripts
+==================
+
+Quite a few executables are architecture-independent shell, Perl, or
+other interpreted scripts, rather than compiled binaries. A few are
+maintained as part of the TL source tree, but most are maintained
+elsewhere with copies under 'texk/texlive/linked_scripts'.
+
+ These so-called "linked scripts" are installed under
+'DATAROOTDIR/texmf-dist/scripts'; for Unix-like systems a symbolic link
+is made in 'BINDIR'. For example, a symlink points from 'BINDIR/ps2eps'
+to 'DATAROOTDIR/texmf-dist/scripts/ps2eps/ps2eps.pl'. For Windows, a
+standard wrapper binary (e.g., 'BINDIR/ps2eps.exe') serves the same
+purpose. (The source for the wrapper is in 'texk/texlive/w32_wrapper'.)
+
+ One reason for this is to avoid having many copies of the same
+script; a more important reason is that it guarantees the scripts will
+stay in sync across the different supported operating systems.
+
+ Most important of all, we want the 'BINDIR' resulting from the build
+to be as close as possible to what is in the TL distribution. At
+present, there are a few exceptions--Asymptote, Biber, Xindy--and each
+one creates considerable extra work. We don't want to add more. (See
+<http://tug.org/texlive/build.html> for information about building those
+exceptions, as well as the 'xz' and 'wget' programs that are used in the
+TL infrastructure.)
+
+
+File: tlbuild.info, Node: Distro builds, Prev: Linked scripts, Up: Installing
+
+5.3 Distro builds
+=================
+
+Although they use the same code base, building for the native TL
+distribution as shipped by the TeX user groups is typically quite
+different from a "distro" build needed by, e.g., a full GNU/Linux or BSD
+operating system distribution.
+
+ The native TL distribution uses shared libraries only when absolutely
+necessary ('libc', 'libm', X11 libraries, and 'libfontconfig').
+However, a distro typically wants to use as many shared libraries as
+possible from elsewhere on the system, including TeX-specific libraries
+such as 'libkpathsea' (even though Kpathsea has never officially been
+released as a shared library, but we digress). In addition, the
+installation paths will, in general, be completely different.
+
+ Here are the 'configure' options that distro builds are likely to
+find most relevant:
+
+'--disable-native-texlive-build'
+ This must be specified to avoid interference from the many tweaks
+ we do for the native TL build.
+
+'--with-banner-add=/SOMEDISTRO'
+ This isn't technically required, but is strongly recommended, so
+ your build and your distro can be distinguished from others.
+
+'--enable-shared'
+ Build shared versions of the TeX-specific libraries (uses
+ 'libtool').
+
+'--disable-static'
+ Do not build the static versions of the TeX-specific libraries.
+
+'--with-system-LIB'
+ Use system versions for as many libraries LIB as possible.
+ 'configure --help' will give you the list of possibilities.
+
+'--with-LIB-includes=DIR'
+'--with-LIB-libdir=DIR'
+ If needed, allows you to specify where the headers/code are for the
+ given library LIB.
+
+'--prefix=/usr'
+'--prefix=/opt/TeXLive'
+ Or whatever your convention is. The default is '/usr/local' and
+ you shouldn't install there for a distro.
+
+'--libdir=\${exec_prefix}/lib64'
+ May be needed for 64-bit bi-architecture (GNU/Linux) systems.
+
+ You will need to take care of the support files mentioned above
+(*note Installing::), and many other issues, such as font maps,
+languages, and formats, independently of the build. Norbert Preining
+has written a detailed article on adapting TL for distros:
+<http://tug.org/TUGboat/tb34-3/tb108preining-distro.pdf>. (If the
+article needs updating in the future, perhaps we will merge it into this
+document.)
+
+
+File: tlbuild.info, Node: Layout and infrastructure, Next: Configure options, Prev: Installing, Up: Top
+
+6 Layout and infrastructure
+***************************
+
+The TeX Live source tree is the subtree rooted at 'Build/source' of the
+complete TL distribution and contains the sources for all executables
+distributed by TL, as well as 'configure' scripts and 'make' rules to
+build and install them together with some of their support files.
+
+* Menu:
+
+* Build system tools:: If modifying infrastructure files.
+* Top-level directories::
+* Autoconf macros:: TL-specific Autoconf macros.
+* Library modules:: Details on some specific libraries,
+* Program modules:: and on some programs.
+* Extending TeX Live:: Adding a new module.
+
+
+File: tlbuild.info, Node: Build system tools, Next: Top-level directories, Up: Layout and infrastructure
+
+6.1 Build system tools
+======================
+
+As mentioned above (*note Prerequisites::), a normal build requires very
+little. On the other hand, if you want to modify the TeX Live
+infrastructure sources, such as 'configure.ac' or 'Makefile.am' files,
+you will need to have several additional tools installed.
+
+ In general, the TL build system uses the latest released versions of
+the GNU build tools, installed directly from the original GNU releases
+(e.g., by building them with 'configure --prefix=/usr/local/gnu' and
+having 'PATH' start with '/usr/local/gnu/bin'). We have found that
+trying to use the versions of these tools packaged for distros causes
+many extra hassles, so don't do that, tempting as it may be.
+
+ Currently the versions we use are:
+
+ autoconf (GNU Autoconf) 2.69
+ automake (GNU automake) 1.14.1
+ bison (GNU Bison) 3.0.2
+ flex 2.5.39
+ ltmain.sh (GNU libtool) 2.4.2
+ m4 (GNU M4) 1.4.17
+ makeinfo (GNU texinfo) 5.2
+
+ These versions should be used to update the generated files (e.g.,
+'configure' or 'Makefile.in') in all or parts of the TL tree after their
+dependencies have been changed. This can be done explicitly with the
+top-level 'reautoconf' script or implicitly by using the configure
+option '--enable-maintainer-mode'.
+
+ The files in the Subversion repository (see
+<http://tug.org/texlive/svn>) are all up to date, but unfortunately this
+may not be reflected by their timestamps. (For starters, be sure to set
+'use-commit-times=yes' in '~/.subversion/config' or the equivalent.)
+
+ To avoid unnecessary runs of 'bison', 'flex', or 'makeinfo' it may be
+necessary to 'touch' the generated ('.c', '.h', or '.info') files. With
+'--enable-maintainer-mode' it may also be necessary to 'touch' first
+'aclocal.m4', then 'configure' and 'config.h.in' (or 'c-auto.in'), and
+finally all 'Makefile.in' files. Perhaps 'make -t' will help.
+
+
+File: tlbuild.info, Node: Top-level directories, Next: Autoconf macros, Prev: Build system tools, Up: Layout and infrastructure
+
+6.2 Top-level directories
+=========================
+
+Here is a brief description of the top-level directories in the TeX Live
+source tree.
+
+ As mentioned at the beginning of the chapter (*note Overview of build
+system::), the main source directories are 'texk/' (TeX-specific
+programs and libraries), 'utils/' (additional programs), and 'libs'
+(generic libraries).
+
+ The top-level directories 'am/' and 'm4/' contain 'Makefile.am'
+fragments and Autoconf macros, respectively, used in many places.
+Specifically, the file 'm4/kpse-pkgs.m4' contains lists of all program
+and library modules; missing modules are silently ignored. (This helps
+in creating cut-down source trees.)
+
+ Each module contributes fragments (in separate files) defining its
+capabilities and requirements to the 'configure.ac' scripts at the
+top-level and in the subdirectories 'libs', 'utils', and 'texk'. The
+fragments from program modules supply 'configure' options to disable or
+enable building them; those from library modules specify if an installed
+(system) version of that library can be used. This ultimately
+determines which modules need to be built--although all modules must be
+configured for the benefit of 'make' targets such as 'dist' or
+'distcheck'.
+
+ The top-level 'build-aux/' directory contains the common files
+'compile', 'config.guess', 'config.sub', 'depcomp', etc. for most
+packages, pulled from the GNU Gnulib sources
+(<http://www.gnu.org/software/gnulib>), which in turn synchronizes with
+the appropriate ultimate upstream repository. There are, however,
+independent copies in, e.g., 'libs/freetype2/freetype-*/builds/unix/',
+and similar places. The 'reautoconf' script does not touch those, but a
+TL cron job keeps them in sync (nightly).
+
+ The directory 'extra/' contains things which are not part of the TL
+build, but are present just for (someone's) convenience, e.g.,
+'epstopdf' which is developed here.
+
+
+File: tlbuild.info, Node: Autoconf macros, Next: Library modules, Prev: Top-level directories, Up: Layout and infrastructure
+
+6.3 Autoconf macros
+===================
+
+Here we describe some of the Autoconf macros used in several modules-not
+a complete list, by any means. These general macros are supplemented by
+module-specific macros in directories such as 'texk/dvipng/m4/'; some of
+those are described in *note Library modules:: and *note Program
+modules::.
+
+* Menu:
+
+* Setup: General setup macros.
+* Programs: Macros for programs.
+* Compilers: Macros for compilers.
+* Libraries: Macros for libraries.
+* Flags: Macros for library and header flags.
+* Windows: Macros for Windows.
+
+
+File: tlbuild.info, Node: General setup macros, Next: Macros for programs, Up: Autoconf macros
+
+6.3.1 General setup macros
+--------------------------
+
+The TL sources use two general setup macros:
+
+ -- Macro: KPSE_BASIC (NAME, [MORE-OPTIONS])
+ Initialize the basic TL infrastructure for module NAME:
+ 'AM_INIT_AUTOMAKE([foreign MORE-OPTIONS])'
+ 'AM_MAINTAINER_MODE'
+ 'KPSE_COMPILER_WARNINGS'
+ and make sure the C compiler understands function prototypes. This
+ is used for all generic library and program modules.
+
+ -- Macro: KPSE_COMMON (NAME, [MORE-OPTIONS])
+ Like 'KPSE_BASIC' but add:
+ 'LT_PREREQ([2.2.6])'
+ 'LT_INIT([win32-dll])'
+ 'AC_SYS_LARGEFILE'
+ 'AC_FUNC_FSEEKO'
+ and check for frequently used functions, headers, types, and
+ structures. This is used for TeX-specific modules.
+
+
+File: tlbuild.info, Node: Macros for programs, Next: Macros for compilers, Prev: General setup macros, Up: Autoconf macros
+
+6.3.2 Macros for programs
+-------------------------
+
+Macros for program checks:
+
+ -- Macro: KPSE_CHECK_LATEX
+ Set 'LATEX' to the name of the first of 'latex', 'elatex', or
+ 'lambda' which exists in 'PATH', or to 'no' if none of them exists.
+ Call 'AC_SUBST' for 'LATEX'. The result of this test can be
+ overridden by setting the 'LATEX' environment variable or the cache
+ variable 'ac_cv_prog_LATEX'.
+
+ -- Macro: KPSE_CHECK_PDFLATEX
+ Check for 'pdflatex' in 'PATH' and set 'PDFLATEX'.
+
+ -- Macro: KPSE_CHECK_PERL
+ Check for 'perl' or 'perl5' in 'PATH' and set 'PERL'.
+
+ -- Macro: KPSE_PROG_LEX
+ Call 'AC_PROG_LEX' and add the flag '-l' for 'flex'.
+
+
+File: tlbuild.info, Node: Macros for compilers, Next: Macros for libraries, Prev: Macros for programs, Up: Autoconf macros
+
+6.3.3 Macros for compilers
+--------------------------
+
+Macros for compiler-related checks:
+
+ -- Macro: KPSE_COMPILER_WARNINGS
+ When using the (Objective) C/C++ compiler, set
+ 'WARNING_[OBJ]C[XX']FLAGS to suitable warning flags (depending on
+ the value given to or implied for '--enable-compiler-warnings').
+ Call 'AC_SUBST' for them. At the moment this only works for GNU
+ compilers, but could be extended to others if necessary.
+
+ This macro caches its results in the 'kpse_cv_warning_cflags', ...
+ variables.
+
+ -- Macro: KPSE_COMPILER_VISIBILITY
+ When using the C or C++ compiler, try to set
+ 'VISIBILITY_C[XX]FLAGS' to flags to hide external symbols. Call
+ 'AC_SUBST' for this variable. At the moment this only tests for
+ the compiler option '-fvisibility=hidden', but that could be
+ extended with more checks if necessary.
+
+ This macro caches its results in the 'kpse_cv_visibility_cflags' or
+ 'kpse_cv_visibility_cxxflags' variable.
+
+ -- Macro: KPSE_CXX_HACK
+ Provide the configure option '--enable-cxx-runtime-hack'. If
+ enabled and when using 'g++', try to statically link with
+ 'libstdc++', somewhat improving portability of the resulting
+ binary.
+
+ This macro caches its result in the 'kpse_cv_cxx_hack' variable.
+
+
+File: tlbuild.info, Node: Macros for libraries, Next: Macros for library and header flags, Prev: Macros for compilers, Up: Autoconf macros
+
+6.3.4 Macros for libraries
+--------------------------
+
+One macro for a library check:
+
+ -- Macro: KPSE_LARGEFILE (VARIABLE, [EXTRA-DEFINE])
+ Call 'AC_SYS_LARGEFILE' and 'AC_FUNC_FSEEKO' and append suitable
+ '-D' flags (optionally including '-DEXTRA-DEFINE') to VARIABLE.
+
+
+File: tlbuild.info, Node: Macros for library and header flags, Next: Macros for Windows, Prev: Macros for libraries, Up: Autoconf macros
+
+6.3.5 Macros for library and header flags
+-----------------------------------------
+
+Each library module 'libs/LIB' or 'texk/LIB' is supplemented by a macro
+'KPSE_LIB_FLAGS' (all uppercase) that provides make variables for that
+library. E.g., for 'libs/libpng':
+
+ -- Macro: KPSE_LIBPNG_FLAGS
+ Provide the configure option '--with-system-libpng'. Set and
+ 'AC_SUBST' 'make' variables for modules using this library (either
+ an installed version or from the TeX Live tree): 'LIBPNG_INCLUDES'
+ for use in CPPFLAGS, LIBPNG_LIBS for use in LDADD, LIBPNG_DEPEND
+ for use as dependency, and LIBPNG_RULE defining 'make' rules to
+ rebuild the library.
+
+ -- Macro: KPSE_ADD_FLAGS (LIBNAME)
+ Temporarily extend CPPFLAGS and LIBS with the values required for
+ the library module 'NAME'.
+
+ -- Macro: KPSE_RESTORE_FLAGS
+ Restore 'CPPFLAGS' and 'LIBS' to their original values.
+
+ As an example, the 'configure.ac' file for a hypothetical program
+'utils/foo' using 'libpng', and hence 'zlib', would contain
+ KPSE_ZLIB_FLAGS
+ KPSE_LIBPNG_FLAGS
+
+and its 'Makefile.am' would be along these lines:
+ bin_PROGRAMS = foo
+ AM_CPPFLAGS = ${ZLIB_INCLUDES} ${LIBPNG_INCLUDES}
+ foo_LDADD = ${ZLIB_LIBS} ${LIBPNG_LIBS}
+ foo_DEPENDENCIES = ${ZLIB_DEPEND} ${LIBPNG_DEPEND}
+ ## Rebuild libz
+ @ZLIB_RULE@
+ ## Rebuild libpng
+ @LIBPNG_RULE@
+
+ If it was necessary to examine whether certain 'zlib' or 'libpng'
+features were available, 'configure.ac' should be continued this way:
+ KPSE_ADD_FLAGS([zlib])
+ ... # tests for 'zlib' features, if any
+ KPSE_ADD_FLAGS([libpng])
+ ... # tests for 'libpng' features
+ KPSE_RESTORE_FLAGS # restore 'CPPFLAGS' and 'LIBS'
+
+
+File: tlbuild.info, Node: Macros for Windows, Prev: Macros for library and header flags, Up: Autoconf macros
+
+6.3.6 Macros for Windows
+------------------------
+
+Windows differs in several aspects from Unix-like systems, many of them
+due to the lack of symbolic links.
+
+ -- Macro: KPSE_CHECK_WIN32
+ Check if compiling for a Windows system. The result is 'no' for
+ Unix-like systems (including Cygwin), 'mingw32' for Windows with
+ GCC, or 'native' for Windows with MSVC. The result is cached in the
+ 'kpse_cv_have_win32' variable.
+
+ -- Macro: KPSE_COND_WIN32
+ Call 'KPSE_CHECK_WIN32' and define the Automake conditional 'WIN32'
+ ('true' if the value of 'kpse_cv_have_win32' is not 'no').
+
+ -- Macro: KPSE_COND_MINGW32
+ Call 'KPSE_COND_WIN32' and define the Automake conditional
+ 'MINGW32' ('true' if the value of 'kpse_cv_have_win32' is
+ 'mingw32').
+
+ -- Macro: KPSE_COND_WIN32_WRAP
+ Call 'KPSE_COND_WIN32' and define the Automake conditional
+ 'WIN32_WRAP' ('true' if the standard Windows wrapper
+ ('texk/texlive/w32_wrapper/runscript.exe') exists. This wrapper is
+ used on Windows instead of symlinks for the "linked scripts" (*note
+ Linked scripts::).
+
+ -- Macro: KPSE_WIN32_CALL
+ Call 'KPSE_COND_WIN32', check if the file
+ 'texk/texlive/w32_wrapper/callexe.c' exists; if it does, create a
+ symlink in the build tree. Compiling 'callexe.c' with
+ '-DEXEPROG='"FOO.exe"'' and installing 'callexe.exe' as 'BAR.exe'
+ is used on Windows instead of a symlink 'BAR->FOO' for Unix-like
+ systems.
+
+
+File: tlbuild.info, Node: Library modules, Next: Program modules, Prev: Autoconf macros, Up: Layout and infrastructure
+
+6.4 Library modules
+===================
+
+Here we discuss some specifics for a few of the libraries in TL, both
+for the details themselves, and as a way of illuminating the general
+structure and variation.
+
+* Menu:
+
+* 'png' library:: 'libs/libpng'
+* 'zlib' library:: 'libs/zlib'
+* 'freetype' library:: 'libs/freetype2'
+* 'kpathsea' library:: 'texk/kpathsea'
+
+
+File: tlbuild.info, Node: 'png' library, Next: 'zlib' library, Up: Library modules
+
+6.4.1 The 'png' library in 'libs/libpng'
+----------------------------------------
+
+This generic library uses the source tree in, e.g., the subdirectory
+'libpng-1.5.17' with all modifications for TL recorded in
+'libpng-1.5.17-PATCHES/*'. The 'configure.ac' fragment
+'ac/withenable.ac' contains
+
+ KPSE_WITH_LIB([libpng], [zlib])
+
+specifying the module name, and indicating the dependency on 'zlib'. A
+third literal argument 'tree' would specify that the library from the
+TeX Live tree cannot be replaced by a system version. That not being
+the case here, a second fragment 'ac/libpng.ac' contains
+
+ KPSE_TRY_LIB([libpng],
+ [#include <png.h>],
+ [png_structp png; png_voidp io; png_rw_ptr fn;
+ png_set_read_fn(png, io, fn);])
+
+thus providing the simple C code
+
+ #include <png.h>
+ int main ()
+ { png_structp png; png_voidp io; png_rw_ptr fn;
+ png_set_read_fn(png, io, fn);
+ return 0; }
+
+which Autoconf uses to verify the usability of a system version with C
+code. The analogous macro 'KPSE_TRY_LIBXX' would check using C++ code.
+These fragments are included by 'configure.ac' at the top level.
+
+ For this library, among many other modules, a proxy build system for
+TL is used ('configure.ac', 'Makefile.am', and 'include/Makefile.am'),
+ignoring the distributed one. Consequently, a few generated files and
+auxiliary scripts are removed from the distributed source tree. The
+public headers 'png.h', 'pngconf.h', and 'pnglibconf.h' are "installed"
+(as symlinks) under 'include/' in the build tree exactly as they are for
+a system version under, e.g., '/usr/include/'.
+
+ The module is supplemented by the file 'm4/kpse-libpng-flags.m4' that
+defines the M4 macro 'KPSE_LIBPNG_FLAGS' used by all modules depending
+on this library in their 'configure.ac' to generate the 'make' variables
+'LIBPNG_INCLUDES' for use in 'CPPFLAGS', 'LIBPNG_LIBS' for use in
+'LDADD', 'LIBPNG_DEPEND' for use as dependencies, and 'LIBPNG_RULE'
+defining 'make' rules to rebuild the library.
+
+ 'm4/kpse-libpng-flags.m4' also supplies the configure option
+'--with-system-libpng' and uses 'pkg-config' to determine the flags
+required for the system library.
+
+
+File: tlbuild.info, Node: 'zlib' library, Next: 'freetype' library, Prev: 'png' library, Up: Library modules
+
+6.4.2 The 'zlib' library in 'libs/zlib'
+---------------------------------------
+
+This generic library is very much analogous to 'libpng', but without the
+dependency on any other library. The file 'm4/kpse-zlib-flags.m4'
+supplies the configure option '--with-system-zlib', as well as
+'--with-zlib-includes' and '--with-zlib-libdir' to specify non-standard
+locations of the 'zlib' headers and/or library.
+
+
+File: tlbuild.info, Node: 'freetype' library, Next: 'kpathsea' library, Prev: 'zlib' library, Up: Library modules
+
+6.4.3 The 'freetype' library in 'libs/freetype2'
+------------------------------------------------
+
+This module uses a wrapper build system with an almost trivial
+'configure.ac' and with a 'Makefile.am' that invokes 'configure' and
+'make' for the distributed source, followed by 'make install' with the
+build tree as destination. The flags required for the system library
+are obtained through 'freetype-config'.
+
+
+File: tlbuild.info, Node: 'kpathsea' library, Prev: 'freetype' library, Up: Library modules
+
+6.4.4 The 'kpathsea' library in 'texk/kpathsea'
+-----------------------------------------------
+
+This is one of the TeX-specific libraries that are maintained as part of
+TeX Live (*note (kpathsea)::). Despite being a core part of the TeX
+system, it is not a terribly special case in the infrastructure. The
+TeX libraries are Libtool libraries (static and/or shared) and are
+installed by 'make install' together with the programs. They are,
+however, not part of the TL DVD as distributed by TeX user groups, and
+have never been officially released for standalone use.
+
+ It is possible, and possibly even useful for distro builds (*note
+Distro builds::, to specify the configure option
+'--with-system-kpathsea' in order to use a system version of the library
+and it may then be necessary to specify '--with-kpathsea-includes'
+and/or '--with-kpathsea-libdir'.
+
+ In addition to 'ac/withenable.ac' and 'ac/kpathsea.ac' there is a
+third fragment 'ac/mktex.ac' included by both 'ac/withenable.ac' and
+'configure.ac' that supplies configure options such as
+'--enable-mktextfm-default', which determine the compile time default of
+whether or not to run 'mktextfm' to generate a missing '.tfm' file. In
+any case, however, the command line options '-mktex=tfm' or
+'-no-mktex=tfm' for the TeX-like engines override this default.
+
+
+File: tlbuild.info, Node: Program modules, Next: Extending TeX Live, Prev: Library modules, Up: Layout and infrastructure
+
+6.5 Program modules
+===================
+
+As with libraries (*note Library modules::), here we discuss the details
+for a few of the programs in TL.
+
+* Menu:
+
+* 't1utils' package:: 'utils/t1utils'
+* 'xindy' package:: 'utils/xindy'
+* 'xdvik' package:: 'texk/xdvik'
+* 'asymptote':: 'utils/asymptote'
+
+
+File: tlbuild.info, Node: 't1utils' package, Next: 'xindy' package, Up: Program modules
+
+6.5.1 The 't1utils' package in 'utils/t1utils'
+----------------------------------------------
+
+Once again we use the distributed source tree 't1utils-1.38' with
+modifications documented in 't1utils-1.38-PATCHES/*' and a proxy build
+system consisting of 'configure.ac' and 'Makefile.am'. The fragment
+'ac/withenable.ac' contains
+
+ KPSE_ENABLE_PROG([t1utils])
+
+specifying the module name without any dependencies, and supplies the
+configure option '--disable-t1utils'.
+
+
+File: tlbuild.info, Node: 'xindy' package, Next: 'xdvik' package, Prev: 't1utils' package, Up: Program modules
+
+6.5.2 The 'xindy' package in 'utils/xindy'
+------------------------------------------
+
+This module uses the distributed source tree 'xindy-2.4' with
+modifications documented in 'xindy-2.4-PATCHES/*', a proxy
+'configure.ac', and a wrapper 'Makefile.am' that descends into
+'xindy-2.4'. The 'xindy' build requires that the distributed
+'Makefile's allow a 'VPATH' build, can handle all targets, and do not
+refer to '${top_srcdir}' or '${top_builddir}'. The fragment
+'ac/withenable.ac' contains
+
+ KPSE_ENABLE_PROG([xindy], , [disable native])
+ m4_include(kpse_TL[utils/xindy/ac/xindy.ac])
+ m4_include(kpse_TL[utils/xindy/ac/clisp.ac])
+
+where 'disable' in the third argument indicates that 'xindy' is only
+built if explicitly enabled by the user with 'configure --enable-xindy'
+(the need for 'clisp' is too painful to require by default), and
+'native' disallows cross compilation. The additional fragments
+'ac/xindy.ac' and 'ac/clisp.ac' specify more 'configure' options to be
+seen at the top level with 'ac/xindy.ac' also included by
+'configure.ac'.
+
+
+File: tlbuild.info, Node: 'xdvik' package, Next: 'asymptote', Prev: 'xindy' package, Up: Program modules
+
+6.5.3 The 'xdvik' package in 'texk/xdvik'
+-----------------------------------------
+
+This package is maintained as part of the TeX Live tree with sources in
+its top level directory and the subdirectory 'gui'. The fragment
+'ac/withenable.ac' contains
+
+ dnl extra_dirs = texk/xdvik/squeeze
+ KPSE_ENABLE_PROG([xdvik], [kpathsea freetype2], [x])
+ m4_include(kpse_TL[texk/xdvik/ac/xdvik.ac])
+
+thus specifying the dependency on the 'kpathsea', 'freetype', and X11
+libraries. The M4 comment (following 'dnl') signals the subsidiary
+'squeeze/configure.ac'. This is needed because the main executable
+'xdvi-bin' (to be installed as, e.g., 'xdvi-xaw') is for the 'host'
+system whereas the auxiliary program 'squeeze/squeeze' has to run on the
+'build' system and in a cross compilation they differ.
+
+ The additional fragment 'ac/xdvik.ac' is also included by
+'configure.ac' and supplies the configure option '--with-xdvi-x-toolkit'
+also seen at the top-level.
+
+
+File: tlbuild.info, Node: 'asymptote', Prev: 'xdvik' package, Up: Program modules
+
+6.5.4 The subdirectory 'utils/asymptote'
+----------------------------------------
+
+This subdirectory contains the sources for 'asy' and 'xasy' but due to
+its complexity and prerequisites (e.g., OpenGL) it is not part of the TL
+build system. These programs must be built and installed independently,
+but are included on the TL DVD together with their support files.
+
+
+File: tlbuild.info, Node: Extending TeX Live, Prev: Program modules, Up: Layout and infrastructure
+
+6.6 Extending TeX Live
+======================
+
+This section outlines the basic process for adding new packages to the
+TL build system.
+
+* Menu:
+
+* Adding a new program module::
+* Adding a new generic library module::
+* Adding a new TeX-specific library module::
+
+
+File: tlbuild.info, Node: Adding a new program module, Next: Adding a new generic library module, Up: Extending TeX Live
+
+6.6.1 Adding a new program module
+---------------------------------
+
+A TeX-specific program module in a subdirectory 'texk/PROG' may use the
+TeX-specific libraries and is included by adding its name 'PROG' to the
+M4 list 'kpse_texk_pkgs' defined in 'm4/kpse-pkgs.m4'.
+
+ A generic program module in a subdirectory 'utils/PROG' must not use
+the TeX-specific libraries and is included by adding its name 'PROG' to
+the M4 list 'kpse_utils_pkgs' in 'm4/kpse-pkgs.m4'.
+
+ In either case, apart from the program sources and build system
+('configure.ac' and 'Makefile.am'), the subdirectory 'texk/PROG' or
+'utils/PROG' must provide a fragment 'ac/withenable.ac' that contains
+the M4 macro 'KPSE_ENABLE_PROG' defined in 'm4/kpse-setup.m4' with
+'PROG' as the mandatory first argument and three optional arguments:
+
+ 1. a list of required libraries from the TL tree;
+
+ 2. a list of options ('disable' if this module is not to be built
+ without the configure option '--enable-PROG', 'native' if cross
+ compilation is not possible, 'x' if the program requires X11
+ libraries);
+
+ 3. and a comment added to the help text for the 'configure' option
+ '--enable-PROG' or '--disable-PROG'.
+
+ If the module requires specific configure options to be seen at the
+top-level, they should be defined in an additional fragment 'ac/PROG.ac'
+included from 'ac/withenable.ac' and 'configure.ac'.
+
+
+File: tlbuild.info, Node: Adding a new generic library module, Next: Adding a new TeX-specific library module, Prev: Adding a new program module, Up: Extending TeX Live
+
+6.6.2 Adding a new generic library module
+-----------------------------------------
+
+A generic library module in a subdirectory 'libs/LIB' must not depend on
+TeX-specific libraries, by definition. It is included by adding its
+name 'LIB' to the M4 list 'kpse_libs_pkgs' in 'm4/kpse-pkgs.m4'--before
+any other libraries from the TeX Live tree on which it depends.
+
+ As with program modules, the subdirectory 'libs/LIB' must contain the
+sources and build system for the library (and any installable support
+programs) and a fragment 'ac/withenable.ac' that contains the M4 macro
+'KPSE_WITH_LIB' defined in 'm4/kpse-setup.m4' with 'LIB' as the
+mandatory first argument and two optional arguments: a list of required
+libraries from the TL tree, and a list of options (currently there is
+only one: specify 'tree' if this library cannot be replaced by a system
+version).
+
+ If a system version can be used, a second fragment 'ac/LIB.ac' is
+needed, containing the M4 macro 'KPSE_TRY_LIB' (or 'KPSE_TRY_LIBXX')
+with 'LIB' as the mandatory first argument and two additional arguments
+for the Autoconf macro 'AC_LANG_PROGRAM' used to compile and link a
+small C (or C++) program as sanity check for using the system library.
+
+ In addition a file 'm4/kpse-LIB-flags' (at the top level) must define
+the M4 macro 'KPSE_LIB_FLAGS' (all uppercase) setting up the 'make'
+variables 'LIB_INCLUDES', 'LIB_LIBS', 'LIB_DEPEND', and 'LIB_RULE' with
+the values required for 'CPPFLAGS', 'LDADD', dependencies, and a
+(multi-line) 'make' rule to rebuild the library when necessary. All of
+that is needed for the library from the TL tree and, if supported, for a
+system version.
+
+ If a system library is allowed, 'KPSE_LIB_FLAGS' also provides the
+configure option '--with-system-LIB' and uses the additional M4 macro
+'KPSE_LIB_SYSTEM_FLAGS' to generate the 'make' variables for a system
+library. Furthermore the definition of the M4 macro
+'KPSE_ALL_SYSTEM_FLAGS' in 'm4/kpse-pkgs.m4' must be extended by the
+line:
+ 'AC_REQUIRE([KPSE_LIB_SYSTEM_FLAGS])'
+
+
+File: tlbuild.info, Node: Adding a new TeX-specific library module, Prev: Adding a new generic library module, Up: Extending TeX Live
+
+6.6.3 Adding a new TeX-specific library module
+----------------------------------------------
+
+A TeX-specific library module in a subdirectory 'texk/LIB' may depend on
+other TeX-specific libraries but must not depend on any generic library
+from the TL tree. It is included in the same general ways as a generic
+library (see the previous section), with these modifications:
+
+ * The library name 'LIB' is added to the M4 list 'kpse_texlibs_pkgs'
+ also in 'm4/kpse-pkgs.m4'.
+
+ * The fragment 'ac/withenable.ac' must use 'KPSE_WITH_TEXLIB'.
+
+
+File: tlbuild.info, Node: Configure options, Next: Cross compilation, Prev: Layout and infrastructure, Up: Top
+
+7 Configure options
+*******************
+
+Corresponding to the large number of program and library modules there
+are a large number 'configure' options, most of which are described
+here. The command
+ 'configure --help'
+at the top level gives an exhaustive list of all global options and a
+few important module-specific ones, whereas, e.g.,
+ 'texk/lcdf-typetools/configure --help'
+also displays the 'lcdf-typetools' specific options, which are not shown
+by the top-level '--help'.
+
+ The help text also mentions several influential environment
+variables, but for TeX Live it is better to specify them as assigments
+on the command line.
+
+ The './Build' script used to make the binaries shipped with TeX Live
+invokes the top-level 'configure' with a few additional options (*note
+Building::). The defaults discussed below are those for the actual
+'configure' script; invoking 'configure' via './Build' may yield
+different results.
+
+ Defaults for most options are set at the top level and propagated
+explicitly to all subdirectories. Options specified on the command line
+are checked for consistency but never modified.
+
+* Menu:
+
+* Global configure options::
+* Program-specific configure options::
+* Library-specific configure options::
+* Variables for configure::
+
+
+File: tlbuild.info, Node: Global configure options, Next: Program-specific configure options, Up: Configure options
+
+7.1 Global configure options
+============================
+
+Here are the global configure options.
+
+* Menu:
+
+* '--disable-native-texlive-build'::
+* '--prefix' '--bindir' ...::
+* '--disable-largefile'::
+* '--disable-missing'::
+* '--enable-compiler-warnings='LEVEL::
+* '--enable-cxx-runtime-hack'::
+* '--enable-maintainer-mode'::
+* '--enable-multiplatform'::
+* '--enable-shared'::
+* '--enable-silent-rules'::
+* '--without-ln-s'::
+* '--without-x'::
+
+
+File: tlbuild.info, Node: '--disable-native-texlive-build', Next: '--prefix' '--bindir' ..., Up: Global configure options
+
+7.1.1 '--disable-native-texlive-build'
+--------------------------------------
+
+If enabled (the default), build for a TL binary distribution as shipped
+by the TeX user groups. This requires GNU 'make' and implies
+'--enable-multiplatform' and '--enable-cxx-runtime-hack' (unless they
+are explicitly disabled), and enforces '--disable-shared'.
+
+ If building TL for a GNU/Linux or other distribution, this should be
+disabled and system versions of most libraries would be used (*note
+Distro builds::). This may fail without GNU 'make', but will be tried
+regardless.
+
+ A related option, '--enable-texlive-build', is automatically passed
+to all subdirectories (and cannot be disabled). Subdirectories that can
+also be built independently from the TL tree (such as 'utils/xindy' and
+'texk/dvipng') can use this option, e.g., to choose TL-specific
+installation paths.
+
+
+File: tlbuild.info, Node: '--prefix' '--bindir' ..., Next: '--disable-largefile', Prev: '--disable-native-texlive-build', Up: Global configure options
+
+7.1.2 '--prefix', '--bindir', ...
+---------------------------------
+
+These standard Autoconf options specify various installation directories
+as usual. For the complete list, *note Installation directories::.
+
+ Also as usual, all values are prefixed by the value of 'DESTDIR', if
+set, on the 'make' command line (*note Installation in a temporary
+location: (automake)Staged Installs.).
+
+
+File: tlbuild.info, Node: '--disable-largefile', Next: '--disable-missing', Prev: '--prefix' '--bindir' ..., Up: Global configure options
+
+7.1.3 '--disable-largefile'
+---------------------------
+
+Omit large file support (LFS), needed on most 32-bit Unix systems for
+files with 2GB or more. Regardless of this, the size of 'DVI' and 'GF'
+files must always be <2GB, due to the file format specifications.
+
+ With LFS, there is no fixed limit on the size of PDF files created by
+'pdftex' or PostScript files created by 'dvips'. The size of PDF images
+included by 'pdftex' must, however, be <4GB when using 'xpdf' and <2GB
+when using older versions of 'poppler' (even on 64-bit systems with
+LFS), whereas 'poppler' versions 0.23 and later impose no such limit.
+
+
+File: tlbuild.info, Node: '--disable-missing', Next: '--enable-compiler-warnings='LEVEL, Prev: '--disable-largefile', Up: Global configure options
+
+7.1.4 '--disable-missing'
+-------------------------
+
+Immediately terminate the build process if a requested program or
+feature must be disabled, e.g., due to missing libraries. This can help
+when figuring out a specific (sub)set of modules to enable.
+
+
+File: tlbuild.info, Node: '--enable-compiler-warnings='LEVEL, Next: '--enable-cxx-runtime-hack', Prev: '--disable-missing', Up: Global configure options
+
+7.1.5 '--enable-compiler-warnings='LEVEL
+----------------------------------------
+
+Enable various levels of compiler warnings for (Objective) C and C++:
+the LEVEL value can be one of: 'no min yes max all'. The default is
+'yes' in 'maintainer-mode' (see below) and 'min' otherwise. This option
+defines 'WARNING_[OBJ]C[XX]FLAGS' but these flags are not used in all
+library and program modules. Using them should help to resolve
+portability problems.
+
+ At present, these warning flags are only defined for the GNU
+compilers but flags for other compilers could be added when needed.
+
+
+File: tlbuild.info, Node: '--enable-cxx-runtime-hack', Next: '--enable-maintainer-mode', Prev: '--enable-compiler-warnings='LEVEL, Up: Global configure options
+
+7.1.6 '--enable-cxx-runtime-hack'
+---------------------------------
+
+If enabled (as it is for the native TL build) and when using 'g++', try
+to statically link with 'libstdc++', somewhat improving portability of
+the resulting binary. *Note Macros for compilers::.
+
+
+File: tlbuild.info, Node: '--enable-maintainer-mode', Next: '--enable-multiplatform', Prev: '--enable-cxx-runtime-hack', Up: Global configure options
+
+7.1.7 '--enable-maintainer-mode'
+--------------------------------
+
+Enable 'make' rules and dependencies not useful (and sometimes
+confusing) to the casual user. This requires current versions of the
+GNU build tools (*note Build system tools::), as it automatically
+rebuilds infrastructure files as needed. *Note 'missing' and
+'AM_MAINTAINER_MODE': (automake)maintainer-mode.
+
+
+File: tlbuild.info, Node: '--enable-multiplatform', Next: '--enable-shared', Prev: '--enable-maintainer-mode', Up: Global configure options
+
+7.1.8 '--enable-multiplatform'
+------------------------------
+
+If enabled, install executables and libraries in per-platform
+subdirectories of 'EPREFIX/bin' and 'EPREFIX/lib' where EPREFIX is the
+value given or implied for 'exec_prefix'. This can be overridden by
+explicitly '--bindir=DIR' or '--libdir=DIR'. In any case, the values
+for 'bindir' and 'libdir' are automatically propagated to all
+subdirectories.
+
+
+File: tlbuild.info, Node: '--enable-shared', Next: '--enable-silent-rules', Prev: '--enable-multiplatform', Up: Global configure options
+
+7.1.9 '--enable-shared'
+-----------------------
+
+Build shared versions of the TeX-specific libraries such as
+'libkpathsea'. This is not allowed for a native TL build (i.e.,
+'--disable-native-texlive-build' must also be specified).
+
+
+File: tlbuild.info, Node: '--enable-silent-rules', Next: '--without-ln-s', Prev: '--enable-shared', Up: Global configure options
+
+7.1.10 '--enable-silent-rules'
+------------------------------
+
+Enable the use of less verbose build rules. When using GNU 'make' (or
+another 'make' implementation supporting nested variable expansions),
+you can specify 'V=1' on the 'make' command line to get more verbosity,
+or 'V=0' to get less, regardless of this option.
+
+
+File: tlbuild.info, Node: '--without-ln-s', Next: '--without-x', Prev: '--enable-silent-rules', Up: Global configure options
+
+7.1.11 '--without-ln-s'
+-----------------------
+
+Required when using a system without a working 'ln -s' to build binaries
+for a Unix-like system. However, 'make install' will not create
+anything useful and might even fail.
+
+
+File: tlbuild.info, Node: '--without-x', Prev: '--without-ln-s', Up: Global configure options
+
+7.1.12 '--without-x'
+--------------------
+
+Disable all programs using the X Window System.
+
+
+File: tlbuild.info, Node: Program-specific configure options, Next: Library-specific configure options, Prev: Global configure options, Up: Configure options
+
+7.2 Program-specific configure options
+======================================
+
+Here are (some of) the program-specific 'configure' options.
+
+* Menu:
+
+* '--enable-PROG' '--disable-PROG'::
+* '--disable-all-pkgs'::
+* Configure options for 'texk/web2c'::
+* Configure options for 'texk/bibtex-x'::
+* Configure options for 'texk/dvipdfm-x'::
+* Configure options for 'texk/dvisvgm'::
+* Configure options for 'texk/texlive'::
+* Configure options for 'texk/xdvik'::
+* Configure options for 'utils/xindy'::
+
+
+File: tlbuild.info, Node: '--enable-PROG' '--disable-PROG', Next: '--disable-all-pkgs', Up: Program-specific configure options
+
+7.2.1 '--enable-PROG', '--disable-PROG'
+---------------------------------------
+
+Do or do not build and install the program(s) of the module 'PROG'.
+
+
+File: tlbuild.info, Node: '--disable-all-pkgs', Next: Configure options for 'texk/web2c', Prev: '--enable-PROG' '--disable-PROG', Up: Program-specific configure options
+
+7.2.2 '--disable-all-pkgs'
+--------------------------
+
+Do not build any program modules by default--only those explicitly
+enabled. This is useful when one wants to work on only a single
+program, which is specified with an additional '--enable' option, e.g.,
+'--enable-dvipdfm-x'. It's still simplest to check out and configure
+the whole source tree, but at least only the program you are interested
+in, and its dependencies, are built. The 'configure' will generally
+take less than a minute with everything disabled. (It is a good idea to
+run 'make check' after doing this, and after making any changes, to
+ensure that whatever tests have been written still pass.)
+
+ Without this option, all modules are built except those that are
+explicitly disabled or specify 'disable' in their 'ac/withenable.ac'
+fragment.
+
+
+File: tlbuild.info, Node: Configure options for 'texk/web2c', Next: Configure options for 'texk/bibtex-x', Prev: '--disable-all-pkgs', Up: Program-specific configure options
+
+7.2.3 Configure options for 'texk/web2c'
+----------------------------------------
+
+'--with-banner-add=STR'
+Add 'STR' to the default version string ('TeX Live YEAR' or 'Web2C
+YEAR') appended to banner lines. This is ignored for a native TL build,
+but distro builds should specify, e.g., '/SOMEDISTRO'.
+
+'--with-editor=CMD'
+Specify the command 'CMD' to invoke from the 'e' option of TeX-like
+engines, replacing the default 'vi +%d '%s'' for Unix or 'texworks
+--position=%d "%s"' for Windows.
+
+'--with-fontconfig-includes=DIR', '--with-fontconfig-libdir=DIR'
+Building XeTeX on non-Mac systems requires the 'fontconfig' library
+headers and code. If one or both of these options are given, the
+required flags are derived from them; otherwise, they are determined via
+'pkg-config' (if present).
+
+'--with-mf-x-toolkit'
+Use the X toolkit ('libXt') for Metafont (the default is to use the
+lowest-level 'Xlib' support; it seems this has the best chance of
+working across X installations nowadays).
+
+'--disable-dump-share'
+Make the 'fmt'/'base' dump files architecture dependent (somewhat faster
+on LittleEndian architectures).
+
+'--disable-ipc'
+Disable TeX's '--ipc' option.
+
+'--disable-mf-nowin'
+Do not build a separate non-graphically-capable Metafont ('mf-nowin').
+
+'--disable-omfonts'
+Build the WEB versions of the Omega font utilities 'ofm2opl', 'opl2ofm',
+'ovf2ovp', and 'ovp2ovf' instead of the C version 'omfonts'. The WEB
+and C versions should be roughly equivalent.
+
+'--disable-tex', '--enable-etex', ...
+Do not or do build the various TeX, Metafont, and MetaPost engines
+(defaults are defined in the fragment 'texk/web2c/ac/web2c.ac').
+
+'--disable-web-progs'
+Do not build the core WEB programs 'bibtex', ..., 'weave'. Useful if,
+e.g., you only want to (re)build some engines.
+
+'--enable-auto-core'
+This option causes TeX and Metafont to produce a core dump when a
+particular hacky filename is encountered, for use in creating preloaded
+binaries. This is rarely done nowadays.
+
+'--enable-libtool-hack'
+If enabled (which is the default for all platforms), prevents 'libtool'
+from linking explicitly with dependencies of 'libfontconfig' such as
+'libexpat'.
+
+'--enable-*win'
+Include various types of other window support for Metafont (EPSF output,
+'mftalk', old terminals, ...).
+
+'--enable-tex-synctex', '--disable-etex-synctex', ...
+Build the TeX engines with or without 'SyncTeX' support; ignored for a
+native TeX Live build, defaults are again defined in
+'texk/web2c/ac/web2c.ac'.
+
+
+File: tlbuild.info, Node: Configure options for 'texk/bibtex-x', Next: Configure options for 'texk/dvipdfm-x', Prev: Configure options for 'texk/web2c', Up: Program-specific configure options
+
+7.2.4 Configure options for 'texk/bibtex-x'
+-------------------------------------------
+
+The former programs 'bibtex8' and 'bibtexu' have been merged into the
+module 'bibtex-x' (extended BibTeX).
+
+'--disable-bibtex8'
+Do not build the 'bibtex8' program.
+
+ -disable-bibtexu '--disable-bibtexu'
+Do not build the 'bibtexu' program (building 'bibtexu' requires 'ICU'
+libraries).
+
+
+File: tlbuild.info, Node: Configure options for 'texk/dvipdfm-x', Next: Configure options for 'texk/dvisvgm', Prev: Configure options for 'texk/bibtex-x', Up: Program-specific configure options
+
+7.2.5 Configure options for 'texk/dvipdfm-x'
+--------------------------------------------
+
+The former modules 'dvipdfmx' (extended DVI to PDF converter) and
+'xdvipdfmx' (the same, as used by XeTeX) have been merged into
+'dvipdfm-x' at the source level. Two separate binaries are still
+created by default. In addition, 'dvipdfm' is created as a symlink to
+'dvipdfmx', with backward-compatible (very slightly different) behavior.
+
+'--disable-dvipdfmx'
+Do not build the 'dvipdfmx' program or create the 'dvipdfm' symlink.
+
+'--disable-xdvipdfmx'
+Do not build the 'xdvipdfmx' program (building 'xdvipdfmx' requires the
+'freetype' library).
+
+
+File: tlbuild.info, Node: Configure options for 'texk/dvisvgm', Next: Configure options for 'texk/texlive', Prev: Configure options for 'texk/dvipdfm-x', Up: Program-specific configure options
+
+7.2.6 Configure options for 'texk/dvisvgm'
+------------------------------------------
+
+'--with-system-libgs'
+Build 'dvisvgm' using installed Ghostscript ('gs') headers and library
+(not allowed for a native TL build). The default is to load the 'gs'
+library at runtime if possible, or otherwise disable support for
+PostScript specials.
+
+'--without-libgs'
+Build 'dvisvgm' without PostScript support at all. Because the dynamic
+loading just mention defeats all attempts at static linking, the result
+can crash due to library incompatibilities, e.g., on CentOS 5.
+
+'--with-libgs-includes=DIR', '--with-libgs-libdir=DIR'
+Specify non-standard locations of the Ghostscript headers and library.
+
+
+File: tlbuild.info, Node: Configure options for 'texk/texlive', Next: Configure options for 'texk/xdvik', Prev: Configure options for 'texk/dvisvgm', Up: Program-specific configure options
+
+7.2.7 Configure options for 'texk/texlive'
+------------------------------------------
+
+'--disable-linked-scripts'
+Do not install the "linked scripts" (*note Linked scripts::), except for
+the TL scripts required to run 'texlinks'.
+
+
+File: tlbuild.info, Node: Configure options for 'texk/xdvik', Next: Configure options for 'utils/xindy', Prev: Configure options for 'texk/texlive', Up: Program-specific configure options
+
+7.2.8 Configure options for 'texk/xdvik'
+----------------------------------------
+
+'--with-gs=FILENAME'
+Hardwire the location of Ghostscript ('gs').
+
+'--with-xdvi-x-toolkit=KIT'
+Use toolkit 'KIT' for 'xdvik', one of: 'motif xaw xaw3d neXtaw'. The
+default is 'motif' if available, else 'xaw'.
+
+'--enable-xi2-scrolling'
+Use XInput 2.1 "smooth scrolling" if available. (default: yes, except
+for a native TL build).
+
+
+File: tlbuild.info, Node: Configure options for 'utils/xindy', Prev: Configure options for 'texk/xdvik', Up: Program-specific configure options
+
+7.2.9 Configure options for 'utils/xindy'
+-----------------------------------------
+
+'--enable-xindy-rules'
+Build and install 'xindy' rules (default: yes, except for a native TL
+build).
+
+'--enable-xindy-docs'
+Build and install 'xindy' documentation (default: yes, except for a
+native TL build).
+
+'--with-clisp-runtime=FILENAME'
+Specifies the Full path for the CLISP runtime file ('lisp.run' or
+'lisp.exe') to be installed. When specified as 'default' (the default
+for a native TL build) the path is determined by the CLISP executable;
+the value 'system' (not allowed for a native TL build, but the default
+for a non-native one) indicates that 'xindy' will use the installed
+version of 'clisp' (which must be identical to the one used to build
+'xindy').
+
+'--with-recode'
+Use 'recode' instead of 'iconv' to build the 'xindy' rules and
+documentation, required for some systems where 'iconv' is missing or
+broken.
+
+
+File: tlbuild.info, Node: Library-specific configure options, Next: Variables for configure, Prev: Program-specific configure options, Up: Configure options
+
+7.3 Library-specific configure options
+======================================
+
+Here are (some of) the library-specific 'configure' options, starting
+with this generic one:
+
+'--with-system-LIB'
+
+ Use an installed (system) version of the library 'LIB'; this option
+exists for most libraries, but is not allowed for a native TL build.
+Using a system version implies also using the system versions of all
+libraries (if any) that LIB depends on.
+
+ For many libraries '--with-LIB-includes=DIR' and
+'--with-LIB-libdir=DIR' to specify non-standard search locations; others
+use 'pkg-config' or similar to determine the required flags.
+
+ The top-level 'configure' script performs a consistency check for all
+required system libraries and bails out if tests fail.
+
+* Menu:
+
+* Configure options for 'kpathsea'::
+* Configure options for system 'poppler'::
+
+
+File: tlbuild.info, Node: Configure options for 'kpathsea', Next: Configure options for system 'poppler', Up: Library-specific configure options
+
+7.3.1 Configure options for 'kpathsea'
+--------------------------------------
+
+'--enable-CMD-default', '--disable-CMD-default'
+Determine the compile time default whether or not to run CMD, one of:
+'mkocp'
+ (Omega compiled translation process file)
+'mkofm'
+ (Omega font metrics file)
+'mktexfmt'
+ (format/base dump file)
+'mktexmf'
+ (Metafont source)
+'mktexpk'
+ (PK bitmap font)
+'mktextex'
+ (TeX source)
+'mktextfm'
+ (TFM file)
+
+to generate the specified type of file dynamically. The default can be
+overridden by the user in any case.
+
+
+File: tlbuild.info, Node: Configure options for system 'poppler', Prev: Configure options for 'kpathsea', Up: Library-specific configure options
+
+7.3.2 Configure options for system 'poppler'
+--------------------------------------------
+
+Building LuaTeX and XeTeX requires 'poppler', either from the TL tree or
+system headers and library. Building pdfTeX requires either 'xpdf' from
+the TeX Live tree or system 'poppler' headers and library.
+
+'--with-system-poppler'
+Use a system version (0.18 or newer) of 'poppler' for LuaTeX and XeTeX,
+and use 'pkg-config' to obtain the required flags.
+
+'--with-system-xpdf'
+Use a system version (0.12 or better) of 'poppler' (and 'pkg-config')
+for pdfTeX instead of 'xpdf' from the TL tree. *Note
+'--disable-largefile'::.
+
+
+File: tlbuild.info, Node: Variables for configure, Prev: Library-specific configure options, Up: Configure options
+
+7.4 Variables for configure
+===========================
+
+The values for these variables can be specified as 'configure' arguments
+of the form 'VAR=VALUE'. They can also be defined in the environment,
+but that might not work for cross compilations.
+
+'CC'
+'CXX'
+'CPPFLAGS'
+ And plenty more. As usual with Autoconf, these variables specify
+ the name (or full path) of compilers, preprocessor flags, and
+ similar. *Note autoconf: (GNU Autoconf)Preset Output Variables.
+
+'CLISP'
+ Name (or full path) of the 'clisp' executable, used to build
+ 'xindy'.
+
+'FT2_CONFIG'
+'ICU_CONFIG'
+'PKG_CONFIG'
+ These specify the name (or path) for the 'freetype-config',
+ 'icu-config', and 'pkg-config' commands used to determine the flags
+ required for system versions of 'libfreetype', the ICU libraries,
+ or many other libraries.
+
+'KPSEWHICH'
+ Name (or path) of an installed 'kpsewhich' binary, used by 'make
+ check' to determine the location of, e.g., 'cmbx10.tfm'.
+
+'MAKE'
+'SED'
+ And more. Name (or path) of the 'make', 'sed', and similar
+ programs; used at the top level and propagated to all
+ subdirectories.
+
+'PERL'
+'LATEX'
+'PDFLATEX'
+ Name (or full path) for the 'perl', 'latex', and 'pdflatex'
+ commands used, e.g., to build the 'xindy' documentation.
+
+
+File: tlbuild.info, Node: Cross compilation, Next: Coding conventions, Prev: Configure options, Up: Top
+
+8 Cross compilation
+*******************
+
+In a cross compilation a "build" system is used to create binaries to be
+executed on a "host" system with different hardware and/or operating
+system.
+
+ In simple cases, the build system can execute binaries for the host
+system. This typically occurs for bi-arch systems where, e.g.,
+'i386-linux' binaries can run on 'x86_64-linux' systems and 'win32'
+binaries can run on 'win64' systems. Although sometimes called "native
+cross", technically this is not cross compilation at all. In most such
+cases it suffices to specify suitable compiler flags. It might be
+useful to add the configure option '--build=HOST' to get the correct
+canonical host name, but note that this should _not_ be '--host=HOST'
+(*note (autoconf)Hosts and Cross-Compilation::).
+
+ In order to build, e.g., 32-bit binaries with 'clang' on a 64-bit OSX
+system one could use
+ './Build --build=i386-apple-darwin CC='clang -arch i386'' \
+ 'CXX='clang++ -arch i386' OBJCXX='clang++ -arch i386''
+
+* Menu:
+
+* Cross configuring:: Configuring for cross compilation.
+* Cross problems:: Cross compilation problems.
+
+
+File: tlbuild.info, Node: Cross configuring, Next: Cross problems, Up: Cross compilation
+
+8.1 Cross configuring
+=====================
+
+In a standard cross compilation, binaries for the host system cannot
+execute on the build system and it is necessary to specify the configure
+options '--host=HOST' and '--build=BUILD' with two different values.
+
+ Building binaries requires suitable "cross" tools, e.g., compiler,
+linker, and archiver, and perhaps a "cross" version of 'pkg-config' and
+similar to locate host system libraries. Autoconf expects that these
+cross tools are given by their usual variables or found under their
+usual name prefixed with 'HOST-'. Here a list of such tools and
+corresponding variables:
+
+ ar AR
+ freetype-config FT2_CONFIG
+ g++ CXX
+ gcc CC
+ icu-config ICU_CONFIG
+ objdump OBJDUMP
+ pkg-config PKG_CONFIG
+ ranlib RANLIB
+ strip STRIP
+
+In order to, e.g., build 'mingw32' binaries on 'x86_64-linux' with a
+cross compiler found as 'i386-pc-mingw32-gcc' one would specify
+
+ --host=i386-pc-mingw32 --build=x86_64-linux-gnu
+
+or perhaps
+
+ --host=mingw32 --build=x86_64-linux CC=i386-pc-mingw32-gcc
+
+but this latter, especially, might require adding 'CXX' and others.
+
+ Configure arguments such as 'CFLAGS=...' refer to the cross compiler.
+If necessary, you can specify compilers and flags for the few auxiliary
+C and C++ programs required for the build process as configure arguments
+
+ BUILDCC=...
+ BUILDCPPFLAGS=...
+ BUILDCFLAGS=...
+ BUILDCXX=...
+ BUILDCXXFLAGS=...
+ BUILDLDFLAGS=...
+
+
+File: tlbuild.info, Node: Cross problems, Prev: Cross configuring, Up: Cross compilation
+
+8.2 Cross problems
+==================
+
+The fact that binaries for the host system cannot be executed on the
+build system causes some problems.
+
+ One problem is that configure tests using 'AC_RUN_IFELSE' can compile
+and link the test program but cannot execute it. Such tests should be
+avoided if possible and otherwise must supply a pessimistic test result.
+
+ Another problem arises if the build process must execute some
+(auxiliary or installable) programs. Auxiliary programs can be placed
+into a subdirectory that is configured natively as is done for
+'texk/web2c/web2c', 'texk/dvipsk/squeeze', and 'texk/xdvik/squeeze'.
+The module 'libs/freetype2' uses the value of 'CC_BUILD', 'BUILD-gcc',
+'gcc', or 'cc' as compiler for the auxiliary program.
+
+ Building LuaTeX (or LuaJITTeX) uses the auxiliary program 'txt2zlib'
+to create 'pdflua.c' and, if necessary, update the distributed version
+of that file. In a cross compilation we simply use that distributed
+file.
+
+ The situation for installable programs needed by the build process is
+somewhat different. A quite expensive possibility, chosen for the ICU
+libraries in module 'libs/icu', is to first compile natively for the
+build system and in a second step to use these (uninstalled) programs
+during the cross compilation.
+
+ This approach would also be possible for the tools such as 'tangle'
+used in the module 'texk/web2c' to build the WEB programs, but that
+would require first building a native 'kpathsea' library. To avoid this
+complication, cross compilation of the WEB or CWEB programs requires
+sufficiently recent installed versions of 'tangle', 'ctangle',
+'otangle', and 'tie'.
+
+ Building 'xindy' requires running the host system 'clisp' binary,
+thus cross compilation is not possible.
+
+
+File: tlbuild.info, Node: Coding conventions, Next: install-tl, Prev: Cross compilation, Up: Top
+
+9 Coding conventions
+********************
+
+Ideally, building all of TeX Live with '--enable-compiler-warnings=max'
+should produce no (GCC) compiler warnings at all. In spite of
+considerable efforts into that direction we are still far from that goal
+and there are reasons that we may never fully reach it. Below are some
+rules about declarations of functions or variables and the use of
+'const'. These rules should be applied to all parts of the TeX Live
+tree, except some of those maintained independently.
+
+* Menu:
+
+* Declarations and definitions::
+* Const::
+
+
+File: tlbuild.info, Node: Declarations and definitions, Next: Const, Up: Coding conventions
+
+9.1 Declarations and definitions
+================================
+
+C standards
+...........
+
+The TeX Live build system no longer supports pre-ANSI C compilers. Thus
+all function prototypes and definitions must conform to the ANSI C
+standard (including 'void' in the declaration of C functions with no
+parameters). On the other hand, TL is built for a wide variety of
+systems, not all of which support the C99 standard. Therefore using C99
+features should be avoided if that can easily be done. In particular C
+code must not contain declarations after statements or C++-style
+comments.
+
+ If some C99 (or later) constructs must be used, the module should
+verify that they are available and otherwise provide an alternative.
+For example, the module 'texk/chktex' uses the C99 function 'stpcpy()'
+that may or may not be available on a particular system. It uses
+'AC_CHECK_DECLS([stpcpy])' in 'configure.ac' to test this, and provides
+the perhaps slightly less efficient alternative
+
+ #if !(defined HAVE_DECL_STPCPY && HAVE_DECL_STPCPY)
+ #static inline char *stpcpy(char *dest, const char *src)
+ {
+ return strcpy(dest, src) + strlen(src);
+ }
+ #endif
+
+in the file 'Utility.h'.
+
+Static functions
+................
+
+Functions used in only one file should be declared 'static'; they
+require no prototype except as forward declaration.
+
+Extern functions
+................
+
+Functions not declared 'static', usually because they are used in
+several files, require an ('extern') prototype in exactly one header
+file, which is included in the file defining the function and in all
+files using that function--this is the only way to guarantee consistency
+between definition and use. There should be no 'extern' declarations
+sprinkled throughout the C code (with or without comments as to where
+that function is defined).
+
+Variable declarations
+.....................
+
+The declaration of global variables follows analogous rules: they are
+either declared 'static' if used in only one file or declared 'extern'
+in exactly one header and instantiated in exactly one file.
+
+
+File: tlbuild.info, Node: Const, Prev: Declarations and definitions, Up: Coding conventions
+
+9.2 Const
+=========
+
+The 'const' feature of C is valuable, but easy to mis-use.
+
+Function parameters
+...................
+
+Ideally, a function parameter not modified by the function should be
+declared as 'const'. This is important in particular for strings
+('char*') because the actual arguments are often string literals. It is
+perfectly legitimate and safe to use a type 'char*' value for a type
+'const char*' variable (in an assignment, as initializer, as function
+argument, or as return value). It is equally safe to use a type
+'char**' value for a type 'const char*const*' variable, but not for a
+type 'const char**' variable since that might cause modification of a
+quantity supposed to be constant.
+
+ Getting all 'const' qualifiers right can get quite involved but can
+almost always be done. There are only a couple notable exceptions: the
+X11 headers are full of declarations that ought to use 'const' but do
+not, and the same is true to some extent for 'libfreetype' (but,
+thankfully, not for 'zlib' nowadays).
+
+What must be avoided with 'const'
+.................................
+
+The GCC compiler warnings "assignment discards qualifiers..." and
+analogous warnings for "initialization", "passing arg", or "return" must
+be strenously avoided in our own code. The only exception is when they
+are caused by X11 headers or macros or other third party code.
+
+What should be avoided with 'const'
+...................................
+
+A type cast, e.g., from 'const char*' to 'char*' does not solve any
+problems; depending on warning options, it may only hide them.
+Therefore such casts should be avoided whenever possible and otherwise
+must be carefully analyzed to make sure that they cannot cause the
+modification of quantities supposed to be constant.
+
+
+File: tlbuild.info, Node: install-tl, Next: tlmgr, Prev: Coding conventions, Up: Top
+
+Appendix A install-tl
+*********************
+
+* Menu:
+
+* install-tl NAME::
+* install-tl SYNOPSIS::
+* install-tl DESCRIPTION::
+* install-tl REFERENCES::
+* install-tl OPTIONS::
+* install-tl ENVIRONMENT VARIABLES::
+* install-tl AUTHORS AND COPYRIGHT::
+
+
+File: tlbuild.info, Node: install-tl NAME, Next: install-tl SYNOPSIS, Up: install-tl
+
+A.1 NAME
+========
+
+install-tl - TeX Live cross-platform installer
+
+
+File: tlbuild.info, Node: install-tl SYNOPSIS, Next: install-tl DESCRIPTION, Prev: install-tl NAME, Up: install-tl
+
+A.2 SYNOPSIS
+============
+
+install-tl [_option_]...
+
+ install-tl.bat [_option_]...
+
+
+File: tlbuild.info, Node: install-tl DESCRIPTION, Next: install-tl REFERENCES, Prev: install-tl SYNOPSIS, Up: install-tl
+
+A.3 DESCRIPTION
+===============
+
+This installer creates a runnable TeX Live installation from various
+media, including over the network. The installer works across all
+platforms supported by TeX Live. For information on initially
+downloading the TeX Live, see <http://tug.org/texlive/acquire.html>.
+
+ The basic idea of TeX Live installation is to choose one of the
+top-level _schemes_, each of which is defined as a different set of
+_collections_ and _packages_, where a collection is a set of packages,
+and a package is what contains actual files.
+
+ Within the installer, you can choose a scheme, and further customize
+the set of collections to install, but not the set of the packages. To
+do that, use 'tlmgr' (reference below) after the initial installation is
+completely.
+
+ The default is 'scheme-full', to install everything, and this is
+highly recommended.
+
+
+File: tlbuild.info, Node: install-tl REFERENCES, Next: install-tl OPTIONS, Prev: install-tl DESCRIPTION, Up: install-tl
+
+A.4 REFERENCES
+==============
+
+Post-installation configuration, package updates, and much more, are
+handled through *tlmgr*(1), the TeX Live Manager
+(<http://tug.org/texlive/tlmgr.html>).
+
+ The most up-to-date version of this documentation is on the Internet
+at <http://tug.org/texlive/doc/install-tl.html>.
+
+ For the full documentation of TeX Live, see
+<http://tug.org/texlive/doc>.
+
+
+File: tlbuild.info, Node: install-tl OPTIONS, Next: install-tl ENVIRONMENT VARIABLES, Prev: install-tl REFERENCES, Up: install-tl
+
+A.5 OPTIONS
+===========
+
+As usual, all options can be specified in any order, and with either a
+leading '-' or '--'. An argument value can be separated from its option
+by either a space or '='.
+
+*-gui* [[=]_module_]
+
+ If no _module_ is given starts the 'perltk' (see below) GUI
+ installer.
+
+ If _module_ is given loads the given installer module. Currently
+ the following modules are supported:
+
+ 'text'
+
+ The text mode user interface (default on Unix systems). Same
+ as the '-no-gui' option.
+
+ 'wizard'
+
+ The wizard mode user interface (default on Windows), asking
+ only minimal questions before installing all of TeX Live.
+
+ 'perltk'
+
+ The expert GUI installer, providing access to more options.
+ Can also be invoked on Windows by running
+ 'install-tl-advanced.bat'.
+
+ The 'perltk' and 'wizard' modules, and thus also when calling with
+ a bare '-gui' (without _module_), requires the Perl/Tk module
+ (<http://tug.org/texlive/distro.html#perltk>); if Perl/Tk is not
+ available, installation continues in text mode.
+
+*-no-gui*
+
+ Use the text mode installer (default except on Windows).
+
+*-lang* _llcode_
+
+ By default, the GUI tries to deduce your language from the
+ environment (on Windows via the registry, on Unix via
+ 'LC_MESSAGES'). If that fails you can select a different language
+ by giving this option with a language code (based on ISO 639-1).
+ Currently supported (but not necessarily completely translated)
+ are: English (en, default), Czech (cs), German (de), French (fr),
+ Italian (it), Japanese (ja), Dutch (nl), Polish (pl), Brazilian
+ Portuguese (pt_BR), Russian (ru), Slovak (sk), Slovenian (sl),
+ Serbian (sr), Ukrainian (uk), Vietnamese (vi), simplified Chinese
+ (zh_CN), and traditional Chinese (zh_TW).
+
+*-repository* _url|path_
+
+ Specify the package repository to be used as the source of the
+ installation, either a local directory via '/path/to/directory' or
+ a 'file:/' url, or a network location via a 'http://' or 'ftp://'
+ url. (No other protocols are supported.)
+
+ The default is to pick a mirror automatically, using
+ <http://mirror.ctan.org/systems/texlive/tlnet>; the chosen mirror
+ is used for the entire download. You can use the special argument
+ 'ctan' as an abbreviation for this. See <http://ctan.org> for more
+ about CTAN and its mirrors.
+
+ If the repository is on the network, trailing '/' characters and/or
+ trailing '/tlpkg' and '/archive' components are ignored. For
+ example, you could choose a particular CTAN mirror with something
+ like this:
+
+ -repository http://ctan.example.org/its/ctan/dir/systems/texlive/tlnet
+
+ Of course a real hostname and its particular top-level CTAN path
+ have to be specified. The list of CTAN mirrors is available at
+ <http://ctan.org/mirrors>.
+
+ If the repository is local, the installation type (compressed or
+ live) is automatically determined, by checking for the presence of
+ a 'archive' directory relative to the root. Compressed is
+ preferred if both are available, since it is faster. Here's an
+ example of using a local directory:
+
+ -repository /local/TL/repository
+
+ After installation is complete, you can use that installation as
+ the repository for another installation. If you chose to install
+ less than the full scheme containing all packages, the list of
+ available schemes will be adjusted accordingly.
+
+ For backward compatibility and convenience, '--location' and
+ '--repo' are accepted as aliases for this option.
+
+*-select-repository*
+
+ This option allows manual selection of a mirror from the current
+ list of active CTAN mirrors. This option is supported in all
+ installer modes (text, wizard, perltk), and will also offer to
+ install from local media if available, or from a repository
+ specified on the command line (see above). It's useful when the
+ (default) automatic redirection does not choose a good host for
+ you.
+
+*-all-options*
+
+ Normally options not relevant to the current platform are not shown
+ (i.e., when running on Unix, Windows-specific options are omitted).
+ Giving this command line option allows configuring settings in the
+ final 'texlive.tlpdb' that do not have any immediate effect.
+
+*-custom-bin* _path_
+
+ If you have built your own set of TeX Live binaries (perhaps
+ because your platform was not supported by TeX Live out of the
+ box), this option allows you to specify the _path_ to a directory
+ where the binaries for the current system are present. The
+ installation will continue as usual, but at the end all files from
+ _path_ are copied over to 'bin/custom/' under your installation
+ directory and this 'bin/custom/' directory is what will be added to
+ the path for the post-install actions. (By the way, for
+ information on building TeX Live, see
+ <http://tug.org/texlive/build.html>).
+
+*-debug-translation*
+
+ In GUI mode, this switch makes 'tlmgr' report any missing, or more
+ likely untranslated, messages to standard error. Helpful for
+ translators to see what remains to be done.
+
+*-force-platform* _platform_
+
+ Instead of auto-detecting the current platform, use _platform_.
+ Binaries for this platform must be present and they must actually
+ be runnable, or installation will fail. '-force-arch' is a
+ synonym.
+
+*-help*, *-help*, *-?*
+
+ Display this help and exit (on the web via
+ <http://tug.org/texlive/doc/install-tl.html>). Sometimes the
+ 'perldoc' and/or 'PAGER' programs on the system have problems,
+ possibly resulting in control characters being literally output.
+ This can't always be detected, but you can set the 'NOPERLDOC'
+ environment variable and 'perldoc' will not be used.
+
+*-in-place*
+
+ This is a quick-and-dirty installation option in case you already
+ have an rsync or svn checkout of TeX Live. It will use the
+ checkout as-is and will just do the necessary post-install. Be
+ warned that the file 'tlpkg/texlive.tlpdb' may be rewritten, that
+ removal has to be done manually, and that the only realistic way to
+ maintain this installation is to redo it from time to time. This
+ option is not available via the installer interfaces. USE AT YOUR
+ OWN RISK.
+
+*-logfile* _file_
+
+ Write both all messages (informational, debugging, warnings) to
+ _file_, in addition to standard output or standard error.
+
+ If this option is not given, the installer will create a log file
+ in the root of the writable installation tree, for example,
+ '/usr/local/texlive/YYYY/install-tl.log' for the _YYYY_ release.
+
+*-no-cls*
+
+ (only for text mode installer) do not clear the screen when
+ entering a new menu (for debugging purposes).
+
+*-non-admin*
+
+ For Windows only: configure for the current user, not for all
+ users.
+
+*-persistent-downloads*
+
+*-no-persistent-downloads*
+
+ For network installs, activating this option makes the installer
+ try to set up a persistent connection using the 'Net::LWP' Perl
+ module. This opens only one connection between your computer and
+ the server per session and reuses it, instead of initiating a new
+ download for each package, which typically yields a significant
+ speed-up.
+
+ This option is turned on by default, and the installation program
+ will fall back to using 'wget' if this is not possible. To disable
+ usage of LWP and persistent connections, use
+ '--no-persistent-downloads'.
+
+*-portable*
+
+ Install for portable use, e.g., on a USB stick. Also selectable
+ from within the perltk and text installers.
+
+*-print-platform*
+
+ Print the TeX Live identifier for the detected platform
+ (hardware/operating system) combination to standard output, and
+ exit. '-print-arch' is a synonym.
+
+*-profile* _profile_
+
+ Load the file _profile_ and do the installation with no user
+ interaction, that is, a batch (unattended) install.
+
+ A _profile_ file contains all the values needed to perform an
+ installation. After a normal installation has finished, a profile
+ for that exact installation is written to the file
+ DEST/tlpkg/texlive.profile. That file can be given as the argument
+ to '-profile' to redo the exact same installation on a different
+ system, for example. Alternatively, you can use a custom profile,
+ most easily created by starting from a generated one and changing
+ values, or an empty file, which will take all the defaults.
+
+ Normally a profile has to specify the value '1' for each collection
+ to be installed, even if the scheme is specified. This follows
+ from the logic of the installer in that you can first select a
+ scheme and then change the collections being installed. But for
+ convenience there is an exception to this within profiles: If the
+ profile contains a variable for 'selected_scheme' and _no_
+ collection variables at all are defined in the profile, then the
+ collections which the specified scheme requires are installed.
+
+ Thus, a line 'selected_scheme scheme-medium' together with the
+ definitions of the installation directories ('TEXDIR', 'TEXMFHOME',
+ 'TEXMFLOCAL', 'TEXMFSYSCONFIG', 'TEXMFSYSVAR') suffices to install
+ the medium scheme with all default options.
+
+*-q*
+
+ Omit normal informational messages.
+
+*-scheme* _scheme_
+
+ Schemes are the highest level of package grouping in TeX Live; the
+ default is to use the 'full' scheme, which includes everything.
+ This option overrides that default. You can change the scheme
+ again before the actual installation with the usual menu. The
+ _scheme_ argument may optionally have a prefix 'scheme-'. The list
+ of supported scheme names depends on what your package repository
+ provides; see the interactive menu list.
+
+*-v*
+
+ Include verbose debugging messages; repeat for maximum debugging,
+ as in '-v -v'. (Further repeats are accepted but ignored.)
+
+*-version*, *-version*
+
+ Output version information and exit. If '-v' has also been given
+ the revisions of the used modules are reported, too.
+
+
+File: tlbuild.info, Node: install-tl ENVIRONMENT VARIABLES, Next: install-tl AUTHORS AND COPYRIGHT, Prev: install-tl OPTIONS, Up: install-tl
+
+A.6 ENVIRONMENT VARIABLES
+=========================
+
+For ease in scripting and debugging, 'install-tl' will look for the
+following environment variables. They are not of interest in normal
+user installations.
+
+'TEXLIVE_INSTALL_ENV_NOCHECK'
+
+ Omit the check for environment variables containing the string
+ 'tex'. People developing TeX-related software are likely to have
+ many such variables.
+
+'TEXLIVE_INSTALL_NO_CONTEXT_CACHE'
+
+ Omit creating the ConTeXt cache. This is useful for
+ redistributors.
+
+'TEXLIVE_INSTALL_PREFIX'
+
+'TEXLIVE_INSTALL_TEXMFCONFIG'
+
+'TEXLIVE_INSTALL_TEXMFHOME'
+
+'TEXLIVE_INSTALL_TEXMFLOCAL'
+
+'TEXLIVE_INSTALL_TEXMFSYSCONFIG'
+
+'TEXLIVE_INSTALL_TEXMFSYSVAR'
+
+'TEXLIVE_INSTALL_TEXMFVAR'
+
+ Specify the respective directories.
+
+'NOPERLDOC'
+
+ Don't try to run the '--help' message through 'perldoc'.
+
+
+File: tlbuild.info, Node: install-tl AUTHORS AND COPYRIGHT, Prev: install-tl ENVIRONMENT VARIABLES, Up: install-tl
+
+A.7 AUTHORS AND COPYRIGHT
+=========================
+
+This script and its documentation were written for the TeX Live
+distribution (<http://tug.org/texlive>) and both are licensed under the
+GNU General Public License Version 2 or later.
+
+
+File: tlbuild.info, Node: tlmgr, Next: Index, Prev: install-tl, Up: Top
+
+Appendix B tlmgr
+****************
+
+* Menu:
+
+* tlmgr NAME::
+* tlmgr SYNOPSIS::
+* tlmgr DESCRIPTION::
+* tlmgr EXAMPLES::
+* tlmgr OPTIONS::
+* tlmgr ACTIONS::
+* tlmgr USER MODE::
+* tlmgr CONFIGURATION FILE FOR TLMGR::
+* tlmgr TAXONOMIES::
+* tlmgr MULTIPLE REPOSITORIES::
+* tlmgr GUI FOR TLMGR::
+* tlmgr MACHINE-READABLE OUTPUT::
+* tlmgr AUTHORS AND COPYRIGHT::
+
+
+File: tlbuild.info, Node: tlmgr NAME, Next: tlmgr SYNOPSIS, Up: tlmgr
+
+B.1 NAME
+========
+
+tlmgr - the TeX Live Manager
+
+
+File: tlbuild.info, Node: tlmgr SYNOPSIS, Next: tlmgr DESCRIPTION, Prev: tlmgr NAME, Up: tlmgr
+
+B.2 SYNOPSIS
+============
+
+tlmgr [_option_]... _action_ [_option_]... [_operand_]...
+
+
+File: tlbuild.info, Node: tlmgr DESCRIPTION, Next: tlmgr EXAMPLES, Prev: tlmgr SYNOPSIS, Up: tlmgr
+
+B.3 DESCRIPTION
+===============
+
+*tlmgr* manages an existing TeX Live installation, both packages and
+configuration options. For information on initially downloading and
+installing TeX Live, see <http://tug.org/texlive/acquire.html>.
+
+ The most up-to-date version of this documentation (updated nightly
+from the development sources) is available at
+<http://tug.org/texlive/tlmgr.html>, along with procedures for updating
+'tlmgr' itself and information about test versions.
+
+ TeX Live is organized into a few top-level _schemes_, each of which
+is specified as a different set of _collections_ and _packages_, where a
+collection is a set of packages, and a package is what contains actual
+files. Schemes typically contain a mix of collections and packages, but
+each package is included in exactly one collection, no more and no less.
+A TeX Live installation can be customized and managed at any level.
+
+ See <http://tug.org/texlive/doc> for all the TeX Live documentation
+available.
+
+
+File: tlbuild.info, Node: tlmgr EXAMPLES, Next: tlmgr OPTIONS, Prev: tlmgr DESCRIPTION, Up: tlmgr
+
+B.4 EXAMPLES
+============
+
+After successfully installing TeX Live, here are a few common operations
+with 'tlmgr':
+
+'tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet'
+
+ Tell 'tlmgr' to use a nearby CTAN mirror for future updates; useful
+ if you installed TeX Live from the DVD image and want continuing
+ updates.
+
+'tlmgr update --list'
+
+ Report what would be updated without actually updating anything.
+
+'tlmgr update --all'
+
+ Make your local TeX installation correspond to what is in the
+ package repository (typically useful when updating from CTAN).
+
+'tlmgr info' _pkg_
+
+ Display detailed information about _pkg_, such as the installation
+ status and description.
+
+ For all the capabilities and details of 'tlmgr', please read the
+following voluminous information.
+
+
+File: tlbuild.info, Node: tlmgr OPTIONS, Next: tlmgr ACTIONS, Prev: tlmgr EXAMPLES, Up: tlmgr
+
+B.5 OPTIONS
+===========
+
+The following options to 'tlmgr' are global options, not specific to any
+action. All options, whether global or action-specific, can be given
+anywhere on the command line, and in any order. The first non-option
+argument will be the main action. In all cases, '--'_option_ and
+'-'_option_ are equivalent, and an '=' is optional between an option
+name and its value.
+
+*-repository* _url|path_
+
+ Specifies the package repository from which packages should be
+ installed or updated, overriding the default package repository
+ found in the installation's TeX Live Package Database (a.k.a. the
+ TLPDB, defined entirely in the file 'tlpkg/texlive.tlpdb'). The
+ documentation for 'install-tl' has more details about this
+ (<http://tug.org/texlive/doc/install-tl.html>).
+
+ '--repository' changes the repository location only for the current
+ run; to make a permanent change, use 'option repository' (see the
+ *note option: tlmgr option. action).
+
+ For backward compatibility and convenience, '--location' and
+ '--repo' are accepted as aliases for this option.
+
+*-gui* [_action_]
+
+ 'tlmgr' has a graphical interface as well as the command line
+ interface. You can give this option, '--gui', together with an
+ action to be brought directly into the respective screen of the
+ GUI. For example, running
+
+ tlmgr --gui update
+
+ starts you directly at the update screen. If no action is given,
+ the GUI will be started at the main screen.
+
+*-gui-lang* _llcode_
+
+ By default, the GUI tries to deduce your language from the
+ environment (on Windows via the registry, on Unix via
+ 'LC_MESSAGES'). If that fails you can select a different language
+ by giving this option with a language code (based on ISO 639-1).
+ Currently supported (but not necessarily completely translated)
+ are: English (en, default), Czech (cs), German (de), French (fr),
+ Italian (it), Japanese (ja), Dutch (nl), Polish (pl), Brazilian
+ Portuguese (pt_BR), Russian (ru), Slovak (sk), Slovenian (sl),
+ Serbian (sr), Ukrainian (uk), Vietnamese (vi), simplified Chinese
+ (zh_CN), and traditional Chinese (zh_TW).
+
+*-debug-translation*
+
+ In GUI mode, this switch tells 'tlmgr' to report any untranslated
+ (or missing) messages to standard error. This can help translators
+ to see what remains to be done.
+
+*-machine-readable*
+
+ Instead of the normal output intended for human consumption, write
+ (to standard output) a fixed format more suitable for machine
+ parsing. See the *note MACHINE-READABLE OUTPUT: tlmgr
+ MACHINE-READABLE OUTPUT. section below.
+
+*-no-execute-actions*
+
+ Suppress the execution of the execute actions as defined in the
+ tlpsrc files. Documented only for completeness, as this is only
+ useful in debugging.
+
+*-package-logfile* _file_
+
+ 'tlmgr' logs all package actions (install, remove, update, failed
+ updates, failed restores) to a separate log file, by default
+ 'TEXMFSYSVAR/web2c/tlmgr.log'. This option allows you to specific
+ a different file for the log.
+
+*-pause*
+
+ This option makes 'tlmgr' wait for user input before exiting.
+ Useful on Windows to avoid disappearing command windows.
+
+*-persistent-downloads*
+
+*-no-persistent-downloads*
+
+ For network-based installations, this option (on by default) makes
+ 'tlmgr' try to set up a persistent connection (using the 'LWP' Perl
+ module). The idea is to open and reuse only one connection per
+ session between your computer and the server, instead of initiating
+ a new download for each package.
+
+ If this is not possible, 'tlmgr' will fall back to using 'wget'.
+ To disable these persistent connections, use
+ '--no-persistent-downloads'.
+
+*-pin-file*
+
+ Change the pinning file location from
+ 'TEXMFLOCAL/tlpkg/pinning.txt' (see *note Pinning: tlmgr Pinning.
+ below). Documented only for completeness, as this is only useful
+ in debugging.
+
+*-usermode*
+
+ Activates user mode for this run of 'tlmgr'; see *note USER MODE:
+ tlmgr USER MODE. below.
+
+*-usertree* _dir_
+
+ Uses _dir_ for the tree in user mode; see *note USER MODE: tlmgr
+ USER MODE. below.
+
+ The standard options for TeX Live programs are also accepted:
+'--help/-h/-?', '--version', '-q' (no informational messages), '-v'
+(debugging messages, can be repeated). For the details about these, see
+the 'TeXLive::TLUtils' documentation.
+
+ The '--version' option shows version information about the TeX Live
+release and about the 'tlmgr' script itself. If '-v' is also given,
+revision number for the loaded TeX Live Perl modules are shown, too.
+
+
+File: tlbuild.info, Node: tlmgr ACTIONS, Next: tlmgr USER MODE, Prev: tlmgr OPTIONS, Up: tlmgr
+
+B.6 ACTIONS
+===========
+
+* Menu:
+
+* tlmgr help::
+* tlmgr version::
+* tlmgr backup [--clean[=_N_]] [--backupdir _dir_] [--all | _pkg_]...::
+* tlmgr candidates _pkg_::
+* tlmgr check [_option_]... [files|depends|executes|runfiles|all]::
+* tlmgr conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]::
+* tlmgr dump-tlpdb [--local|--remote]::
+* tlmgr generate [_option_]... _what_::
+* tlmgr gui::
+* tlmgr info [_option_...] [collections|schemes|_pkg_...]::
+* tlmgr init-usertree::
+* tlmgr install [_option_]... _pkg_...::
+* tlmgr option::
+* tlmgr paper::
+* tlmgr path [--w32mode=user|admin] [add|remove]::
+* tlmgr pinning::
+* tlmgr platform list|add|remove _platform_...::
+* tlmgr platform set _platform_::
+* tlmgr platform set auto::
+* tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [_pkg_]...::
+* tlmgr print-platform::
+* tlmgr restore [--backupdir _dir_] [--all | _pkg_ [_rev_]]::
+* tlmgr remove [_option_]... _pkg_...::
+* tlmgr repository::
+* tlmgr search [_option_...] _what_::
+* tlmgr uninstall::
+* tlmgr update [_option_]... [_pkg_]...::
+
+
+File: tlbuild.info, Node: tlmgr help, Next: tlmgr version, Up: tlmgr ACTIONS
+
+B.6.1 help
+----------
+
+Display this help information and exit (same as '--help', and on the web
+at <http://tug.org/texlive/doc/tlmgr.html>). Sometimes the 'perldoc'
+and/or 'PAGER' programs on the system have problems, resulting in
+control characters being literally output. This can't always be
+detected, but you can set the 'NOPERLDOC' environment variable and
+'perldoc' will not be used.
+
+
+File: tlbuild.info, Node: tlmgr version, Next: tlmgr backup [--clean[=_N_]] [--backupdir _dir_] [--all | _pkg_]..., Prev: tlmgr help, Up: tlmgr ACTIONS
+
+B.6.2 version
+-------------
+
+Gives version information (same as '--version').
+
+ If '-v' has been given the revisions of the used modules are
+reported, too.
+
+
+File: tlbuild.info, Node: tlmgr backup [--clean[=_N_]] [--backupdir _dir_] [--all | _pkg_]..., Next: tlmgr candidates _pkg_, Prev: tlmgr version, Up: tlmgr ACTIONS
+
+B.6.3 backup [-clean[=_N_]] [-backupdir _dir_] [-all | _pkg_]...
+----------------------------------------------------------------
+
+If the '--clean' option is not specified, this action makes a backup of
+the given packages, or all packages given '--all'. These backups are
+saved to the value of the '--backupdir' option, if that is an existing
+and writable directory. If '--backupdir' is not given, the 'backupdir'
+option setting in the TLPDB is used, if present. If both are missing,
+no backups are made.
+
+ If the '--clean' option is specified, backups are pruned (removed)
+instead of saved. The optional integer value _N_ may be specified to
+set the number of backups that will be retained when cleaning. If 'N'
+is not given, the value of the 'autobackup' option is used. If both are
+missing, an error is issued. For more details of backup pruning, see
+the 'option' action.
+
+ Options:
+
+*-backupdir* _directory_
+
+ Overrides the 'backupdir' option setting in the TLPDB. The
+ _directory_ argument is required and must specify an existing,
+ writable directory where backups are to be placed.
+
+*-all*
+
+ If '--clean' is not specified, make a backup of all packages in the
+ TeX Live installation; this will take quite a lot of space and
+ time. If '--clean' is specified, all packages are pruned.
+
+*-clean*[=_N_]
+
+ Instead of making backups, prune the backup directory of old
+ backups, as explained above. The optional integer argument _N_
+ overrides the 'autobackup' option set in the TLPDB. You must use
+ '--all' or a list of packages together with this option, as
+ desired.
+
+*-dry-run*
+
+ Nothing is actually backed up or removed; instead, the actions to
+ be performed are written to the terminal.
+
+
+File: tlbuild.info, Node: tlmgr candidates _pkg_, Next: tlmgr check [_option_]... [files|depends|executes|runfiles|all], Prev: tlmgr backup [--clean[=_N_]] [--backupdir _dir_] [--all | _pkg_]..., Up: tlmgr ACTIONS
+
+B.6.4 candidates _pkg_
+----------------------
+
+*candidates _pkg_*
+
+ Shows the available candidate repositories for package _pkg_. See
+ *note MULTIPLE REPOSITORIES: tlmgr MULTIPLE REPOSITORIES. below.
+
+
+File: tlbuild.info, Node: tlmgr check [_option_]... [files|depends|executes|runfiles|all], Next: tlmgr conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]], Prev: tlmgr candidates _pkg_, Up: tlmgr ACTIONS
+
+B.6.5 check [_option_]... [files|depends|executes|runfiles|all]
+---------------------------------------------------------------
+
+Executes one (or all) check(s) on the consistency of the installation.
+
+*files*
+
+ Checks that all files listed in the local TLPDB ('texlive.tlpdb')
+ are actually present, and lists those missing.
+
+*depends*
+
+ Lists those packages which occur as dependencies in an installed
+ collections, but are themselves not installed, and those packages
+ that are not contained in any collection.
+
+ If you call 'tlmgr check collections' this test will be carried out
+ instead since former versions for 'tlmgr' called it that way.
+
+*executes*
+
+ Check that the files referred to by 'execute' directives in the TeX
+ Live Database are present.
+
+*runfiles*
+
+ List those filenames that are occurring more than one time in the
+ runfiles.
+
+ Options:
+
+*-use-svn*
+
+ Use the output of 'svn status' instead of listing the files; for
+ checking the TL development repository.
+
+
+File: tlbuild.info, Node: tlmgr conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]], Next: tlmgr dump-tlpdb [--local|--remote], Prev: tlmgr check [_option_]... [files|depends|executes|runfiles|all], Up: tlmgr ACTIONS
+
+B.6.6 conf [texmf|tlmgr|updmap [-conffile _file_] [-delete] [_key_ [_value_]]]
+------------------------------------------------------------------------------
+
+With only 'conf', show general configuration information for TeX Live,
+including active configuration files, path settings, and more. This is
+like the 'texconfig conf' call, but works on all supported platforms.
+
+ With either 'conf texmf', 'conf tlmgr', or 'conf updmap' given in
+addition, shows all key/value pairs (i.e., all settings) as saved in
+'ROOT/texmf.cnf', the tlmgr configuration file (see below), or the first
+found (via kpsewhich) 'updmap.cfg' file, respectively.
+
+ If _key_ is given in addition, shows the value of only that _key_ in
+the respective file. If option _-delete_ is also given, the
+configuration file - it is removed, not just commented out!
+
+ If _value_ is given in addition, _key_ is set to _value_ in the
+respective file. _No error checking is done!_
+
+ In all cases the file used can be explicitly specified via the option
+'--conffile _file_', in case one wants to operate on a different file.
+
+ Practical application: if the execution of (some or all) system
+commands via '\write18' was left enabled during installation, you can
+disable it afterwards:
+
+ tlmgr conf texmf shell_escape 0
+
+ A more complicated example: the 'TEXMFHOME' tree (see the main TeX
+Live guide, <http://tug.org/texlive/doc.html>) can be set to multiple
+directories, but they must be enclosed in braces and separated by
+commas, so quoting the value to the shell is a good idea. Thus:
+
+ tlmgr conf texmf TEXMFHOME "{~/texmf,~/texmfbis}"
+
+ Warning: The general facility is here, but tinkering with settings in
+this way is very strongly discouraged. Again, no error checking on
+either keys or values is done, so any sort of breakage is possible.
+
+
+File: tlbuild.info, Node: tlmgr dump-tlpdb [--local|--remote], Next: tlmgr generate [_option_]... _what_, Prev: tlmgr conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]], Up: tlmgr ACTIONS
+
+B.6.7 dump-tlpdb [-local|-remote]
+---------------------------------
+
+Dump complete local or remote TLPDB to standard output, as-is. The
+output is analogous to the '--machine-readable' output; see *note
+MACHINE-READABLE OUTPUT: tlmgr MACHINE-READABLE OUTPUT. section.
+
+ Options:
+
+*-local*
+
+ Dump the local tlpdb.
+
+*-remote*
+
+ Dump the remote tlpdb.
+
+ Exactly one of '--local' and '--remote' must be given.
+
+ In either case, the first line of the output specifies the repository
+location, in this format:
+
+ "location-url" "\t" location
+
+ where 'location-url' is the literal field name, followed by a tab,
+and _location_ is the file or url to the repository.
+
+ Line endings may be either LF or CRLF depending on the current
+platform.
+
+
+File: tlbuild.info, Node: tlmgr generate [_option_]... _what_, Next: tlmgr gui, Prev: tlmgr dump-tlpdb [--local|--remote], Up: tlmgr ACTIONS
+
+B.6.8 generate [_option_]... _what_
+-----------------------------------
+
+*generate language*
+
+*generate language.dat*
+
+*generate language.def*
+
+*generate language.dat.lua*
+
+*generate fmtutil*
+
+ The 'generate' action overwrites any manual changes made in the
+respective files: it recreates them from scratch based on the
+information of the installed packages, plus local adaptions. The TeX
+Live installer and 'tlmgr' routinely call 'generate' for all of these
+files.
+
+ For managing your own fonts, please read the 'updmap --help'
+information and/or <http://tug.org/fonts/fontinstall.html>.
+
+ In more detail: 'generate' remakes any of the configuration files
+'language.dat', 'language.def', 'language.dat.lua', and 'fmtutil.cnf',
+from the information present in the local TLPDB, plus locally-maintained
+files.
+
+ The locally-maintained files are 'language-local.dat',
+'language-local.def', 'language-local.dat.lua', or 'fmtutil-local.cnf',
+searched for in 'TEXMFLOCAL' in the respective directories. If local
+additions are present, the final file is made by starting with the main
+file, omitting any entries that the local file specifies to be disabled,
+and finally appending the local file.
+
+ (Historical note: The formerly supported 'updmap-local.cfg' is no
+longer read, since 'updmap' now supports multiple 'updmap.cfg' files.
+Thus, local additions can and should be put into an 'updmap.cfg' file in
+'TEXMFLOCAL'. The 'generate updmap' action no longer exists.)
+
+ Local files specify entries to be disabled with a comment line,
+namely one of these:
+
+ #!NAME
+ %!NAME
+ --!NAME
+
+ where 'fmtutil.cnf' uses '#', 'language.dat' and 'language.def' use
+'%', and 'language.dat.lua' use '--'. In all cases, the _name_ is the
+respective format name or hyphenation pattern identifier. Examples:
+
+ #!pdflatex
+ %!german
+ --!usenglishmax
+
+ (Of course, you're not likely to actually want to disable those
+particular items. They're just examples.)
+
+ After such a disabling line, the local file can include another entry
+for the same item, if a different definition is desired. In general,
+except for the special disabling lines, the local files follow the same
+syntax as the master files.
+
+ The form 'generate language' recreates all three files
+'language.dat', 'language.def', and 'language.dat.lua', while the forms
+with an extension recreates only that given language file.
+
+ Options:
+
+*-dest* _output_file_
+
+ specifies the output file (defaults to the respective location in
+ 'TEXMFSYSVAR'). If '--dest' is given to 'generate language', it
+ serves as a basename onto which '.dat' will be appended for the
+ name of the 'language.dat' output file, '.def' will be appended to
+ the value for the name of the 'language.def' output file, and
+ '.dat.lua' to the name of the 'language.dat.lua' file. (This is
+ just to avoid overwriting; if you want a specific name for each
+ output file, we recommend invoking 'tlmgr' twice.)
+
+*-localcfg* _local_conf_file_
+
+ specifies the (optional) local additions (defaults to the
+ respective location in 'TEXMFLOCAL').
+
+*-rebuild-sys*
+
+ tells tlmgr to run necessary programs after config files have been
+ regenerated. These are: 'fmtutil-sys --all' after 'generate
+ fmtutil', 'fmtutil-sys --byhyphen .../language.dat' after 'generate
+ language.dat', and 'fmtutil-sys --byhyphen .../language.def' after
+ 'generate language.def'.
+
+ These subsequent calls cause the newly-generated files to actually
+ take effect. This is not done by default since those calls are
+ lengthy processes and one might want to made several related
+ changes in succession before invoking these programs.
+
+ The respective locations are as follows:
+
+ tex/generic/config/language.dat (and language-local.dat);
+ tex/generic/config/language.def (and language-local.def);
+ tex/generic/config/language.dat.lua (and language-local.dat.lua);
+ web2c/fmtutil.cnf (and fmtutil-local.cnf);
+
+
+File: tlbuild.info, Node: tlmgr gui, Next: tlmgr info [_option_...] [collections|schemes|_pkg_...], Prev: tlmgr generate [_option_]... _what_, Up: tlmgr ACTIONS
+
+B.6.9 gui
+---------
+
+Start the graphical user interface. See *GUI* below.
+
+
+File: tlbuild.info, Node: tlmgr info [_option_...] [collections|schemes|_pkg_...], Next: tlmgr init-usertree, Prev: tlmgr gui, Up: tlmgr ACTIONS
+
+B.6.10 info [_option_...] [collections|schemes|_pkg_...]
+--------------------------------------------------------
+
+With no argument, lists all packages available at the package
+repository, prefixing those already installed with 'i'.
+
+ With the single word 'collections' or 'schemes' as the argument,
+lists the request type instead of all packages.
+
+ With any other arguments, display information about _pkg_: the name,
+category, short and long description, installation status, and TeX Live
+revision number. If _pkg_ is not locally installed, searches in the
+remote installation source.
+
+ It also displays information taken from the TeX Catalogue, namely the
+package version, date, and license. Consider these, especially the
+package version, as approximations only, due to timing skew of the
+updates of the different pieces. By contrast, the 'revision' value
+comes directly from TL and is reliable.
+
+ The former actions 'show' and 'list' are merged into this action, but
+are still supported for backward compatibility.
+
+ Options:
+
+*-list*
+
+ If the option '--list' is given with a package, the list of
+ contained files is also shown, including those for
+ platform-specific dependencies. When given with schemes and
+ collections, '--list' outputs their dependencies in a similar way.
+
+*-only-installed*
+
+ If this options is given, the installation source will not be used;
+ only locally installed packages, collections, or schemes are
+ listed. (Does not work for listing of packages for now)
+
+*-taxonomy*
+
+*-keyword*
+
+*-functionality*
+
+*-characterization*
+
+ In addition to the normal data displayed, also display information
+ for given packages from the corresponding taxonomy (or all of
+ them). See *note TAXONOMIES: tlmgr TAXONOMIES. below for details.
+
+
+File: tlbuild.info, Node: tlmgr init-usertree, Next: tlmgr install [_option_]... _pkg_..., Prev: tlmgr info [_option_...] [collections|schemes|_pkg_...], Up: tlmgr ACTIONS
+
+B.6.11 init-usertree
+--------------------
+
+Sets up a texmf tree for so-called user mode management, either the
+default user tree ('TEXMFHOME'), or one specified on the command line
+with '--usertree'. See *note USER MODE: tlmgr USER MODE. below.
+
+
+File: tlbuild.info, Node: tlmgr install [_option_]... _pkg_..., Next: tlmgr option, Prev: tlmgr init-usertree, Up: tlmgr ACTIONS
+
+B.6.12 install [_option_]... _pkg_...
+-------------------------------------
+
+Install each _pkg_ given on the command line. By default this installs
+all packages on which the given _pkg_s are dependent, also. Options:
+
+*-file*
+
+ Instead of fetching a package from the installation repository, use
+ the package files given on the command line. These files must be
+ standard TeX Live package files (with contained tlpobj file).
+
+*-reinstall*
+
+ Reinstall a package (including dependencies for collections) even
+ if it already seems to be installed (i.e, is present in the TLPDB).
+ This is useful to recover from accidental removal of files in the
+ hierarchy.
+
+ When re-installing, only dependencies on normal packages are
+ followed (i.e., not those of category Scheme or Collection).
+
+*-no-depends*
+
+ Do not install dependencies. (By default, installing a package
+ ensures that all dependencies of this package are fulfilled.)
+
+*-no-depends-at-all*
+
+ Normally, when you install a package which ships binary files the
+ respective binary package will also be installed. That is, for a
+ package 'foo', the package 'foo.i386-linux' will also be installed
+ on an 'i386-linux' system. This option suppresses this behavior,
+ and also implies '--no-depends'. Don't use it unless you are sure
+ of what you are doing.
+
+*-dry-run*
+
+ Nothing is actually installed; instead, the actions to be performed
+ are written to the terminal.
+
+*-force*
+
+ If updates to 'tlmgr' itself (or other parts of the basic
+ infrastructure) are present, 'tlmgr' will bail out and not perform
+ the installation unless this option is given. Not recommended.
+
+
+File: tlbuild.info, Node: tlmgr option, Next: tlmgr paper, Prev: tlmgr install [_option_]... _pkg_..., Up: tlmgr ACTIONS
+
+B.6.13 option
+-------------
+
+*option [show]*
+
+*option showall*
+
+*option _key_ [_value_]*
+
+ The first form shows the global TeX Live settings currently saved in
+the TLPDB with a short description and the 'key' used for changing it in
+parentheses.
+
+ The second form is similar, but also shows options which can be
+defined but are not currently set to any value.
+
+ In the third form, if _value_ is not given, the setting for _key_ is
+displayed. If _value_ is present, _key_ is set to _value_.
+
+ Possible values for _key_ are (run 'tlmgr option showall' for the
+definitive list):
+
+ repository (default package repository),
+ formats (create formats at installation time),
+ postcode (run postinst code blobs)
+ docfiles (install documentation files),
+ srcfiles (install source files),
+ backupdir (default directory for backups),
+ autobackup (number of backups to keep).
+ sys_bin (directory to which executables are linked by the path action)
+ sys_man (directory to which man pages are linked by the path action)
+ sys_info (directory to which Info files are linked by the path action)
+ desktop_integration (Windows-only: create Start menu shortcuts)
+ fileassocs (Windows-only: change file associations)
+ multiuser (Windows-only: install for all users)
+
+ One common use of 'option' is to permanently change the installation
+to get further updates from the Internet, after originally installing
+from DVD. To do this, you can run
+
+ tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet
+
+ The 'install-tl' documentation has more information about the
+possible values for 'repository'. (For backward compatibility,
+'location' can be used as alternative name for 'repository'.)
+
+ If 'formats' is set (this is the default), then formats are
+regenerated when either the engine or the format files have changed.
+Disable this only when you know what you are doing.
+
+ The 'postcode' option controls execution of per-package
+postinstallation action code. It is set by default, and again disabling
+is not likely to be of interest except perhaps to developers.
+
+ The 'docfiles' and 'srcfiles' options control the installation of
+their respective files of a package. By default both are enabled (1).
+This can be disabled (set to 0) if disk space is (very) limited.
+
+ The options 'autobackup' and 'backupdir' determine the defaults for
+the actions 'update', 'backup' and 'restore'. These three actions need
+a directory in which to read or write the backups. If '--backupdir' is
+not specified on the command line, the 'backupdir' option value is used
+(if set).
+
+ The 'autobackup' option (de)activates automatic generation of
+backups. Its value is an integer. If the 'autobackup' value is '-1',
+no backups are removed. If 'autobackup' is 0 or more, it specifies the
+number of backups to keep. Thus, backups are disabled if the value is
+0. In the '--clean' mode of the 'backup' action this option also
+specifies the number to be kept.
+
+ To setup 'autobackup' to '-1' on the command line, use:
+
+ tlmgr option -- autobackup -1
+
+ The '--' avoids having the '-1' treated as an option. ('--' stops
+parsing for options at the point where it appears; this is a general
+feature across most Unix programs.)
+
+ The 'sys_bin', 'sys_man', and 'sys_info' options are used on
+Unix-like systems to control the generation of links for executables,
+info files and man pages. See the 'path' action for details.
+
+ The last three options control behaviour on Windows installations.
+If 'desktop_integration' is set, then some packages will install items
+in a sub-folder of the Start menu for 'tlmgr gui', documentation, etc.
+If 'fileassocs' is set, Windows file associations are made (see also the
+'postaction' action). Finally, if 'multiuser' is set, then adaptions to
+the registry and the menus are done for all users on the system instead
+of only the current user. All three options are on by default.
+
+
+File: tlbuild.info, Node: tlmgr paper, Next: tlmgr path [--w32mode=user|admin] [add|remove], Prev: tlmgr option, Up: tlmgr ACTIONS
+
+B.6.14 paper
+------------
+
+*paper [a4|letter]*
+
+*[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|-list]*
+
+ With no arguments ('tlmgr paper'), shows the default paper size
+setting for all known programs.
+
+ With one argument (e.g., 'tlmgr paper a4'), sets the default for all
+known programs to that paper size.
+
+ With a program given as the first argument and no paper size
+specified (e.g., 'tlmgr dvips paper'), shows the default paper size for
+that program.
+
+ With a program given as the first argument and a paper size as the
+last argument (e.g., 'tlmgr dvips paper a4'), set the default for that
+program to that paper size.
+
+ With a program given as the first argument and '--list' given as the
+last argument (e.g., 'tlmgr dvips paper --list'), shows all valid paper
+sizes for that program. The first size shown is the default.
+
+ Incidentally, this syntax of having a specific program name before
+the 'paper' keyword is unusual. It is inherited from the longstanding
+'texconfig' script, which supports other configuration settings for some
+programs, notably 'dvips'. 'tlmgr' does not support those extra
+settings.
+
+
+File: tlbuild.info, Node: tlmgr path [--w32mode=user|admin] [add|remove], Next: tlmgr pinning, Prev: tlmgr paper, Up: tlmgr ACTIONS
+
+B.6.15 path [-w32mode=user|admin] [add|remove]
+----------------------------------------------
+
+On Unix, merely adds or removes symlinks for binaries, man pages, and
+info pages in the system directories specified by the respective options
+(see the *note option: tlmgr option. description above). Does not
+change any initialization files, either system or personal.
+
+ On Windows, the registry part where the binary directory is added or
+removed is determined in the following way:
+
+ If the user has admin rights, and the option '--w32mode' is not
+given, the setting _w32_multi_user_ determines the location (i.e., if it
+is on then the system path, otherwise the user path is changed).
+
+ If the user has admin rights, and the option '--w32mode' is given,
+this option determines the path to be adjusted.
+
+ If the user does not have admin rights, and the option '--w32mode' is
+not given, and the setting _w32_multi_user_ is off, the user path is
+changed, while if the setting _w32_multi_user_ is on, a warning is
+issued that the caller does not have enough privileges.
+
+ If the user does not have admin rights, and the option '--w32mode' is
+given, it must be *user* and the user path will be adjusted. If a user
+without admin rights uses the option '--w32mode admin' a warning is
+issued that the caller does not have enough privileges.
+
+
+File: tlbuild.info, Node: tlmgr pinning, Next: tlmgr platform list|add|remove _platform_..., Prev: tlmgr path [--w32mode=user|admin] [add|remove], Up: tlmgr ACTIONS
+
+B.6.16 pinning
+--------------
+
+The 'pinning' action manages the pinning file, see *note Pinning: tlmgr
+Pinning. below.
+
+'pinning show'
+
+ Shows the current pinning data.
+
+'pinning add' _repo_ _pkgglob_...
+
+ Pins the packages matching the _pkgglob_(s) to the repository
+ _repo_.
+
+'pinning remove' _repo_ _pkgglob_...
+
+ Any packages recorded in the pinning file matching the <pkgglob>s
+ for the given repository _repo_ are removed.
+
+'pinning remove _repo_ --all'
+
+ Remove all pinning data for repository _repo_.
+
+
+File: tlbuild.info, Node: tlmgr platform list|add|remove _platform_..., Next: tlmgr platform set _platform_, Prev: tlmgr pinning, Up: tlmgr ACTIONS
+
+B.6.17 platform list|add|remove _platform_...
+---------------------------------------------
+
+
+File: tlbuild.info, Node: tlmgr platform set _platform_, Next: tlmgr platform set auto, Prev: tlmgr platform list|add|remove _platform_..., Up: tlmgr ACTIONS
+
+B.6.18 platform set _platform_
+------------------------------
+
+
+File: tlbuild.info, Node: tlmgr platform set auto, Next: tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [_pkg_]..., Prev: tlmgr platform set _platform_, Up: tlmgr ACTIONS
+
+B.6.19 platform set auto
+------------------------
+
+'platform list' lists the TeX Live names of all the platforms (a.k.a.
+architectures), ('i386-linux', ...) available at the package
+repository.
+
+ 'platform add' _platform_... adds the executables for each given
+platform _platform_ to the installation from the repository.
+
+ 'platform remove' _platform_... removes the executables for each
+given platform _platform_ from the installation, but keeps the currently
+running platform in any case.
+
+ 'platform set' _platform_ switches TeX Live to always use the given
+platform instead of auto detection.
+
+ 'platform set auto' switches TeX Live to auto detection mode for
+platform.
+
+ Platform detection is needed to select the proper 'xz', 'xzdec' and
+'wget' binaries that are shipped with TeX Live.
+
+ 'arch' is a synonym for 'platform'.
+
+ Options:
+
+*-dry-run*
+
+ Nothing is actually installed; instead, the actions to be performed
+ are written to the terminal.
+
+
+File: tlbuild.info, Node: tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [_pkg_]..., Next: tlmgr print-platform, Prev: tlmgr platform set auto, Up: tlmgr ACTIONS
+
+B.6.20 postaction [-w32mode=user|admin] [-fileassocmode=1|2] [-all] [install|remove] [shortcut|fileassoc|script] [_pkg_]...
+---------------------------------------------------------------------------------------------------------------------------
+
+Carry out the postaction 'shortcut', 'fileassoc', or 'script' given as
+the second required argument in install or remove mode (which is the
+first required argument), for either the packages given on the command
+line, or for all if '--all' is given.
+
+ If the option '--w32mode' is given the value 'user', all actions will
+only be carried out in the user-accessible parts of the
+registry/filesystem, while the value 'admin' selects the system-wide
+parts of the registry for the file associations. If you do not have
+enough permissions, using '--w32mode=admin' will not succeed.
+
+ '--fileassocmode' specifies the action for file associations. If it
+is set to 1 (the default), only new associations are added; if it is set
+to 2, all associations are set to the TeX Live programs. (See also
+'option fileassocs'.)
+
+
+File: tlbuild.info, Node: tlmgr print-platform, Next: tlmgr restore [--backupdir _dir_] [--all | _pkg_ [_rev_]], Prev: tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [_pkg_]..., Up: tlmgr ACTIONS
+
+B.6.21 print-platform
+---------------------
+
+Print the TeX Live identifier for the detected platform
+(hardware/operating system) combination to standard output, and exit.
+'--print-arch' is a synonym.
+
+
+File: tlbuild.info, Node: tlmgr restore [--backupdir _dir_] [--all | _pkg_ [_rev_]], Next: tlmgr remove [_option_]... _pkg_..., Prev: tlmgr print-platform, Up: tlmgr ACTIONS
+
+B.6.22 restore [-backupdir _dir_] [-all | _pkg_ [_rev_]]
+--------------------------------------------------------
+
+Restore a package from a previously-made backup.
+
+ If '--all' is given, try to restore the latest revision of all
+package backups found in the backup directory.
+
+ Otherwise, if neither _pkg_ nor _rev_ are given, list the available
+backup revisions for all packages.
+
+ With _pkg_ given but no _rev_, list all available backup revisions of
+_pkg_.
+
+ When listing available packages tlmgr shows the revision and in
+parenthesis the creation time if available (in format yyyy-mm-dd hh:mm).
+
+ With both _pkg_ and _rev_, tries to restore the package from the
+specified backup.
+
+ Options:
+
+*-all*
+
+ Try to restore the latest revision of all package backups found in
+ the backup directory. Additional non-option arguments (like _pkg_)
+ are not allowed.
+
+*-backupdir* _directory_
+
+ Specify the directory where the backups are to be found. If not
+ given it will be taken from the configuration setting in the TLPDB.
+
+*-dry-run*
+
+ Nothing is actually restored; instead, the actions to be performed
+ are written to the terminal.
+
+*-force*
+
+ Don't ask questions.
+
+
+File: tlbuild.info, Node: tlmgr remove [_option_]... _pkg_..., Next: tlmgr repository, Prev: tlmgr restore [--backupdir _dir_] [--all | _pkg_ [_rev_]], Up: tlmgr ACTIONS
+
+B.6.23 remove [_option_]... _pkg_...
+------------------------------------
+
+Remove each _pkg_ specified. Removing a collection removes all package
+dependencies (unless '--no-depends' is specified), but not any
+collection dependencies of that collection. However, when removing a
+package, dependencies are never removed. Options:
+
+*-no-depends*
+
+ Do not remove dependent packages.
+
+*-no-depends-at-all*
+
+ See above under *install* (and beware).
+
+*-force*
+
+ By default, removal of a package or collection that is a dependency
+ of another collection or scheme is not allowed. With this option,
+ the package will be removed unconditionally. Use with care.
+
+ A package that has been removed using the '--force' option because
+ it is still listed in an installed collection or scheme will not be
+ updated, and will be mentioned as *forcibly removed* in the output
+ of *tlmgr update -list*.
+
+*-dry-run*
+
+ Nothing is actually removed; instead, the actions to be performed
+ are written to the terminal.
+
+
+File: tlbuild.info, Node: tlmgr repository, Next: tlmgr search [_option_...] _what_, Prev: tlmgr remove [_option_]... _pkg_..., Up: tlmgr ACTIONS
+
+B.6.24 repository
+-----------------
+
+*repository list*
+
+*repository list _path|tag_*
+
+*repository add _path_ [_tag_]*
+
+*repository remove _path|tag_*
+
+*repository set _path_[#_tag_] [_path_[#_tag_] ...]*
+
+ This action manages the list of repositories. See *note MULTIPLE
+ REPOSITORIES: tlmgr MULTIPLE REPOSITORIES. below for detailed
+ explanations.
+
+ The first form ('list') lists all configured repositories and the
+ respective tags if set. If a path, url, or tag is given after the
+ 'list' keyword, it is interpreted as source from where to
+ initialize a TeX Live Database and lists the contained packages.
+ This can also be an up-to-now not used repository, both locally and
+ remote. If one pass in addition '--with-platforms', for each
+ package the available platforms (if any) are listed, too.
+
+ The third form ('add') adds a repository (optionally attaching a
+ tag) to the list of repositories. The forth form ('remove')
+ removes a repository, either by full path/url, or by tag. The last
+ form ('set') sets the list of repositories to the items given on
+ the command line, not keeping previous settings
+
+ In all cases, one of the repositories must be tagged as 'main';
+ otherwise, all operations will fail!
+
+
+File: tlbuild.info, Node: tlmgr search [_option_...] _what_, Next: tlmgr uninstall, Prev: tlmgr repository, Up: tlmgr ACTIONS
+
+B.6.25 search [_option_...] _what_
+----------------------------------
+
+* Menu:
+
+* tlmgr search [_option_...] --file _what_::
+* tlmgr search [_option_...] --taxonomy _what_::
+* tlmgr search [_option_...] --keyword _what_::
+* tlmgr search [_option_...] --functionality _what_::
+* tlmgr search [_option_...] --characterization _what_::
+* tlmgr search [_option_...] --all _what_::
+
+
+File: tlbuild.info, Node: tlmgr search [_option_...] --file _what_, Next: tlmgr search [_option_...] --taxonomy _what_, Up: tlmgr search [_option_...] _what_
+
+B.6.25.1 search [_option_...] -file _what_
+..........................................
+
+
+File: tlbuild.info, Node: tlmgr search [_option_...] --taxonomy _what_, Next: tlmgr search [_option_...] --keyword _what_, Prev: tlmgr search [_option_...] --file _what_, Up: tlmgr search [_option_...] _what_
+
+B.6.25.2 search [_option_...] -taxonomy _what_
+..............................................
+
+
+File: tlbuild.info, Node: tlmgr search [_option_...] --keyword _what_, Next: tlmgr search [_option_...] --functionality _what_, Prev: tlmgr search [_option_...] --taxonomy _what_, Up: tlmgr search [_option_...] _what_
+
+B.6.25.3 search [_option_...] -keyword _what_
+.............................................
+
+
+File: tlbuild.info, Node: tlmgr search [_option_...] --functionality _what_, Next: tlmgr search [_option_...] --characterization _what_, Prev: tlmgr search [_option_...] --keyword _what_, Up: tlmgr search [_option_...] _what_
+
+B.6.25.4 search [_option_...] -functionality _what_
+...................................................
+
+
+File: tlbuild.info, Node: tlmgr search [_option_...] --characterization _what_, Next: tlmgr search [_option_...] --all _what_, Prev: tlmgr search [_option_...] --functionality _what_, Up: tlmgr search [_option_...] _what_
+
+B.6.25.5 search [_option_...] -characterization _what_
+......................................................
+
+
+File: tlbuild.info, Node: tlmgr search [_option_...] --all _what_, Prev: tlmgr search [_option_...] --characterization _what_, Up: tlmgr search [_option_...] _what_
+
+B.6.25.6 search [_option_...] -all _what_
+.........................................
+
+By default, search the names, short descriptions, and long descriptions
+of all locally installed packages for the argument _what_, interpreted
+as a regular expression.
+
+ Options:
+
+*-global*
+
+ Search the TeX Live Database of the installation medium, instead of
+ the local installation.
+
+*-word*
+
+ Restrict the search to match only full words. For example,
+ searching for 'table' with this option will not output packages
+ containing the word 'tables' (unless they also contain the word
+ 'table' on its own).
+
+*-list*
+
+ If a search for any (or all) taxonomies is done, by specifying one
+ of the taxonomy options below, then instead of searching for
+ packages, list the entire corresponding taxonomy (or all of them).
+ See *note TAXONOMIES: tlmgr TAXONOMIES. below.
+
+ Other search options are selected by specifying one of the following:
+
+*-file*
+
+ List all filenames containing _what_.
+
+*-taxonomy*
+
+*-keyword*
+
+*-functionality*
+
+*-characterization*
+
+ Search in the corresponding taxonomy (or all) instead of the
+ package descriptions. See *note TAXONOMIES: tlmgr TAXONOMIES.
+ below.
+
+*-all*
+
+ Search for package names, descriptions, and taxonomies, but not
+ files.
+
+
+File: tlbuild.info, Node: tlmgr uninstall, Next: tlmgr update [_option_]... [_pkg_]..., Prev: tlmgr search [_option_...] _what_, Up: tlmgr ACTIONS
+
+B.6.26 uninstall
+----------------
+
+Uninstalls the entire TeX Live installation. Options:
+
+*-force*
+
+ Do not ask for confirmation, remove immediately.
+
+
+File: tlbuild.info, Node: tlmgr update [_option_]... [_pkg_]..., Prev: tlmgr uninstall, Up: tlmgr ACTIONS
+
+B.6.27 update [_option_]... [_pkg_]...
+--------------------------------------
+
+Updates the packages given as arguments to the latest version available
+at the installation source. Either '--all' or at least one _pkg_ name
+must be specified. Options:
+
+*-all*
+
+ Update all installed packages except for 'tlmgr' itself. Thus, if
+ updates to 'tlmgr' itself are present, this will simply give an
+ error, unless also the option '--force' or '--self' is given. (See
+ below.)
+
+ In addition to updating the installed packages, during the update
+ of a collection the local installation is (by default) synchronized
+ to the status of the collection on the server, for both additions
+ and removals.
+
+ This means that if a package has been removed on the server (and
+ thus has also been removed from the respective collection), 'tlmgr'
+ will remove the package in the local installation. This is called
+ "auto-remove" and is announced as such when using the option
+ '--list'. This auto-removal can be suppressed using the option
+ '--no-auto-remove' (not recommended, see option description).
+
+ Analogously, if a package has been added to a collection on the
+ server that is also installed locally, it will be added to the
+ local installation. This is called "auto-install" and is announced
+ as such when using the option '--list'. This auto-installation can
+ be suppressed using the option '--no-auto-install'.
+
+ An exception to the collection dependency checks (including the
+ auto-installation of packages just mentioned) are those that have
+ been "forcibly removed" by you, that is, you called 'tlmgr remove
+ --force' on them. (See the 'remove' action documentation.) To
+ reinstall any such forcibly removed packages use
+ '--reinstall-forcibly-removed'.
+
+ If you want to exclude some packages from the current update run
+ (e.g., due to a slow link), see the '--exclude' option below.
+
+*-self*
+
+ Update 'tlmgr' itself (that is, the infrastructure packages) if
+ updates to it are present. On Windows this includes updates to the
+ private Perl interpreter shipped inside TeX Live.
+
+ If this option is given together with either '--all' or a list of
+ packages, then 'tlmgr' will be updated first and, if this update
+ succeeds, the new version will be restarted to complete the rest of
+ the updates.
+
+ In short:
+
+ tlmgr update --self # update infrastructure only
+ tlmgr update --self --all # update infrastructure and all packages
+ tlmgr update --force --all # update all packages but *not* infrastructure
+ # ... this last at your own risk, not recommended!
+
+*-dry-run*
+
+ Nothing is actually installed; instead, the actions to be performed
+ are written to the terminal. This is a more detailed report than
+ '--list'.
+
+*-list* [_pkg_]
+
+ Concisely list the packages which would be updated, newly
+ installed, or removed, without actually changing anything. If
+ '--all' is also given, all available updates are listed. If
+ '--self' is given, but not '--all', only updates to the critical
+ packages (tlmgr, texlive infrastructure, perl on Windows, etc.)
+ are listed. If neither '--all' nor '--self' is given, and in
+ addition no _pkg_ is given, then '--all' is assumed (thus, 'tlmgr
+ update --list' is the same as 'tlmgr update --list --all'). If
+ neither '--all' nor '--self' is given, but specific package names
+ are given, those packages are checked for updates.
+
+*-exclude* _pkg_
+
+ Exclude _pkg_ from the update process. If this option is given
+ more than once, its arguments accumulate.
+
+ An argument _pkg_ excludes both the package _pkg_ itself and all
+ its related platform-specific packages _pkg.ARCH_. For example,
+
+ tlmgr update --all --exclude a2ping
+
+ will not update 'a2ping', 'a2ping.i386-linux', or any other
+ 'a2ping.'_ARCH_ package.
+
+ If this option specifies a package that would otherwise be a
+ candidate for auto-installation, auto-removal, or reinstallation of
+ a forcibly removed package, 'tlmgr' quits with an error message.
+ Excludes are not supported in these circumstances.
+
+*-no-auto-remove* [_pkg_]...
+
+ By default, 'tlmgr' tries to remove packages which have disappeared
+ on the server, as described above under '--all'. This option
+ prevents such removals, either for all packages (with '--all'), or
+ for just the given _pkg_ names. This can lead to an inconsistent
+ TeX installation, since packages are not infrequently renamed or
+ replaced by their authors. Therefore this is not recommend.
+
+*-no-auto-install* [_pkg_]...
+
+ Under normal circumstances 'tlmgr' will install packages which are
+ new on the server, as described above under '--all'. This option
+ prevents any such automatic installation, either for all packages
+ (with '--all'), or the given _pkg_ names.
+
+ Furthermore, after the 'tlmgr' run using this has finished, the
+ packages that would have been auto-installed _will be considered as
+ forcibly removed_. So, if 'foobar' is the only new package on the
+ server, then
+
+ tlmgr update --all --no-auto-install
+
+ is equivalent to
+
+ tlmgr update --all
+ tlmgr remove --force foobar
+
+*-reinstall-forcibly-removed*
+
+ Under normal circumstances 'tlmgr' will not install packages that
+ have been forcibly removed by the user; that is, removed with
+ 'remove --force', or whose installation was prohibited by
+ '--no-auto-install' during an earlier update.
+
+ This option makes 'tlmgr' ignore the forcible removals and
+ re-install all such packages. This can be used to completely
+ synchronize an installation with the server's idea of what is
+ available:
+
+ tlmgr update --reinstall-forcibly-removed --all
+
+*-backup* and *-backupdir* _directory_
+
+ These two options control the creation of backups of packages
+ _before_ updating; that is, backup of packages as currently
+ installed. If neither of these options are given, no backup
+ package will be saved. If '--backupdir' is given and specifies a
+ writable directory then a backup will be made in that location. If
+ only '--backup' is given, then a backup will be made to the
+ directory previously set via the 'option' action (see below). If
+ both are given then a backup will be made to the specified
+ _directory_.
+
+ You can set options via the 'option' action to automatically create
+ backups for all packages, and/or keep only a certain number of
+ backups. Please see the 'option' action for details.
+
+ 'tlmgr' always makes a temporary backup when updating packages, in
+ case of download or other failure during an update. In contrast,
+ the purpose of this '--backup' option is to allow you to save a
+ persistent backup in case the actual _content_ of the update causes
+ problems, e.g., introduces an incompatibility.
+
+ The 'restore' action explains how to restore from a backup.
+
+*-no-depends*
+
+ If you call for updating a package normally all depending packages
+ will also be checked for updates and updated if necessary. This
+ switch suppresses this behavior.
+
+*-no-depends-at-all*
+
+ See above under *install* (and beware).
+
+*-force*
+
+ Force update of normal packages, without updating 'tlmgr' itself
+ (unless the '--self' option is also given). Not recommended.
+
+ Also, 'update --list' is still performed regardless of this option.
+
+ If the package on the server is older than the package already
+installed (e.g., if the selected mirror is out of date), 'tlmgr' does
+not downgrade. Also, packages for uninstalled platforms are not
+installed.
+
+
+File: tlbuild.info, Node: tlmgr USER MODE, Next: tlmgr CONFIGURATION FILE FOR TLMGR, Prev: tlmgr ACTIONS, Up: tlmgr
+
+B.7 USER MODE
+=============
+
+'tlmgr' provides a restricted way, called "user mode", to manage
+arbitrary texmf trees in the same way as the main installation. For
+example, this allows people without write permissions on the
+installation location to update/install packages into a tree of their
+own.
+
+ 'tlmgr' is switched into user mode with the command line option
+'--usermode'. It does not switch automatically, nor is there any
+configuration file setting for it. Thus, this option has to be
+explicitly given every time user mode is to be activated.
+
+ This mode of 'tlmgr' works on a user tree, by default the value of
+the 'TEXMFHOME' variable. This can be overridden with the command line
+option '--usertree'. In the following when we speak of the user tree we
+mean either 'TEXMFHOME' or the one given on the command line.
+
+ Not all actions are allowed in user mode; 'tlmgr' will warn you and
+not carry out any problematic actions. Currently not supported (and
+probably will never be) is the 'platform' action. The 'gui' action is
+currently not supported, but may be in a future release.
+
+ Some 'tlmgr' actions don't need any write permissions and thus work
+the same in user mode and normal mode. Currently these are: 'check',
+'help', 'list', 'print-platform', 'search', 'show', 'version'.
+
+ On the other hand, most of the actions dealing with package
+management do need write permissions, and thus behave differently in
+user mode, as described below: 'install', 'update', 'remove', 'option',
+'paper', 'generate', 'backup', 'restore', 'uninstall', 'symlinks'.
+
+ Before using 'tlmgr' in user mode, you have to set up the user tree
+with the 'init-usertree' action. This creates _usertree_'/web2c' and
+_usertree_'/tlpkg/tlpobj', and a minimal
+_usertree_'/tlpkg/texlive.tlpdb'. At that point, you can tell 'tlmgr'
+to do the (supported) actions by adding the '--usermode' command line
+option.
+
+ In user mode the file _usertree_'/tlpkg/texlive.tlpdb' contains only
+the packages that have been installed into the user tree using 'tlmgr',
+plus additional options from the "virtual" package
+'00texlive.installation' (similar to the main installation's
+'texlive.tlpdb').
+
+ All actions on packages in user mode can only be carried out on
+packages that are known as 'relocatable'. This excludes all packages
+containing executables and a few other core packages. Of the 2500 or so
+packages currently in TeX Live the vast majority are relocatable and can
+be installed into a user tree.
+
+ Description of changes of actions in user mode:
+
+* Menu:
+
+* tlmgr user mode install::
+* tlmgr user mode backup; restore; remove; update::
+* tlmgr user mode generate; option; paper::
+
+
+File: tlbuild.info, Node: tlmgr user mode install, Next: tlmgr user mode backup; restore; remove; update, Up: tlmgr USER MODE
+
+B.7.1 user mode install
+-----------------------
+
+In user mode, the 'install' action checks that the package and all
+dependencies are all either relocated or already installed in the system
+installation. If this is the case, it unpacks all containers to be
+installed into the user tree (to repeat, that's either 'TEXMFHOME' or
+the value of '--usertree') and add the respective packages to the user
+tree's 'texlive.tlpdb' (creating it if need be).
+
+ Currently installing a collection in user mode installs all dependent
+packages, but in contrast to normal mode, does _not_ install dependent
+collections. For example, in normal mode 'tlmgr install
+collection-context' would install 'collection-basic' and other
+collections, while in user mode, _only_ the packages mentioned in
+'collection-context' are installed.
+
+
+File: tlbuild.info, Node: tlmgr user mode backup; restore; remove; update, Next: tlmgr user mode generate; option; paper, Prev: tlmgr user mode install, Up: tlmgr USER MODE
+
+B.7.2 user mode backup; restore; remove; update
+-----------------------------------------------
+
+In user mode, these actions check that all packages to be acted on are
+installed in the user tree before proceeding; otherwise, they behave
+just as in normal mode.
+
+
+File: tlbuild.info, Node: tlmgr user mode generate; option; paper, Prev: tlmgr user mode backup; restore; remove; update, Up: tlmgr USER MODE
+
+B.7.3 user mode generate; option; paper
+---------------------------------------
+
+In user mode, these actions operate only on the user tree's
+configuration files and/or 'texlive.tlpdb'. creates configuration files
+in user tree
+
+
+File: tlbuild.info, Node: tlmgr CONFIGURATION FILE FOR TLMGR, Next: tlmgr TAXONOMIES, Prev: tlmgr USER MODE, Up: tlmgr
+
+B.8 CONFIGURATION FILE FOR TLMGR
+================================
+
+A small subset of the command line options can be set in a config file
+for 'tlmgr' which resides in 'TEXMFCONFIG/tlmgr/config'. By default,
+the config file is in '~/.texliveYYYY/texmf-config/tlmgr/config'
+(replacing 'YYYY' with the year of your TeX Live installation). This is
+_not_ 'TEXMFSYSVAR', so that the file is specific to a single user.
+
+ In this file, empty lines and lines starting with # are ignored. All
+other lines must look like
+
+ key = value
+
+ where the allowed keys are 'gui-expertmode' (value 0 or 1),
+'persistent-downloads' (value 0 or 1), 'auto-remove' (value 0 or 1), and
+'gui-lang' (value like in the command line option).
+
+ 'persistent-downloads', 'gui-lang', and 'auto-remove' correspond to
+the respective command line options of the same name. 'gui-expertmode'
+switches between the full GUI and a simplified GUI with only the
+important and mostly used settings.
+
+
+File: tlbuild.info, Node: tlmgr TAXONOMIES, Next: tlmgr MULTIPLE REPOSITORIES, Prev: tlmgr CONFIGURATION FILE FOR TLMGR, Up: tlmgr
+
+B.9 TAXONOMIES
+==============
+
+tlmgr allows searching and listing of various categorizations, which we
+call _taxonomies_, as provided by an enhanced TeX Catalogue (available
+for testing at <http://az.ctan.org>). This is useful when, for example,
+you don't know a specific package name but have an idea of the
+functionality you need; or when you want to see all packages relating to
+a given area.
+
+ There are three different taxonomies, specified by the following
+options:
+
+'--keyword'
+
+ The keywords, as specified at <http://az.ctan.org/keyword>.
+
+'--functionality'
+
+ The "by-topic" categorization created by J\"urgen Fenn, as
+ specified at <http://az.ctan.org/characterization/by-function>.
+
+'--characterization'
+
+ Both the primary and secondary functionalities, as specified at
+ <http://az.ctan.org/characterization/choose_dimen>.
+
+'--taxonomy'
+
+ Operate on all the taxonomies.
+
+ The taxonomies are updated nightly and stored within TeX Live, so
+Internet access is not required to search them.
+
+ Examples:
+
+ tlmgr search --taxonomy exercise # check all taxonomies for "exercise"
+ tlmgr search --taxonomy --word table # check for "table" on its own
+ tlmgr search --list --keyword # dump entire keyword taxonomy
+ tlmgr show --taxonomy pdftex # show pdftex package information,
+ # including all taxonomy entries
+
+
+File: tlbuild.info, Node: tlmgr MULTIPLE REPOSITORIES, Next: tlmgr GUI FOR TLMGR, Prev: tlmgr TAXONOMIES, Up: tlmgr
+
+B.10 MULTIPLE REPOSITORIES
+==========================
+
+The main TeX Live repository contains a vast array of packages.
+Nevertheless, additional local repositories can be useful to provide
+locally-installed resources, such as proprietary fonts and house styles.
+Also, alternative package repositories distribute packages that cannot
+or should not be included in TeX Live, for whatever reason.
+
+ The simplest and most reliable method is to temporarily set the
+installation source to any repository (with the '-repository' or 'option
+repository' command line options), and perform your operations.
+
+ When you are using multiple repositories over a sustained time,
+however, explicitly switching between them becomes inconvenient. Thus,
+it's possible to tell 'tlmgr' about additional repositories you want to
+use. The basic command is 'tlmgr repository add'. The rest of this
+section explains further.
+
+ When using multiple repositories, one of them has to be set as the
+main repository, which distributes most of the installed packages. When
+you switch from a single repository installation to a multiple
+repository installation, the previous sole repository will be set as the
+main repository.
+
+ By default, even if multiple repositories are configured, packages
+are _still_ _only_ installed from the main repository. Thus, simply
+adding a second repository does not actually enable installation of
+anything from there. You also have to specify which packages should be
+taken from the new repository, by specifying so-called "pinning" rules,
+described next.
+
+* Menu:
+
+* tlmgr Pinning::
+
+
+File: tlbuild.info, Node: tlmgr Pinning, Up: tlmgr MULTIPLE REPOSITORIES
+
+B.10.1 Pinning
+--------------
+
+When a package 'foo' is pinned to a repository, a package 'foo' in any
+other repository, even if it has a higher revision number, will not be
+considered an installable candidate.
+
+ As mentioned above, by default everything is pinned to the main
+repository. Let's now go through an example of setting up a second
+repository and enabling updates of a package from it.
+
+ First, check that we have support for multiple repositories, and have
+only one enabled (as is the case by default):
+
+ $ tlmgr repository list
+ List of repositories (with tags if set):
+ /var/www/norbert/tlnet
+
+ Ok. Let's add the 'tlcontrib' repository (this is a real repository,
+hosted at <http://tlcontrib.metatex.org>, maintained by Taco Hoekwater
+et al.), with the tag 'tlcontrib':
+
+ $ tlmgr repository add http://tlcontrib.metatex.org/2012 tlcontrib
+
+ Check the repository list again:
+
+ $ tlmgr repository list
+ List of repositories (with tags if set):
+ http://tlcontrib.metatex.org/2012 (tlcontrib)
+ /var/www/norbert/tlnet (main)
+
+ Now we specify a pinning entry to get the package 'context' from
+'tlcontrib':
+
+ $ tlmgr pinning add tlcontrib context
+
+ Check that we can find 'context':
+
+ $ tlmgr show context
+ tlmgr: package repositories:
+ ...
+ package: context
+ repository: tlcontrib/26867
+ ...
+
+ - install 'context':
+
+ $ tlmgr install context
+ tlmgr: package repositories:
+ ...
+ [1/1, ??:??/??:??] install: context @tlcontrib [
+
+ In the output here you can see that the 'context' package has been
+installed from the 'tlcontrib' repository ('@tlcontrib').
+
+ Finally, 'tlmgr pinning' also supports removing certain or all
+packages from a given repository:
+
+ $ tlmgr pinning remove tlcontrib context # remove just context
+ $ tlmgr pinning remove tlcontrib --all # take nothing from tlcontrib
+
+ A summary of the 'tlmgr pinning' actions is given above.
+
+
+File: tlbuild.info, Node: tlmgr GUI FOR TLMGR, Next: tlmgr MACHINE-READABLE OUTPUT, Prev: tlmgr MULTIPLE REPOSITORIES, Up: tlmgr
+
+B.11 GUI FOR TLMGR
+==================
+
+The graphical user interface for 'tlmgr' needs Perl/Tk to be installed.
+For Windows the necessary modules are shipped within TeX Live, for all
+other (i.e., Unix-based) systems Perl/Tk (as well as Perl of course) has
+to be installed. <http://tug.org/texlive/distro.html#perltk> has a list
+of invocations for some distros.
+
+ When started with 'tlmgr gui' the graphical user interface will be
+shown. The main window contains a menu bar, the main display, and a
+status area where messages normally shown on the console are displayed.
+
+ Within the main display there are three main parts: the 'Display
+configuration' area, the list of packages, and the action buttons.
+
+ Also, at the top right the currently loaded repository is shown; this
+also acts as a button and when clicked will try to load the default
+repository. To load a different repository, see the 'tlmgr' menu item.
+
+ Finally, the status area at the bottom of the window gives additional
+information about what is going on.
+
+* Menu:
+
+* tlmgr Main display::
+* tlmgr Menu bar::
+
+
+File: tlbuild.info, Node: tlmgr Main display, Next: tlmgr Menu bar, Up: tlmgr GUI FOR TLMGR
+
+B.11.1 Main display
+-------------------
+
+* Menu:
+
+* tlmgr Display configuration area::
+* tlmgr Package list area::
+* tlmgr Main display action buttons::
+
+
+File: tlbuild.info, Node: tlmgr Display configuration area, Next: tlmgr Package list area, Up: tlmgr Main display
+
+B.11.1.1 Display configuration area
+...................................
+
+The first part of the main display allows you to specify (filter) which
+packages are shown. By default, all are shown. Changes here are
+reflected right away.
+
+Status
+
+ Select whether to show all packages (the default), only those
+ installed, only those _not_ installed, or only those with update
+ available.
+
+Category
+
+ Select which categories are shown: packages, collections, and/or
+ schemes. These are briefly explained in the *note DESCRIPTION:
+ tlmgr DESCRIPTION. section above.
+
+Match
+
+ Select packages matching for a specific pattern. By default, this
+ uses the same algorithm as 'tlmgr search', i.e., searches
+ everything: descriptions, taxonomies, and/or filenames. You can
+ also select any subset for searching.
+
+Selection
+
+ Select packages to those selected, those not selected, or all.
+ Here, "selected" means that the checkbox in the beginning of the
+ line of a package is ticked.
+
+Display configuration buttons
+
+ To the right there are three buttons: select all packages, select
+ none (a.k.a. deselect all), and reset all these filters to the
+ defaults, i.e., show all available.
+
+
+File: tlbuild.info, Node: tlmgr Package list area, Next: tlmgr Main display action buttons, Prev: tlmgr Display configuration area, Up: tlmgr Main display
+
+B.11.1.2 Package list area
+..........................
+
+The second are of the main display lists all installed packages. If a
+repository is loaded, those that are available but not installed are
+also listed.
+
+ Double clicking on a package line pops up an informational window
+with further details: the long description, included files, etc.
+
+ Each line of the package list consists of the following items:
+
+a checkbox
+
+ Used to select particular packages; some of the action buttons (see
+ below) work only on the selected packages.
+
+package name
+
+ The name (identifier) of the package as given in the database.
+
+local revision (and version)
+
+ If the package is installed the TeX Live revision number for the
+ installed package will be shown. If there is a catalogue version
+ given in the database for this package, it will be shown in
+ parentheses. However, the catalogue version, unlike the TL
+ revision, is not guaranteed to reflect what is actually installed.
+
+remote revision (and version)
+
+ If a repository has been loaded the revision of the package in the
+ repository (if present) is shown. As with the local column, if a
+ catalogue version is provided it will be displayed. And also as
+ with the local column, the catalogue version may be stale.
+
+short description
+
+ The short description of the package.
+
+
+File: tlbuild.info, Node: tlmgr Main display action buttons, Prev: tlmgr Package list area, Up: tlmgr Main display
+
+B.11.1.3 Main display action buttons
+....................................
+
+Below the list of packages are several buttons:
+
+Update all installed
+
+ This calls 'tlmgr update --all', i.e., tries to update all
+ available packages. Below this button is a toggle to allow
+ reinstallation of previously removed packages as part of this
+ action.
+
+ The other four buttons only work on the selected packages, i.e.,
+ those where the checkbox at the beginning of the package line is
+ ticked.
+
+Update
+
+ Update only the selected packages.
+
+Install
+
+ Install the selected packages; acts like 'tlmgr install', i.e.,
+ also installs dependencies. Thus, installing a collection installs
+ all its constituent packages.
+
+Remove
+
+ Removes the selected packages; acts like 'tlmgr remove', i.e., it
+ will also remove dependencies of collections (but not dependencies
+ of normal packages).
+
+Backup
+
+ Makes a backup of the selected packages; acts like 'tlmgr backup'.
+ This action needs the option 'backupdir' set (see 'Options -'
+ General>).
+
+
+File: tlbuild.info, Node: tlmgr Menu bar, Prev: tlmgr Main display, Up: tlmgr GUI FOR TLMGR
+
+B.11.2 Menu bar
+---------------
+
+The following entries can be found in the menu bar:
+
+'tlmgr' menu
+
+ The items here load various repositories: the default as specified
+ in the TeX Live database, the default network repository, the
+ repository specified on the command line (if any), and an
+ arbitrarily manually-entered one. Also has the so-necessary 'quit'
+ operation.
+
+'Options menu'
+
+ Provides access to several groups of options: 'Paper'
+ (configuration of default paper sizes), 'Platforms' (only on Unix,
+ configuration of the supported/installed platforms), 'GUI Language'
+ (select language used in the GUI interface), and 'General'
+ (everything else).
+
+ Several toggles are also here. The first is 'Expert options',
+ which is set by default. If you turn this off, the next time you
+ start the GUI a simplified screen will be shown that display only
+ the most important functionality. This setting is saved in the
+ configuration file of 'tlmgr'; see *note CONFIGURATION FILE FOR
+ TLMGR: tlmgr CONFIGURATION FILE FOR TLMGR. for details.
+
+ The other toggles are all off by default: for debugging output, to
+ disable the automatic installation of new packages, and to disable
+ the automatic removal of packages deleted from the server. Playing
+ with the choices of what is or isn't installed may lead to an
+ inconsistent TeX Live installation; e.g., when a package is
+ renamed.
+
+'Actions menu'
+
+ Provides access to several actions: update the filename database
+ (aka 'ls-R', 'mktexlsr', 'texhash'), rebuild all formats
+ ('fmtutil-sys --all'), update the font map database ('updmap-sys'),
+ restore from a backup of a package, and use of symbolic links in
+ system directories (not on Windows).
+
+ The final action is to remove the entire TeX Live installation
+ (also not on Windows).
+
+'Help menu'
+
+ Provides access to the TeX Live manual (also on the web at
+ <http://tug.org/texlive/doc.html>) and the usual "About" box.
+
+
+File: tlbuild.info, Node: tlmgr MACHINE-READABLE OUTPUT, Next: tlmgr AUTHORS AND COPYRIGHT, Prev: tlmgr GUI FOR TLMGR, Up: tlmgr
+
+B.12 MACHINE-READABLE OUTPUT
+============================
+
+With the '--machine-readable' option, 'tlmgr' writes to stdout in the
+fixed line-oriented format described here, and the usual informational
+messages for human consumption are written to stderr (normally they are
+written to stdout). The idea is that a program can get all the
+information it needs by reading stdout.
+
+ Currently this option only applies to the *note update: tlmgr update
+[_option_]... [_pkg_]..., *note install: tlmgr install [_option_]...
+_pkg_..., and *note option: tlmgr option. actions.
+
+* Menu:
+
+* tlmgr Machine-readable 'update' and 'install' output::
+* tlmgr Machine-readable 'option' output::
+
+
+File: tlbuild.info, Node: tlmgr Machine-readable 'update' and 'install' output, Next: tlmgr Machine-readable 'option' output, Up: tlmgr MACHINE-READABLE OUTPUT
+
+B.12.1 Machine-readable 'update' and 'install' output
+-----------------------------------------------------
+
+The output format is as follows:
+
+ fieldname "\t" value
+ ...
+ "end-of-header"
+ pkgname status localrev serverrev size runtime esttot
+ ...
+ "end-of-updates"
+ other output from post actions, not in machine readable form
+
+ The header section currently has two fields: 'location-url' (the
+repository source from which updates are being drawn), and 'total-bytes'
+(the total number of bytes to be downloaded).
+
+ The _localrev_ and _serverrev_ fields for each package are the
+revision numbers in the local installation and server repository,
+respectively. The _size_ field is the number of bytes to be downloaded,
+i.e., the size of the compressed tar file for a network installation,
+not the unpacked size. The runtime and esttot fields are only present
+for updated and auto-install packages, and contain the currently passed
+time since start of installation/updates and the estimated total time.
+
+ Line endings may be either LF or CRLF depending on the current
+platform.
+
+'location-url' _location_
+
+ The _location_ may be a url (including 'file:///foo/bar/...'), or a
+ directory name ('/foo/bar'). It is the package repository from
+ which the new package information was drawn.
+
+'total-bytes' _count_
+
+ The _count_ is simply a decimal number, the sum of the sizes of all
+ the packages that need updating or installing (which are listed
+ subsequently).
+
+ Then comes a line with only the literal string 'end-of-header'.
+
+ Each following line until a line with literal string 'end-of-updates'
+reports on one package. The fields on each line are separated by a tab.
+Here are the fields.
+
+_pkgname_
+
+ The TeX Live package identifier, with a possible platform suffix
+ for executables. For instance, 'pdftex' and 'pdftex.i386-linux'
+ are given as two separate packages, one on each line.
+
+_status_
+
+ The status of the package update. One character, as follows:
+
+ 'd'
+
+ The package was removed on the server.
+
+ 'f'
+
+ The package was removed in the local installation, even though
+ a collection depended on it. (E.g., the user ran 'tlmgr
+ remove --force'.)
+
+ 'u'
+
+ Normal update is needed.
+
+ 'r'
+
+ Reversed non-update: the locally-installed version is newer
+ than the version on the server.
+
+ 'a'
+
+ Automatically-determined need for installation, the package is
+ new on the server and is (most probably) part of an installed
+ collection.
+
+ 'i'
+
+ Package will be installed and isn't present in the local
+ installation (action install).
+
+ 'I'
+
+ Package is already present but will be reinstalled (action
+ install).
+
+_localrev_
+
+ The revision number of the installed package, or '-' if it is not
+ present locally.
+
+_serverrev_
+
+ The revision number of the package on the server, or '-' if it is
+ not present on the server.
+
+_size_
+
+ The size in bytes of the package on the server. The sum of all the
+ package sizes is given in the 'total-bytes' header field mentioned
+ above.
+
+_runtime_
+
+ The run time since start of installations or updates.
+
+_esttot_
+
+ The estimated total time.
+
+
+File: tlbuild.info, Node: tlmgr Machine-readable 'option' output, Prev: tlmgr Machine-readable 'update' and 'install' output, Up: tlmgr MACHINE-READABLE OUTPUT
+
+B.12.2 Machine-readable 'option' output
+---------------------------------------
+
+The output format is as follows:
+
+ key "\t" value
+
+ If a value is not saved in the database the string '(not set)' is
+shown.
+
+ If you are developing a program that uses this output, and find that
+changes would be helpful, do not hesitate to write the mailing list.
+
+
+File: tlbuild.info, Node: tlmgr AUTHORS AND COPYRIGHT, Prev: tlmgr MACHINE-READABLE OUTPUT, Up: tlmgr
+
+B.13 AUTHORS AND COPYRIGHT
+==========================
+
+This script and its documentation were written for the TeX Live
+distribution (<http://tug.org/texlive>) and both are licensed under the
+GNU General Public License Version 2 or later.
+
+
+File: tlbuild.info, Node: Index, Prev: tlmgr, Up: Top
+
+Index
+*****
+
+
+* Menu:
+
+* --bindir configure option: '--prefix' '--bindir' ....
+ (line 6)
+* --build=HOST: Cross configuring. (line 6)
+* --disable-all-packages configure option: Build one package. (line 6)
+* --disable-all-pkgs: '--disable-all-pkgs'. (line 6)
+* --disable-bibtex8: Configure options for 'texk/bibtex-x'.
+ (line 9)
+* --disable-dump-share: Configure options for 'texk/web2c'.
+ (line 27)
+* --disable-dvipdfmx: Configure options for 'texk/dvipdfm-x'.
+ (line 12)
+* --disable-etex-synctex: Configure options for 'texk/web2c'.
+ (line 64)
+* --disable-ipc: Configure options for 'texk/web2c'.
+ (line 31)
+* --disable-largefile: '--disable-largefile'.
+ (line 6)
+* --disable-linked-scripts: Configure options for 'texk/texlive'.
+ (line 6)
+* --disable-mf-nowin: Configure options for 'texk/web2c'.
+ (line 34)
+* --disable-missing: '--disable-missing'. (line 6)
+* --disable-native-texlive-build: '--disable-native-texlive-build'.
+ (line 6)
+* --disable-omfonts: Configure options for 'texk/web2c'.
+ (line 37)
+* --disable-PROG: '--enable-PROG' '--disable-PROG'.
+ (line 6)
+* --disable-tex: Configure options for 'texk/web2c'.
+ (line 42)
+* --disable-web-progs: Configure options for 'texk/web2c'.
+ (line 46)
+* --disable-xdvipdfmx: Configure options for 'texk/dvipdfm-x'.
+ (line 15)
+* --enable-*win for Metafont window support: Configure options for 'texk/web2c'.
+ (line 60)
+* --enable-auto-core: Configure options for 'texk/web2c'.
+ (line 50)
+* --enable-compiler-warnings=LEVEL: '--enable-compiler-warnings='LEVEL.
+ (line 6)
+* --enable-cxx-runtime-hack configure option: Macros for compilers.
+ (line 29)
+* --enable-etex: Configure options for 'texk/web2c'.
+ (line 42)
+* --enable-libtool-hack: Configure options for 'texk/web2c'.
+ (line 55)
+* --enable-maintainer-mode: '--enable-maintainer-mode'.
+ (line 6)
+* --enable-maintainer-mode configure option: Build system tools.
+ (line 28)
+* --enable-mktextfm-default: 'kpathsea' library. (line 20)
+* --enable-multiplatform: '--enable-multiplatform'.
+ (line 6)
+* --enable-PROG: '--enable-PROG' '--disable-PROG'.
+ (line 6)
+* --enable-shared: '--enable-shared'. (line 6)
+* --enable-silent-rules: '--enable-silent-rules'.
+ (line 6)
+* --enable-tex-synctex: Configure options for 'texk/web2c'.
+ (line 64)
+* --enable-texlive-build: '--disable-native-texlive-build'.
+ (line 16)
+* --enable-xi2-scrolling: Configure options for 'texk/xdvik'.
+ (line 13)
+* --enable-xindy-docs: Configure options for 'utils/xindy'.
+ (line 10)
+* --enable-xindy-rules: Configure options for 'utils/xindy'.
+ (line 6)
+* --host=HOST: Cross configuring. (line 6)
+* --libdir: '--enable-multiplatform'.
+ (line 6)
+* --no-clean Build option: Build problems. (line 6)
+* --prefix configure option: '--prefix' '--bindir' ....
+ (line 6)
+* --with-banner-add=STR: Configure options for 'texk/web2c'.
+ (line 6)
+* --with-clisp-runtime=FILENAME: Configure options for 'utils/xindy'.
+ (line 14)
+* --with-editor=CMD: Configure options for 'texk/web2c'.
+ (line 11)
+* --with-fontconfig-includes=DIR: Configure options for 'texk/web2c'.
+ (line 16)
+* --with-fontconfig-libdir=DIR: Configure options for 'texk/web2c'.
+ (line 16)
+* --with-gs=FILENAME: Configure options for 'texk/xdvik'.
+ (line 6)
+* --with-LIB-includes=DIR, -libdir: Library-specific configure options.
+ (line 16)
+* --with-libgs-includes, -libdir: Configure options for 'texk/dvisvgm'.
+ (line 17)
+* --with-recode: Configure options for 'utils/xindy'.
+ (line 23)
+* --with-system-kpathsea: 'kpathsea' library. (line 14)
+* --with-system-LIB: Adding a new generic library module.
+ (line 34)
+* --with-system-LIB <1>: Library-specific configure options.
+ (line 9)
+* --with-system-libgs: Configure options for 'texk/dvisvgm'.
+ (line 6)
+* --with-system-poppler: Configure options for system 'poppler'.
+ (line 10)
+* --with-system-xpdf: Configure options for system 'poppler'.
+ (line 14)
+* --with-xdvi-x-toolkit: 'xdvik' package. (line 21)
+* --with-xdvi-x-toolkit=KIT: Configure options for 'texk/xdvik'.
+ (line 9)
+* --without-libgs: Configure options for 'texk/dvisvgm'.
+ (line 12)
+* --without-ln-s: '--without-ln-s'. (line 6)
+* --without-x: '--without-x'. (line 6)
+* -C configure option: Build in parallel. (line 11)
+* -j make option: Build in parallel. (line 6)
+* adapting TeX Live for distros: Distro builds. (line 54)
+* adding a new generic library: Adding a new generic library module.
+ (line 6)
+* adding a new program: Adding a new program module.
+ (line 6)
+* adding a new TeX-specific library: Adding a new TeX-specific library module.
+ (line 6)
+* adding to TeX Live: Extending TeX Live. (line 6)
+* 'am/' top-level directory: Top-level directories.
+ (line 14)
+* ANSI C: Declarations and definitions.
+ (line 6)
+* asymptote: Linked scripts. (line 22)
+* asymptote <1>: 'asymptote'. (line 6)
+* Autoconf: Overview of build system.
+ (line 6)
+* autoconf macros: Autoconf macros. (line 6)
+* Automake: Overview of build system.
+ (line 6)
+* biber: Linked scripts. (line 22)
+* bibtex-x: Configure options for 'texk/bibtex-x'.
+ (line 6)
+* bibtex8: Configure options for 'texk/bibtex-x'.
+ (line 6)
+* bibtexu: Configure options for 'texk/bibtex-x'.
+ (line 6)
+* BSD distro: Distro builds. (line 6)
+* build directory, required: Building. (line 17)
+* build iteration: Build iteration. (line 6)
+* build on demand: Build one package. (line 6)
+* build one package: Build one package. (line 6)
+* build problems: Build problems. (line 6)
+* Build script: Building. (line 6)
+* build system, design of: Overview of build system.
+ (line 6)
+* BUILDCC, BUILDCFLAGS, ...: Cross configuring. (line 42)
+* building: Building. (line 6)
+* building a distribution: Build distribution. (line 6)
+* building in parallel: Build in parallel. (line 6)
+* C, ANSI, required: Declarations and definitions.
+ (line 6)
+* C99, avoided: Declarations and definitions.
+ (line 6)
+* cache file, for 'configure': Build in parallel. (line 11)
+* cache for 'configure': Build in parallel. (line 6)
+* callexe.c: Macros for Windows. (line 32)
+* CC: Variables for configure.
+ (line 10)
+* CC_BUILD: Cross problems. (line 13)
+* chktex: Declarations and definitions.
+ (line 18)
+* clisp: Variables for configure.
+ (line 18)
+* CLISP: Variables for configure.
+ (line 17)
+* CLISP <1>: Configure options for 'utils/xindy'.
+ (line 14)
+* 'clisp', required by 'xindy': Prerequisites. (line 30)
+* coding conventions: Coding conventions. (line 6)
+* compilers, C and C++: Prerequisites. (line 6)
+* config.guess, config.sub: Top-level directories.
+ (line 30)
+* 'configure' options: Configure options. (line 6)
+* 'configure' options, for 'bibtex-x': Configure options for 'texk/bibtex-x'.
+ (line 6)
+* 'configure' options, for 'dvipdfm-x': Configure options for 'texk/dvipdfm-x'.
+ (line 6)
+* 'configure' options, for 'dvisvgm': Configure options for 'texk/dvisvgm'.
+ (line 6)
+* 'configure' options, for 'kpathsea': Configure options for 'kpathsea'.
+ (line 6)
+* 'configure' options, for system 'poppler': Configure options for system 'poppler'.
+ (line 6)
+* 'configure' options, for 'texk/texlive': Configure options for 'texk/texlive'.
+ (line 6)
+* 'configure' options, for 'web2c': Configure options for 'texk/web2c'.
+ (line 6)
+* 'configure' options, for 'xdvik': Configure options for 'texk/xdvik'.
+ (line 6)
+* 'configure' options, for 'xindy': Configure options for 'utils/xindy'.
+ (line 6)
+* 'configure' options, global: Global configure options.
+ (line 6)
+* 'configure' options, library-specific: Library-specific configure options.
+ (line 6)
+* 'configure' options, program-specific: Program-specific configure options.
+ (line 6)
+* 'configure' variables: Variables for configure.
+ (line 6)
+* configuring, for cross compilation: Cross configuring. (line 6)
+* 'const': Const. (line 6)
+* conventions, coding: Coding conventions. (line 6)
+* CPPFLAGS: Variables for configure.
+ (line 12)
+* cross compilation: Cross compilation. (line 6)
+* cross compilation configuring: Cross configuring. (line 6)
+* cross compilation problems: Cross problems. (line 6)
+* cross compilation, with host binary: 'xdvik' package. (line 14)
+* ctangle: Cross problems. (line 31)
+* CXX: Variables for configure.
+ (line 11)
+* declarations and definitions, in source code: Declarations and definitions.
+ (line 6)
+* dependencies, with several output files: Build in parallel. (line 6)
+* DESTDIR: '--prefix' '--bindir' ....
+ (line 9)
+* directories, for installation: Installation directories.
+ (line 6)
+* directories, top-level: Top-level directories.
+ (line 6)
+* discards qualifiers warning: Const. (line 30)
+* 'dist' and 'distcheck' targets for 'make': Build distribution.
+ (line 6)
+* distribution tarball, making: Build distribution. (line 6)
+* distro, building for: Distro builds. (line 6)
+* dvipdfmx: Configure options for 'texk/dvipdfm-x'.
+ (line 6)
+* dvisvgm: Configure options for 'texk/dvisvgm'.
+ (line 6)
+* environment variables, for 'configure': Configure options. (line 16)
+* exec_prefix: '--enable-multiplatform'.
+ (line 6)
+* extending TeX Live: Extending TeX Live. (line 6)
+* 'extern' functions: Declarations and definitions.
+ (line 43)
+* 'extra/' top-level directory: Top-level directories.
+ (line 39)
+* failure to build: Build problems. (line 6)
+* 'ffcall', required by 'xindy': Prerequisites. (line 30)
+* flags, macros for library and header: Macros for library and header flags.
+ (line 6)
+* 'fontconfig' library, required by 'xetex': Prerequisites. (line 27)
+* FreeType: Prerequisites. (line 11)
+* 'freetype' cross compiling: Cross problems. (line 13)
+* freetype library: 'freetype' library. (line 6)
+* freetype-config: 'freetype' library. (line 6)
+* freetype-config <1>: Variables for configure.
+ (line 24)
+* FT2_CONFIG: Variables for configure.
+ (line 21)
+* general setup macros: General setup macros. (line 6)
+* generic library module, adding: Adding a new generic library module.
+ (line 6)
+* global 'configure' options: Global configure options.
+ (line 6)
+* 'gmake', required: Prerequisites. (line 11)
+* GNU 'make', required: Prerequisites. (line 11)
+* GNU tools, needed for building: Build system tools. (line 6)
+* GNU/Linux distro: Distro builds. (line 6)
+* Gnulib, used for common files: Top-level directories.
+ (line 30)
+* iconv: Configure options for 'utils/xindy'.
+ (line 23)
+* ICU cross compiling: Cross problems. (line 25)
+* ICU libraries: Variables for configure.
+ (line 24)
+* icu-config: Variables for configure.
+ (line 24)
+* ICU_CONFIG: Variables for configure.
+ (line 22)
+* infrastructure, tools needed for: Build system tools. (line 6)
+* install-tl, TeX Live installer: Installing. (line 8)
+* installation directories: Installation directories.
+ (line 6)
+* installing: Installing. (line 6)
+* interprocess communication: Configure options for 'texk/web2c'.
+ (line 31)
+* introduction: Introduction. (line 6)
+* iteration through sources, by 'configure' and 'make': Build iteration.
+ (line 6)
+* kpathsea library: 'kpathsea' library. (line 6)
+* kpathsea.ac: 'kpathsea' library. (line 20)
+* kpse-libpng-flags.m4: 'png' library. (line 43)
+* kpse-pkgs.m4: Overview of build system.
+ (line 30)
+* kpse-zlib-flags.m4: 'zlib' library. (line 6)
+* kpsewhich: Variables for configure.
+ (line 30)
+* KPSEWHICH: Variables for configure.
+ (line 29)
+* KPSE_ADD_FLAGS: Macros for library and header flags.
+ (line 18)
+* KPSE_ALL_SYSTEM_FLAGS: Adding a new generic library module.
+ (line 34)
+* KPSE_BASIC: General setup macros. (line 8)
+* KPSE_CHECK_LATEX: Macros for programs. (line 8)
+* KPSE_CHECK_PDFLATEX: Macros for programs. (line 15)
+* KPSE_CHECK_PERL: Macros for programs. (line 18)
+* KPSE_CHECK_WIN32: Macros for Windows. (line 9)
+* KPSE_COMMON: General setup macros. (line 16)
+* KPSE_COMPILER_VISIBILITY: Macros for compilers. (line 18)
+* KPSE_COMPILER_WARNINGS: Macros for compilers. (line 8)
+* KPSE_COND_MINGW32: Macros for Windows. (line 19)
+* KPSE_COND_WIN32: Macros for Windows. (line 15)
+* KPSE_COND_WIN32_WRAP: Macros for Windows. (line 24)
+* kpse_cv_cxx_hack: Macros for compilers. (line 34)
+* kpse_cv_have_win32: Macros for Windows. (line 10)
+* kpse_cv_visibility_c[xx]flags: Macros for compilers. (line 25)
+* kpse_cv_warning_cflags: Macros for compilers. (line 15)
+* KPSE_CXX_HACK: Macros for compilers. (line 28)
+* KPSE_ENABLE_PROG: Adding a new program module.
+ (line 14)
+* KPSE_LARGEFILE: Macros for libraries. (line 8)
+* KPSE_LIBPNG_FLAGS: Macros for library and header flags.
+ (line 10)
+* KPSE_LIBPNG_FLAGS <1>: 'png' library. (line 43)
+* kpse_libs_pkgs: Adding a new generic library module.
+ (line 6)
+* KPSE_LIB_FLAGS: Macros for library and header flags.
+ (line 6)
+* KPSE_LIB_FLAGS <1>: Adding a new generic library module.
+ (line 26)
+* KPSE_LIB_SYSTEM_FLAGS: Adding a new generic library module.
+ (line 34)
+* KPSE_PROG_LEX: Macros for programs. (line 21)
+* KPSE_RESTORE_FLAGS: Macros for library and header flags.
+ (line 22)
+* kpse_texk_pkgs: Adding a new program module.
+ (line 6)
+* kpse_texlibs_pkgs: Adding a new TeX-specific library module.
+ (line 11)
+* KPSE_TRY_LIB: 'png' library. (line 18)
+* KPSE_TRY_LIB <1>: Adding a new generic library module.
+ (line 20)
+* KPSE_TRY_LIBXX: 'png' library. (line 31)
+* KPSE_TRY_LIBXX <1>: Adding a new generic library module.
+ (line 20)
+* kpse_utils_pkgs: Adding a new program module.
+ (line 10)
+* KPSE_WIN32_CALL: Macros for Windows. (line 31)
+* KPSE_WITH_LIB: Adding a new generic library module.
+ (line 11)
+* KPSE_WITH_TEXLIB: Adding a new TeX-specific library module.
+ (line 14)
+* large file support: '--disable-largefile'.
+ (line 6)
+* LATEX: Variables for configure.
+ (line 40)
+* layout of sources: Layout and infrastructure.
+ (line 6)
+* LFS (large file support): '--disable-largefile'.
+ (line 6)
+* libfreetype: Variables for configure.
+ (line 24)
+* 'libfreetype', and 'const': Const. (line 21)
+* libpng library: 'png' library. (line 6)
+* library module, generic, adding: Adding a new generic library module.
+ (line 6)
+* library module, TeX-specific, adding: Adding a new TeX-specific library module.
+ (line 6)
+* library modules: Library modules. (line 6)
+* library-specific 'configure' options: Library-specific configure options.
+ (line 6)
+* libstc++, statically linking: Macros for compilers. (line 29)
+* Libtool: Overview of build system.
+ (line 6)
+* libtool, hack for avoiding excessive linking: Configure options for 'texk/web2c'.
+ (line 55)
+* libXt: Configure options for 'texk/web2c'.
+ (line 22)
+* linked scripts: Linked scripts. (line 6)
+* linking C++ libraries statically: Macros for compilers. (line 29)
+* lisp.run, lisp.exe: Configure options for 'utils/xindy'.
+ (line 14)
+* LittleEndian architectures: Configure options for 'texk/web2c'.
+ (line 27)
+* 'm4/' top-level directory: Top-level directories.
+ (line 14)
+* macros, for compilers: Macros for compilers. (line 6)
+* macros, for libraries: Macros for libraries. (line 6)
+* macros, for library and header flags: Macros for library and header flags.
+ (line 6)
+* macros, for programs: Macros for programs. (line 6)
+* macros, for Windows: Macros for Windows. (line 6)
+* macros, general setup: General setup macros. (line 6)
+* MAKE: Variables for configure.
+ (line 33)
+* make -t: Build system tools. (line 39)
+* mf-nowin: Configure options for 'texk/web2c'.
+ (line 34)
+* 'mingw32': Cross configuring. (line 27)
+* MINGW32, Automake conditional: Macros for Windows. (line 20)
+* mktex.ac: 'kpathsea' library. (line 20)
+* mktextfm: 'kpathsea' library. (line 20)
+* modules, for libraries: Library modules. (line 6)
+* modules, for programs: Program modules. (line 6)
+* motif: Configure options for 'texk/xdvik'.
+ (line 9)
+* native cross compilation: Cross compilation. (line 10)
+* one package, building: Build one package. (line 6)
+* OpenGL, required for Asymptote: 'asymptote'. (line 6)
+* operating system distribution, building for: Distro builds. (line 6)
+* opl2ofm, et al.: Configure options for 'texk/web2c'.
+ (line 37)
+* otangle: Cross problems. (line 31)
+* overall build process: Building. (line 6)
+* parallel build: Build in parallel. (line 6)
+* paths, for installation: Installation directories.
+ (line 6)
+* PDF files, size of: '--disable-largefile'.
+ (line 10)
+* PDFLATEX: Variables for configure.
+ (line 41)
+* PERL: Variables for configure.
+ (line 39)
+* 'perl', required by 'web2c', etc.: Prerequisites. (line 19)
+* PKG_CONFIG: Variables for configure.
+ (line 23)
+* plain.tex, not in source tree: Installing. (line 8)
+* png library: 'png' library. (line 6)
+* poppler: Configure options for system 'poppler'.
+ (line 6)
+* PostScript files, size of: '--disable-largefile'.
+ (line 10)
+* Preining, Norbert: Distro builds. (line 54)
+* preloaded binaries: Configure options for 'texk/web2c'.
+ (line 50)
+* prerequisites for building: Prerequisites. (line 6)
+* problems with build: Build problems. (line 6)
+* program module, adding: Adding a new program module.
+ (line 6)
+* program modules: Program modules. (line 6)
+* program-specific 'configure' options: Program-specific configure options.
+ (line 6)
+* reautoconf: Build system tools. (line 28)
+* recode: Configure options for 'utils/xindy'.
+ (line 23)
+* requirements for building: Prerequisites. (line 6)
+* runscript.exe: Macros for Windows. (line 25)
+* scripts, linked and not maintained: Linked scripts. (line 6)
+* scrolling: Configure options for 'texk/xdvik'.
+ (line 13)
+* SED: Variables for configure.
+ (line 34)
+* setup macros, general: General setup macros. (line 6)
+* shared libraries, using vs. avoiding: Distro builds. (line 11)
+* size of PDF and PS files: '--disable-largefile'.
+ (line 10)
+* size of source tree: Build one package. (line 57)
+* source code declarations: Declarations and definitions.
+ (line 6)
+* source directory building, not supported: Building. (line 17)
+* source tree: Layout and infrastructure.
+ (line 6)
+* squeeze: Cross problems. (line 13)
+* squeeze/configure.ac: 'xdvik' package. (line 14)
+* 'static' functions: Declarations and definitions.
+ (line 37)
+* static linking for C++: Macros for compilers. (line 29)
+* stpcpy: Declarations and definitions.
+ (line 18)
+* Subversion repository: Build system tools. (line 34)
+* support files, separate from build: Installing. (line 8)
+* symlinks, used for scripts: Linked scripts. (line 6)
+* synctex: Configure options for 'texk/web2c'.
+ (line 64)
+* system distribution, building for: Distro builds. (line 6)
+* t1utils package: 't1utils' package. (line 6)
+* tangle: Cross problems. (line 31)
+* tests, running: Overview of build system.
+ (line 6)
+* TeX-specific library module, adding: Adding a new TeX-specific library module.
+ (line 6)
+* texlive.tlpdb, TeX Live database: Installing. (line 8)
+* tie: Cross problems. (line 31)
+* timestamps, in repository: Build system tools. (line 34)
+* tools, for building: Build system tools. (line 6)
+* top-level directories: Top-level directories.
+ (line 6)
+* touching files to avoid rerunning: Build system tools. (line 39)
+* txt2zlib: Cross problems. (line 20)
+* type cast, avoiding: Const. (line 38)
+* use-commit-times, Subversion: Build system tools. (line 34)
+* variable declarations, in source code: Declarations and definitions.
+ (line 54)
+* variables for 'configure': Variables for configure.
+ (line 6)
+* warning, discards qualifiers: Const. (line 30)
+* WARNING_C[XX]FLAGS: Macros for compilers. (line 9)
+* web2c program: Cross problems. (line 13)
+* web2c.ac: Configure options for 'texk/web2c'.
+ (line 42)
+* wget: Linked scripts. (line 22)
+* WIN32, Automake conditional: Macros for Windows. (line 16)
+* WIN32_WRAP, Automake conditional: Macros for Windows. (line 25)
+* Windows, invoking scripts on: Linked scripts. (line 6)
+* Windows, macros for: Macros for Windows. (line 6)
+* withenable.ac, for new modules: Adding a new program module.
+ (line 14)
+* wrapper binary for scripts on Windows: Linked scripts. (line 6)
+* X toolkit: Configure options for 'texk/web2c'.
+ (line 22)
+* X11 headers, and 'const': Const. (line 21)
+* X11, required by X clients: Prerequisites. (line 23)
+* xasy: 'asymptote'. (line 6)
+* xaw: Configure options for 'texk/xdvik'.
+ (line 9)
+* xdvik: 'xdvik' package. (line 6)
+* xdvik <1>: Configure options for 'texk/xdvik'.
+ (line 6)
+* xdvipdfmx: Configure options for 'texk/dvipdfm-x'.
+ (line 6)
+* xindy: Linked scripts. (line 22)
+* xindy <1>: 'xindy' package. (line 6)
+* xindy <2>: Configure options for 'utils/xindy'.
+ (line 6)
+* 'xindy' cross compiling impossible: Cross problems. (line 38)
+* XInput: Configure options for 'texk/xdvik'.
+ (line 13)
+* Xlib: Configure options for 'texk/web2c'.
+ (line 22)
+* xpdf as library: Configure options for system 'poppler'.
+ (line 6)
+* xz: Linked scripts. (line 22)
+* zlib library: 'zlib' library. (line 6)
+
+
+
+Tag Table:
+Node: Top993
+Node: Introduction1911
+Node: Overview of build system3384
+Node: Prerequisites5448
+Node: Building7510
+Node: Build iteration8729
+Node: Build problems9801
+Node: Build in parallel10194
+Node: Build distribution10786
+Node: Build one package11357
+Node: Installing14130
+Node: Installation directories15145
+Node: Linked scripts16965
+Node: Distro builds18446
+Node: Layout and infrastructure20836
+Node: Build system tools21625
+Node: Top-level directories23637
+Node: Autoconf macros25691
+Node: General setup macros26392
+Node: Macros for programs27259
+Node: Macros for compilers28071
+Node: Macros for libraries29505
+Node: Macros for library and header flags29931
+Node: Macros for Windows31800
+Node: Library modules33377
+Node: 'png' library33874
+Node: 'zlib' library36167
+Node: 'freetype' library36688
+Node: 'kpathsea' library37222
+Node: Program modules38646
+Node: 't1utils' package39082
+Node: 'xindy' package39649
+Node: 'xdvik' package40828
+Node: 'asymptote'41907
+Node: Extending TeX Live42362
+Node: Adding a new program module42730
+Node: Adding a new generic library module44249
+Node: Adding a new TeX-specific library module46462
+Node: Configure options47149
+Node: Global configure options48540
+Node: '--disable-native-texlive-build'49108
+Node: '--prefix' '--bindir' ...50104
+Node: '--disable-largefile'50652
+Node: '--disable-missing'51419
+Node: '--enable-compiler-warnings='LEVEL51826
+Node: '--enable-cxx-runtime-hack'52571
+Node: '--enable-maintainer-mode'53004
+Node: '--enable-multiplatform'53539
+Node: '--enable-shared'54100
+Node: '--enable-silent-rules'54477
+Node: '--without-ln-s'54939
+Node: '--without-x'55296
+Node: Program-specific configure options55488
+Node: '--enable-PROG' '--disable-PROG'56151
+Node: '--disable-all-pkgs'56434
+Node: Configure options for 'texk/web2c'57428
+Node: Configure options for 'texk/bibtex-x'60095
+Node: Configure options for 'texk/dvipdfm-x'60671
+Node: Configure options for 'texk/dvisvgm'61510
+Node: Configure options for 'texk/texlive'62400
+Node: Configure options for 'texk/xdvik'62827
+Node: Configure options for 'utils/xindy'63437
+Node: Library-specific configure options64499
+Node: Configure options for 'kpathsea'65513
+Node: Configure options for system 'poppler'66226
+Node: Variables for configure66993
+Node: Cross compilation68421
+Node: Cross configuring69686
+Node: Cross problems71359
+Node: Coding conventions73220
+Node: Declarations and definitions73889
+Node: Const76072
+Node: install-tl77935
+Node: install-tl NAME78276
+Node: install-tl SYNOPSIS78434
+Node: install-tl DESCRIPTION78642
+Node: install-tl REFERENCES79643
+Node: install-tl OPTIONS80159
+Ref: install-tl *-gui* [[=]_module_]80513
+Ref: install-tl 'text'80722
+Ref: install-tl 'wizard'80845
+Ref: install-tl 'perltk'80999
+Ref: install-tl *-no-gui*81433
+Ref: install-tl *-lang* _llcode_81514
+Ref: install-tl *-repository* _url|path_82201
+Ref: install-tl *-select-repository*84012
+Ref: install-tl *-all-options*84448
+Ref: install-tl *-custom-bin* _path_84755
+Ref: install-tl *-debug-translation*85410
+Ref: install-tl *-force-platform* _platform_85629
+Ref: install-tl *-help*, *--help*, *-?*85873
+Ref: install-tl *-in-place*86266
+Ref: install-tl *-logfile* _file_86793
+Ref: install-tl *-no-cls*87144
+Ref: install-tl *-non-admin*87275
+Ref: install-tl *--persistent-downloads*87380
+Ref: install-tl *--no-persistent-downloads*87408
+Ref: install-tl *-portable*88016
+Ref: install-tl *-print-platform*88155
+Ref: install-tl *-profile* _profile_88348
+Ref: install-tl *-q*89842
+Ref: install-tl *-scheme* _scheme_89904
+Ref: install-tl *-v*90378
+Ref: install-tl *-version*, *--version*90539
+Node: install-tl ENVIRONMENT VARIABLES90670
+Ref: install-tl 'TEXLIVE_INSTALL_ENV_NOCHECK'91059
+Ref: install-tl 'TEXLIVE_INSTALL_NO_CONTEXT_CACHE'91261
+Ref: install-tl 'TEXLIVE_INSTALL_PREFIX'91367
+Ref: install-tl 'TEXLIVE_INSTALL_TEXMFCONFIG'91398
+Ref: install-tl 'TEXLIVE_INSTALL_TEXMFHOME'91427
+Ref: install-tl 'TEXLIVE_INSTALL_TEXMFLOCAL'91457
+Ref: install-tl 'TEXLIVE_INSTALL_TEXMFSYSCONFIG'91491
+Ref: install-tl 'TEXLIVE_INSTALL_TEXMFSYSVAR'91522
+Ref: install-tl 'TEXLIVE_INSTALL_TEXMFVAR'91550
+Ref: install-tl 'NOPERLDOC'91605
+Node: install-tl AUTHORS AND COPYRIGHT91669
+Node: tlmgr92027
+Node: tlmgr NAME92464
+Node: tlmgr SYNOPSIS92589
+Node: tlmgr DESCRIPTION92779
+Node: tlmgr EXAMPLES93875
+Ref: tlmgr 'tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet'94166
+Ref: tlmgr 'tlmgr update --list'94347
+Ref: tlmgr 'tlmgr update --all'94440
+Ref: tlmgr 'tlmgr info' _pkg_94596
+Node: tlmgr OPTIONS94802
+Ref: tlmgr *--repository* _url|path_95322
+Ref: tlmgr *--gui* [_action_]96047
+Ref: tlmgr *--gui-lang* _llcode_96454
+Ref: tlmgr *--debug-translation*97137
+Ref: tlmgr *--machine-readable*97340
+Ref: tlmgr *--no-execute-actions*97608
+Ref: tlmgr *--package-logfile* _file_97801
+Ref: tlmgr *--pause*98056
+Ref: tlmgr *--persistent-downloads*98211
+Ref: tlmgr *--no-persistent-downloads*98239
+Ref: tlmgr *--pin-file*98733
+Ref: tlmgr *--usermode*98951
+Ref: tlmgr *--usertree* _dir_99071
+Node: tlmgr ACTIONS99621
+Node: tlmgr help100853
+Node: tlmgr version101329
+Node: tlmgr backup [--clean[=_N_]] [--backupdir _dir_] [--all | _pkg_]...101647
+Ref: tlmgr *--backupdir* _directory_102741
+Ref: tlmgr *--all*102938
+Ref: tlmgr *--clean*[=_N_]103160
+Ref: tlmgr *--dry-run*103457
+Node: tlmgr candidates _pkg_103577
+Ref: tlmgr *candidates _pkg_* 1103864
+Node: tlmgr check [_option_]... [files|depends|executes|runfiles|all]104008
+Ref: tlmgr *files*104451
+Ref: tlmgr *depends*104586
+Ref: tlmgr *executes*104928
+Ref: tlmgr *runfiles*105046
+Ref: tlmgr *--use-svn*105158
+Node: tlmgr conf [texmf|tlmgr|updmap [--conffile _file_] [--delete] [_key_ [_value_]]]105275
+Node: tlmgr dump-tlpdb [--local|--remote]107347
+Ref: tlmgr *--local*107857
+Ref: tlmgr *--remote*107896
+Node: tlmgr generate [_option_]... _what_108318
+Ref: tlmgr *generate language*108559
+Ref: tlmgr *generate language.dat*108584
+Ref: tlmgr *generate language.def*108609
+Ref: tlmgr *generate language.dat.lua*108638
+Ref: tlmgr *generate fmtutil*108658
+Ref: tlmgr *--dest* _output_file_110895
+Ref: tlmgr *--localcfg* _local_conf_file_111471
+Ref: tlmgr *--rebuild-sys*111594
+Node: tlmgr gui112455
+Node: tlmgr info [_option_...] [collections|schemes|_pkg_...]112699
+Ref: tlmgr *--list*113904
+Ref: tlmgr *--only-installed*114183
+Ref: tlmgr *--taxonomy*114398
+Ref: tlmgr *--keyword*114410
+Ref: tlmgr *--functionality*114428
+Ref: tlmgr *--characterization*114449
+Node: tlmgr init-usertree114662
+Node: tlmgr install [_option_]... _pkg_...115088
+Ref: tlmgr *--file*115452
+Ref: tlmgr *--reinstall*115678
+Ref: tlmgr *--no-depends*116058
+Ref: tlmgr *--no-depends-at-all*116217
+Ref: tlmgr *--dry-run* 1116615
+Ref: tlmgr *--force*116733
+Node: tlmgr option116939
+Ref: tlmgr *option [show]*117112
+Ref: tlmgr *option showall*117130
+Ref: tlmgr *option _key_ [_value_]*117156
+Node: tlmgr paper121004
+Ref: tlmgr *paper [a4|letter]*121189
+Ref: tlmgr *[xdvi|pdftex|dvips|dvipdfmx|context|psutils] paper [_papersize_|--list]*121263
+Node: tlmgr path [--w32mode=user|admin] [add|remove]122290
+Node: tlmgr pinning123773
+Ref: tlmgr 'pinning show'124080
+Ref: tlmgr 'pinning add' _repo_ _pkgglob_...124153
+Ref: tlmgr 'pinning remove' _repo_ _pkgglob_...124272
+Ref: tlmgr 'pinning remove _repo_ --all'124425
+Node: tlmgr platform list|add|remove _platform_...124479
+Node: tlmgr platform set _platform_124727
+Node: tlmgr platform set auto124955
+Ref: tlmgr *--dry-run* 2126072
+Node: tlmgr postaction [--w32mode=user|admin] [--fileassocmode=1|2] [--all] [install|remove] [shortcut|fileassoc|script] [_pkg_]...126181
+Node: tlmgr print-platform127483
+Node: tlmgr restore [--backupdir _dir_] [--all | _pkg_ [_rev_]]127955
+Ref: tlmgr *--all* 1128851
+Ref: tlmgr *--backupdir* _directory_ 1129045
+Ref: tlmgr *--dry-run* 3129201
+Ref: tlmgr *--force* 1129318
+Node: tlmgr remove [_option_]... _pkg_...129346
+Ref: tlmgr *--no-depends* 1129869
+Ref: tlmgr *--no-depends-at-all* 1129931
+Ref: tlmgr *--force* 2129987
+Ref: tlmgr *--dry-run* 4130459
+Node: tlmgr repository130566
+Ref: tlmgr *repository list*130774
+Ref: tlmgr *repository list _path|tag_*130804
+Ref: tlmgr *repository add _path_ [_tag_]*130837
+Ref: tlmgr *repository remove _path|tag_*130869
+Ref: tlmgr *repository set _path_[#_tag_] [_path_[#_tag_] ...]*130923
+Node: tlmgr search [_option_...] _what_132007
+Node: tlmgr search [_option_...] --file _what_132518
+Node: tlmgr search [_option_...] --taxonomy _what_132769
+Node: tlmgr search [_option_...] --keyword _what_133080
+Node: tlmgr search [_option_...] --functionality _what_133398
+Node: tlmgr search [_option_...] --characterization _what_133736
+Node: tlmgr search [_option_...] --all _what_134076
+Ref: tlmgr *--global*134524
+Ref: tlmgr *--word*134636
+Ref: tlmgr *--list* 1134875
+Ref: tlmgr *--file* 1135221
+Ref: tlmgr *--taxonomy* 1135278
+Ref: tlmgr *--keyword* 1135290
+Ref: tlmgr *--functionality* 1135308
+Ref: tlmgr *--characterization* 1135329
+Ref: tlmgr *--all* 2135484
+Node: tlmgr uninstall135567
+Ref: tlmgr *--force* 3135821
+Node: tlmgr update [_option_]... [_pkg_]...135877
+Ref: tlmgr *--all* 3136248
+Ref: tlmgr *--self*137989
+Ref: tlmgr *--dry-run* 5138753
+Ref: tlmgr *--list* [_pkg_]138930
+Ref: tlmgr *--exclude* _pkg_139619
+Ref: tlmgr *--no-auto-remove* [_pkg_]...140312
+Ref: tlmgr *--no-auto-install* [_pkg_]...140763
+Ref: tlmgr *--reinstall-forcibly-removed*141419
+Ref: tlmgr *--backup* and *--backupdir* _directory_141983
+Ref: tlmgr *--no-depends* 2143164
+Ref: tlmgr *--no-depends-at-all* 2143367
+Ref: tlmgr *--force* 4143423
+Node: tlmgr USER MODE143849
+Node: tlmgr user mode install146660
+Node: tlmgr user mode backup; restore; remove; update147607
+Node: tlmgr user mode generate; option; paper148049
+Node: tlmgr CONFIGURATION FILE FOR TLMGR148425
+Node: tlmgr TAXONOMIES149516
+Ref: tlmgr '--keyword' 2150142
+Ref: tlmgr '--functionality' 2150227
+Ref: tlmgr '--characterization' 2150383
+Ref: tlmgr '--taxonomy' 2150524
+Node: tlmgr MULTIPLE REPOSITORIES151065
+Node: tlmgr Pinning152786
+Node: tlmgr GUI FOR TLMGR154761
+Node: tlmgr Main display155983
+Node: tlmgr Display configuration area156235
+Ref: tlmgr Status156596
+Ref: tlmgr Category156760
+Ref: tlmgr Match156946
+Ref: tlmgr Selection157206
+Ref: tlmgr Display configuration buttons157410
+Node: tlmgr Package list area157593
+Ref: tlmgr a checkbox158177
+Ref: tlmgr package name158313
+Ref: tlmgr local revision (and version)158412
+Ref: tlmgr remote revision (and version)158787
+Ref: tlmgr short description159084
+Node: tlmgr Main display action buttons159129
+Ref: tlmgr Update all installed159395
+Ref: tlmgr Update159767
+Ref: tlmgr Install159817
+Ref: tlmgr Remove160003
+Ref: tlmgr Backup160181
+Node: tlmgr Menu bar160338
+Ref: tlmgr 'tlmgr' menu160535
+Ref: tlmgr 'Options menu'160843
+Ref: tlmgr 'Actions menu'161926
+Ref: tlmgr 'Help menu'162354
+Node: tlmgr MACHINE-READABLE OUTPUT162487
+Node: tlmgr Machine-readable 'update' and 'install' output163303
+Ref: tlmgr 'location-url' _location_164585
+Ref: tlmgr 'total-bytes' _count_164801
+Ref: tlmgr _pkgname_165211
+Ref: tlmgr _status_165421
+Ref: tlmgr 'd'165499
+Ref: tlmgr 'f'165559
+Ref: tlmgr 'u'165738
+Ref: tlmgr 'r'165784
+Ref: tlmgr 'a'165907
+Ref: tlmgr 'i'166085
+Ref: tlmgr 'I'166204
+Ref: tlmgr _localrev_166306
+Ref: tlmgr _serverrev_166413
+Ref: tlmgr _size_166525
+Ref: tlmgr _runtime_166694
+Ref: tlmgr _esttot_166764
+Node: tlmgr Machine-readable 'option' output166797
+Node: tlmgr AUTHORS AND COPYRIGHT167315
+Node: Index167662
+
+End Tag Table
diff --git a/Master/texmf-dist/doc/info/web2c.info b/Master/texmf-dist/doc/info/web2c.info
index a0349985ccc..2466881f3cc 100644
--- a/Master/texmf-dist/doc/info/web2c.info
+++ b/Master/texmf-dist/doc/info/web2c.info
@@ -1,4 +1,4 @@
-This is web2c.info, produced by makeinfo version 5.1 from web2c.texi.
+This is web2c.info, produced by makeinfo version 5.2 from web2c.texi.
This file documents the installation and use of the programs in Web2c,
an implementation of Donald Knuth's TeX system.
@@ -58,7 +58,7 @@ Web2c
This document describes how to install and use the programs in the Web2c
implementation of the TeX system, especially for Unix systems. It
-corresponds to Web2c version 2013, released in April 2013.
+corresponds to Web2c version 2014, released in May 2014.
* Menu:
@@ -82,8 +82,7 @@ File: web2c.info, Node: Introduction, Next: Installation, Prev: Top, Up: Top
1 Introduction
**************
-This manual corresponds to version 2013 of Web2c, released in April
-2013.
+This manual corresponds to version 2014 of Web2c, released in May 2014.
"Web2c" is the name of a TeX implementation, originally for Unix, but
now also running under DOS, Amiga, and other operating systems. By "TeX
@@ -1182,8 +1181,8 @@ extensions.
* Menu:
* MLTeX:: Multi-lingual TeX.
-* patgen invocation:: Creating hyphenation patterns.
* TCX files:: Support for different character sets & fonts.
+* patgen invocation:: Creating hyphenation patterns.

File: web2c.info, Node: MLTeX, Next: TCX files, Up: Languages and hyphenation
@@ -1406,7 +1405,7 @@ characters become printable by default.
from the dump is ignored and the data from the file used instead.

-File: web2c.info, Node: patgen invocation, Next: TCX files, Prev: TCX files, Up: Languages and hyphenation
+File: web2c.info, Node: patgen invocation, Prev: TCX files, Up: Languages and hyphenation
4.4.3 Patgen: Creating hyphenation patterns
-------------------------------------------
@@ -3585,7 +3584,7 @@ Index
(line 16)
* accented character: TCX files. (line 6)
* accents, hyphenating words with: MLTeX. (line 6)
-* acknowledgements: Introduction. (line 52)
+* acknowledgements: Introduction. (line 51)
* acm.bst: Basic BibTeX style files.
(line 19)
* Ada, WEB for: WEB. (line 12)
@@ -3628,7 +3627,7 @@ Index
* BDF and GF conversion: Font utilities available elsewhere.
(line 15)
* beginfig: mpost invocation. (line 35)
-* Berry, Karl: Introduction. (line 42)
+* Berry, Karl: Introduction. (line 41)
* BIBINPUTS, search path for bib files: bibtex invocation. (line 18)
* bibliographies, creating: BibTeX. (line 6)
* bibliography: References. (line 6)
@@ -3644,7 +3643,7 @@ Index
* blank lines, in TCX files: TCX files. (line 66)
* boxes, memory for: Runtime options. (line 20)
* breakpoints, memory for: Runtime options. (line 20)
-* Breitenlohner, Peter: Introduction. (line 9)
+* Breitenlohner, Peter: Introduction. (line 8)
* BSTINPUTS, search path for bst files: bibtex invocation. (line 18)
* btex for MetaPost labels: mpost invocation. (line 48)
* btxdoc.bib: bibtex invocation. (line 48)
@@ -3714,7 +3713,7 @@ Index
* cross-references, omitting: weave invocation. (line 22)
* current directory, used for output: Output file location.
(line 6)
-* Curtis, Pavel: Introduction. (line 42)
+* Curtis, Pavel: Introduction. (line 41)
* Cweb: WEB. (line 12)
* CWEB: WEB. (line 12)
* date and time, in memory dumps: Hardware and memory dumps.
@@ -3829,7 +3828,7 @@ Index
* fraction routines: Compile-time options.
(line 21)
* Free Software Foundation documentation system: Formats. (line 47)
-* freedom of Web2c: Introduction. (line 23)
+* freedom of Web2c: Introduction. (line 22)
* ftp.math.utah.edu: bibtex invocation. (line 54)
* generating source specials: tex invocation. (line 133)
* geometric designs: Metafont. (line 6)
@@ -3866,12 +3865,12 @@ Index
* headerbyte information: tftopl invocation. (line 95)
* height, in pixels: pktype invocation. (line 62)
* help, online: Common options. (line 11)
-* Henry, Patrick: Introduction. (line 23)
+* Henry, Patrick: Introduction. (line 22)
* Herberts, Mathias: Online Metafont graphics.
(line 20)
* hex character codes, in TCX files: TCX files. (line 77)
-* history: Introduction. (line 42)
-* Hobby, John: Introduction. (line 9)
+* history: Introduction. (line 41)
+* Hobby, John: Introduction. (line 8)
* horizontal escapement: pktype invocation. (line 57)
* horizontal escapement <1>: gftype invocation. (line 106)
* hp2627: Online Metafont graphics.
@@ -3887,7 +3886,7 @@ Index
* hyphenation and languages: Languages and hyphenation.
(line 6)
* hyphenation patterns, creating: patgen invocation. (line 6)
-* ice cream: Introduction. (line 23)
+* ice cream: Introduction. (line 22)
* identifier case: tangle invocation. (line 35)
* identifier collisions: tangle invocation. (line 46)
* identifier length: tangle invocation. (line 27)
@@ -3920,7 +3919,7 @@ Index
* job name: Common options. (line 55)
* kerning table, in TFM files: tftopl invocation. (line 101)
* keyboard character code, translating: TCX files. (line 101)
-* Knuth, Donald E.: Introduction. (line 9)
+* Knuth, Donald E.: Introduction. (line 8)
* Knuth, Donald E. <1>: mft invocation. (line 56)
* KPATHSEA_DEBUG: Common options. (line 59)
* KRN property: tftopl invocation. (line 101)
@@ -3935,7 +3934,7 @@ Index
* left side bearing: pktype invocation. (line 66)
* left side bearing <1>: gftype invocation. (line 82)
* legalisms: Legalisms. (line 6)
-* licensing terms: Introduction. (line 23)
+* licensing terms: Introduction. (line 22)
* LIG property: tftopl invocation. (line 101)
* ligature table, in TFM files: tftopl invocation. (line 101)
* LIGTABLE property: tftopl invocation. (line 101)
@@ -3962,7 +3961,7 @@ Index
* magnification <1>: dvitype invocation. (line 28)
* main_memory: Runtime options. (line 15)
* Make targets, additional: Additional targets. (line 6)
-* Martin, Rick: Introduction. (line 52)
+* Martin, Rick: Introduction. (line 51)
* Mathematical Reviews: Formats. (line 39)
* mathematical typesetting: TeX. (line 6)
* mem file, determining: Determining the memory dump to use.
@@ -4025,8 +4024,8 @@ Index
* modes.mf recommended modes file: Modes. (line 10)
* mode_def: Modes. (line 15)
* mode_setup: Modes. (line 15)
-* Morgan, Tim: Introduction. (line 42)
-* Morris, Bob: Introduction. (line 52)
+* Morgan, Tim: Introduction. (line 41)
+* Morris, Bob: Introduction. (line 51)
* MPEDIT: Editor invocation. (line 10)
* mpgraph.ps: mpost invocation. (line 18)
* mpman.ps: mpost invocation. (line 6)
@@ -4152,7 +4151,7 @@ Index
* pxtoch: Font utilities available elsewhere.
(line 23)
* Raichle, Bernd: MLTeX. (line 6)
-* reading, additional: Introduction. (line 60)
+* reading, additional: Introduction. (line 59)
* readonly directory, running TeX in: Output file location.
(line 15)
* readonly directory, running TeX in <1>: Output file location.
@@ -4171,7 +4170,7 @@ Index
* restricted shell escapes: Shell escapes. (line 6)
* right side bearing: pktype invocation. (line 66)
* right side bearing <1>: gftype invocation. (line 82)
-* Rokicki, Tomas: Introduction. (line 42)
+* Rokicki, Tomas: Introduction. (line 41)
* run length encoded bitmaps: pktype invocation. (line 76)
* run length encoded bitmaps <1>: gftype invocation. (line 89)
* runtime options: Runtime options. (line 6)
@@ -4202,13 +4201,13 @@ Index
* sockets: IPC and TeX. (line 6)
* space-terminated filenames: \input filenames. (line 10)
* Spiderweb: WEB. (line 12)
-* Stallman, Richard: Introduction. (line 52)
+* Stallman, Richard: Introduction. (line 51)
* starting page: dvicopy invocation. (line 28)
* starting page <1>: dvitype invocation. (line 46)
* Steele Jr., Guy L.: Hardware and memory dumps.
(line 34)
* stopping at the first error: Common options. (line 41)
-* strategy, overall: Introduction. (line 17)
+* strategy, overall: Introduction. (line 16)
* string numbers, displaying: pooltype invocation. (line 6)
* string pool, writing: tangle invocation. (line 16)
* string representation: pooltype invocation. (line 30)
@@ -4255,7 +4254,7 @@ Index
* TeX, input files found: tex invocation. (line 20)
* TeX, invocation: tex invocation. (line 6)
* TeX, Metafont, and MetaPost: Three programs. (line 6)
-* TeX, Web2c implementation of: Introduction. (line 9)
+* TeX, Web2c implementation of: Introduction. (line 8)
* tex.fmt: Initial TeX. (line 13)
* TEXBIB, search path for bib files: bibtex invocation. (line 18)
* TEXEDIT: Editor invocation. (line 10)
@@ -4285,11 +4284,11 @@ Index
(line 59)
* torture tests: Triptrap. (line 6)
* translation file for TeX, specifying: Common options. (line 98)
-* translation from WEB to C: Introduction. (line 17)
+* translation from WEB to C: Introduction. (line 16)
* trap Make target: Additional targets. (line 41)
* trap test: Triptrap. (line 6)
* trapman.tex: Triptrap. (line 6)
-* Trickey, Howard: Introduction. (line 42)
+* Trickey, Howard: Introduction. (line 41)
* trip Make target: Additional targets. (line 41)
* trip test: Triptrap. (line 6)
* tripman.tex: Triptrap. (line 6)
@@ -4342,7 +4341,7 @@ Index
* WEB programs, compiling: tangle invocation. (line 6)
* WEB programs, typesetting: weave invocation. (line 6)
* WEB2C, search path for TCX files: TCX files. (line 35)
-* Weber, Olaf: Introduction. (line 42)
+* Weber, Olaf: Introduction. (line 41)
* webmac.tex: weave invocation. (line 22)
* webman.tex: WEB. (line 12)
* whitespace, in TCX files: TCX files. (line 68)
@@ -4386,74 +4385,74 @@ Index

Tag Table:
Node: Top2754
-Node: Introduction3749
-Node: Installation6907
-Node: configure options9009
-Node: Compile-time options11031
-Node: Additional targets12133
-Node: Triptrap13410
-Node: Runtime options14937
-Node: Commonalities16695
-Node: Option conventions17296
-Node: Common options18519
-Node: Path searching22899
-Node: Output file location23871
-Node: Three programs25196
-Node: Initial and virgin25950
-Node: Memory dumps26879
-Node: Creating memory dumps27335
-Node: Determining the memory dump to use28546
-Node: Hardware and memory dumps30127
-Node: Editor invocation32577
-Node: \input filenames33444
-Node: TeX36437
-Node: tex invocation37588
-Node: Initial TeX44491
-Node: Formats45855
-Node: Languages and hyphenation48781
-Node: MLTeX49211
-Node: \charsubdef50699
-Node: \tracingcharsubdef53022
-Node: TCX files53597
-Node: patgen invocation59037
-Node: Shell escapes59761
-Node: IPC and TeX63325
-Node: TeX extensions63895
-Node: Metafont65026
-Node: mf invocation66314
-Node: Initial Metafont70151
-Node: Modes71781
-Node: Online Metafont graphics74031
-Node: gftodvi invocation77456
-Node: mft invocation80276
-Node: MetaPost84274
-Node: mpost invocation85036
-Node: Initial MetaPost90212
-Node: dvitomp invocation91134
-Node: BibTeX91799
-Node: bibtex invocation92160
-Node: Basic BibTeX style files94458
-Node: WEB95788
-Node: tangle invocation97029
-Node: weave invocation99152
-Node: pooltype invocation100559
-Node: DVI utilities101689
-Node: dvicopy invocation102621
-Node: dvitype invocation103904
-Node: dvitype output example106239
-Node: Font utilities109290
-Node: Font file formats110470
-Node: gftopk invocation113739
-Node: pktogf invocation114930
-Node: pktype invocation116096
-Node: gftype invocation118919
-Node: tftopl invocation123422
-Node: pltotf invocation128015
-Node: vftovp invocation129066
-Node: vptovf invocation131301
-Node: Font utilities available elsewhere132328
-Node: Legalisms134708
-Node: References136862
-Node: Index141429
+Node: Introduction3747
+Node: Installation6903
+Node: configure options9005
+Node: Compile-time options11027
+Node: Additional targets12129
+Node: Triptrap13406
+Node: Runtime options14933
+Node: Commonalities16691
+Node: Option conventions17292
+Node: Common options18515
+Node: Path searching22895
+Node: Output file location23867
+Node: Three programs25192
+Node: Initial and virgin25946
+Node: Memory dumps26875
+Node: Creating memory dumps27331
+Node: Determining the memory dump to use28542
+Node: Hardware and memory dumps30123
+Node: Editor invocation32573
+Node: \input filenames33440
+Node: TeX36433
+Node: tex invocation37584
+Node: Initial TeX44487
+Node: Formats45851
+Node: Languages and hyphenation48777
+Node: MLTeX49207
+Node: \charsubdef50695
+Node: \tracingcharsubdef53018
+Node: TCX files53593
+Node: patgen invocation59033
+Node: Shell escapes59739
+Node: IPC and TeX63303
+Node: TeX extensions63873
+Node: Metafont65004
+Node: mf invocation66292
+Node: Initial Metafont70129
+Node: Modes71759
+Node: Online Metafont graphics74009
+Node: gftodvi invocation77434
+Node: mft invocation80254
+Node: MetaPost84252
+Node: mpost invocation85014
+Node: Initial MetaPost90190
+Node: dvitomp invocation91112
+Node: BibTeX91777
+Node: bibtex invocation92138
+Node: Basic BibTeX style files94436
+Node: WEB95766
+Node: tangle invocation97007
+Node: weave invocation99130
+Node: pooltype invocation100537
+Node: DVI utilities101667
+Node: dvicopy invocation102599
+Node: dvitype invocation103882
+Node: dvitype output example106217
+Node: Font utilities109268
+Node: Font file formats110448
+Node: gftopk invocation113717
+Node: pktogf invocation114908
+Node: pktype invocation116074
+Node: gftype invocation118897
+Node: tftopl invocation123400
+Node: pltotf invocation127993
+Node: vftovp invocation129044
+Node: vptovf invocation131279
+Node: Font utilities available elsewhere132306
+Node: Legalisms134686
+Node: References136840
+Node: Index141407

End Tag Table