This is the FAQ for teTeX -- a TeX distribution for UNIX compatible
systems. If you have questions about some points that remain unclear,
or if you think that things could be described better, just drop me
a line. My Email address:

        te@informatik.uni-hannover.de (Thomas Esser)


This article includes answers to:
  0) Where can I get the teTeX distribution?
  1) Is there a mailing list for teTeX?
  2) Now that I know that there is a mailing list: is there an archive
     of the list?
  3) I use PostScript fonts in my documents. When previewing with xdvi,
     MakeTeXPK sometimes hangs in gsftopk.
  4) I moved the binaries to a different location. Now, tex says:
     ``I can't find the default format file!''.
  5) I added some files in the texmf tree. But they are not found.
  6) When running some old dvi files through a dvi driver, I get warnings
     about checksum errors.
  7) What is the best method to get pk fonts in a batch job?
  8) What to do if I need the fonts for several modes?
  9) Can I share the teTeX directory tree between different platforms?
 10) After MakeTeXTPK and MakeTeXTFM sucessfully generate fonts, kpathesa
     complains and does not use the newly generated font.
 11) MakeTeXTFM runs Metafont with a mode that I do not like.
 12) Is there an easy way to copy .tfm or .pk fonts from a temporal directory
     to their standard directory below $TEXMF?
 13) How about adding program XYY or a macro package ABC to teTeX?
 14) Where should I keep my local stuff (programs, macros, ...)?
 15) How do I deinstall an old version of teTeX?
 16) How do I manage to execute the right binaries on each platform?
 17) Why does not install.sh call fontimport to copy the fonts from my
     previous teTeX installation?
 18) Under DOS, I used emTeX with LJ fonts. Which metafont mode should I use
     now with teTeX?


Answers:

0)  Where can I get the teTeX distribution?

    The primary site is in germany:
      ftp://sunsite.informatik.rwth-aachen.de:/pub/comp/tex/teTeX

    Mirror sites:
      ftp://ftp.dante.de/tex-archive/systems/unix/teTeX
      ftp://ftp.tex.ac.uk/tex-archive/systems/unix/teTeX
      ftp://sunsite.unc.edu/pub/Linux/apps/tex/teTeX/distrib

1)  Is there a mailing list for teTeX?

    Yes. Tere is one list for discussion and one (moderated) list for
    announcements. The discussion list is
      tetex@informatik.uni-hannover.de
    and the announcement list is
      tetex-announce@informatik.uni-hannover.de
    To subscribe to one of these lists, send a message containing the line
        subscribe tetex
    or
        subscribe tetex-announce
    resp. to majordomo@informatik.uni-hannover.de . The majordomo server
    understands a few more commands. To get more help about our
    server, send a mail with the line 'help' in the body.
    Note that announcements are posted into both lists, so if you are
    interested in discussions and announcements, you only need to
    subscribe to the tetex list.

2)  Now that I know that there is a mailing list: is there an archive
    of the list?

    Yes. Just send a message with the line
        get tetex archive
    to majordomo@informatik.uni-hannover.de .

3)  I use PostScript fonts in my documents. When previewing with xdvi,
    MakeTeXPK sometimes hangs in gsftopk.

    There are known problems with gs3.XXX when using gsftopk. Solution:
    use GNU gs2.6.2.

4)  I moved the binaries to a different location. Now, tex says:
    ``I can't find the default format file!''

    The modified Kpathsea library (a library to locate files on disks,
    written by Karl Berry) used in the teTeX distribution set the
    variables SELFAUTODIR and SELFAUTOPARENT relative to the location of
    the binary.
 
    SELFAUTODIR is the directory one level above the directory containing the
    binary and SELFAUTOPARENT is its parent directory.
 
    Example1: assuming xdvi is found in /usr/tex/bin/i486-linux/xdvi.
          => SELFAUTODIR:         /usr/tex/bin
          => SELFAUTOPARENT:      /usr/tex
 
    Example2: assuming xdvi is found in /usr/tex/bin/xdvi.
          => SELFAUTODIR:         /usr/tex
          => SELFAUTOPARENT:      /usr
 
    The file texmf.cnf is searched for in $SELFAUTODIR, $SELFAUTOPARENT,
    $TETEXDIR. If the file texmf.cnf if not found, set the TETEXDIR variable
    in your environment.
 
    But even if the texmf.cnf file is found, there may be an incorrect
    definition of TETEXDIR in the file. Check the following:

    In example1, you could use TETEXDIR=$SELFAUTOPARENT and in example2
    TETEXDIR=$SELFAUTODIR. A simpler setting for TETEXDIR could simply
    be TETEXDIR=/usr/tex in both cases. This can be convenient if you
    are not going to change the location of your teTeX tree.

5)  I added some files in the texmf tree. But they are not found.
 
    You need to run texhash to update the ls-R file. See answer to 14)
    as well...

6)  When running some old dvi files through a dvi driver, I get warnings
    about checksum errors.

    The PostScript fonts are completely rearranged and the tfm files have
    different checksums. If you have the (La)TeX source of your document,
    you can get rid of the messages by running the sources through (La)TeX
    again.

7)  What is the best method to get pk fonts in a batch job?
 
    If you do have lots of dvi files (e.g. the documentation of teTeX),
    just run the allneeded script on them. If does run all those files
    through dvips (but output is send to /dev/null and not to a printer),
    and thus calculates all fonts that are needed to print these files
    (or preview with the same mode).

    Example:
         allneeded `kpsexpand '$TEXMF'`/doc >& /tmp/allneeded.log &

    The above command calculates the pk files for all the installed
    documentation in a background job.

    If you do not have many dvi files, you can use the allcm and/or
    alldc scripts (allcm is for Computer Modern fonts, and alldc for the
    DC fonts). You need to have LaTeX installed and the scripts calculate
    the fonts for all sizes and shapes that are used in typical LaTeX
    documents. allcm and alldc produce lots of warnings. You can just
    ignore them.
 
8)  What to do if I need the fonts for several modes?

    You only need the modes together with a printer or for previewing. You
    should add a dvips configuration file for each printer using texconfig
    and use the most common printing mode for previewing.
    Then, any of the above scripts in 7) (allneeded, allcm, alldc) can be
    given an argument of the form -P PRINTER (where PRINTER must be a known
    printer for dvips). This will calculate the fonts with the mode of
    the printer PRINTER.

    Example:
         For dvips I have configured the printer lp to have the mode
         ljfour. To get all DC fonts with ljfour mode, I would enter:
 
         allcm -P lp

    If you do not have a dvips configuration file that corresponds to a
    specific mode, you can still enter the mode on the command line.
    Note however, that you should specify the corresponding resolution
    as well.

    Example:
         To get all fonts in cx mode (CanonCX mode is used by many 300dpi
         printers), give the command:

         allcm -D 300 -mode cx

    The flags -D and -mode are directly passed down to dvips.

9)  Can I share the teTeX directory tree between different platforms?

    Yes. The only platforms specific directory is $TETEXDIR/bin. If you
    want to use the same teTeX tree on different platforms, just put
    the binaries for each platform into a different subdirectory of
    $TETEXDIR/bin, e.g
         /usr/local/TeX/bin/i486-linux
         /usr/local/TeX/bin/sparc-solaris2.4
    You can then mount the whole $TETEXDIR tree on all machines and
    share almost all the files between them.

10) After MakeTeXTPK and MakeTeXTFM sucessfully generate fonts, kpathesa
    complains and does not use the newly generated font.

    If you happen to see output like this:
       ...
       Transcript written on dcbxti10.log.
       /usr/local/TeX/teTeX/texmf/fonts/tfm/public/dc/dcbxti10.tfm
       kpathsea: Appending font creation commands to missfont.log.
       ...
    then your shell is propably very broken. This problem is known with
    the original bash 1.14.3 that has many problems with exit codes and
    trap handling. Try the following line:

        sh -c 'exit 1'; echo $?

    The buggy bash gives 127 as result. Fixes for these problems have been
    available e.g. from the internet newsgroup gnu.bash.bug, so not all
    instances of bash 1.14.3 are broken. The current bash (now: 1.14.6)
    does work fine with all scripts in teTeX.

11) MakeTeXTFM runs Metafont with a mode that I do not like.

    Use texconfig and select a different mode as default mode.

12) Is there an easy way to copy .tfm or .pk fonts from a temporal directory
    to their standard directory below $TEXMF?

    Yes. Use the fontimport utility. If your want to turn off the "varfonts"
    feature for fontimport, set USE_VARFONTS to false in the environment.

    An easy method to move your fonts from, e.g. $VARFONTS to their
    "final" standard place is the following (can be used e.g. for a cron
    command):

        env USE_VARFONTS=false fontimport -d `kpsexpand '$VARFONTS'`; texhash

13) How about adding program XYY or a macro package ABC to teTeX?

    Well, there are some things to take into account:
        - I want to keep the size of the distribution small.
        - I have only a limited amount of time.
        - teTeX can be installed with a simple 'make world' on the most
          common UNIX platforms. Adding a new program could break the whole
          thing.
    Please think about this before asking me to add something. But if a
    really useful thing can be added without much effort and disk space
    usage, I may decide to do that.

    Another possibility is, that things are added to the contrib directory
    of teTeX.

14) Where should I keep my local stuff (programs, macros, ...)?

    I suggest to use a different directory tree and to adjust the search
    paths in the texmf.cnf file.

    Example: let us assume that you keep your local TEXMF tree
      in /usr/local/TeX.extra/texmf and you keep the same structure
      there that I used in the TEXMF tree of teTeX. You should modify
      your texmf.cnf like this (but do not break the lines):

	TEXMFLOCAL=/usr/local/TeX.extra/texmf
	TEXINPUTS.latex=$KPSE_DOT:!!$TEXMF/tex/latex//:!!$TEXMF/tex//:
          $TEXMFLOCAL/tex/latex//:$TEXMFLOCAL/tex//
	TEXINPUTS.tex=$KPSE_DOT:!!$TEXMF/tex//:$TEXMFLOCAL/tex//
	MFINPUTS=$KPSE_DOT:!!$TEXMF/metafont//:!!$FONTDIR/source//:
          $TEXMFLOCAL/metafont//:$TEXMFLOCAL/fonts/source//
	VFFONTS=!!$FONTDIR/vf//:$KPSE_DOT
	TFMFONTS=!!$FONTDIR/tfm//:TEXMFLOCAL/fonts/tfm//:
	  VARFONTS/tfm//:$KPSE_DOT
	...

15) How do I deinstall an old version of teTeX?

    Well, the simple answer is: rm -rf. But there may be some more
    things you want to do. You may keep a backup of your .pk fonts or of
    some local files you added to $TEXMF (see question 14, too) before
    you remove the old directory tree. Note, however that from teTeX 0.2
    to 0.3, there has been an update of the CM fonts (Knuth has updated
    the Metafont sources). So you may want to remove your old .pk files
    and have them recreated with the new sources.

    Another problem is, that there may be some symbolic links in
    /usr/local/{bin,man} (or a similar directory) after you remove the
    old teTeX directory tree and you may want to remove those links,
    too. A simple way to do this, is the following:

        cd /usr/local/bin
        sh -c 'for i in *; do test -s $i || echo $i; done'

    This loop echo'es all files with zero length, especially all stale
    symbolic links. If you want to remove all files that are shown by the
    command above, you can do this with:

        sh -c 'for i in *; do test -s $i || rm -f $i; done'

    You can repeat the above steps for other directories, as well 
    (e.g. /usr/local/man/man1 and /usr/local/man/man5).

16) How do I manage to execute the right binaries on each platform?

    Assuming that you have binaries for several platforms installed, your
    binaries are in $TETEXDIR/bin/PLATFORM. The first thing you can try is
    to set up your PATH with
        SYSDIR=`uname -m`-`uname -s`
        PATH=$TETEXDIR/bin/$SYSDIR:...
    You may need to rename the PLATFORM directories for this method.

    Another thing that may help is to include a local directory in your
    PATH (e.g. /usr/local/bin) and create symbolic links for the binaries:
        linux# ln -sf /usr/local/teTeX/bin/i486-linux/* /usr/local/bin
        sun# ln -sf /usr/local/teTeX/bin/sparc-solaris2.4/* /usr/local/bin
        ...

    If you do not like the uname-method for your PATH and the symlink
    method, you may consider installing a small wrapper program that
    calls the programs for the right platform. Install the wrapper in
    $TETEXDIR/bin and create a symbolic link for each binary.

    Here an example:
	TETEXDIR=/usr/local/teTeX
	cd $TETEXDIR/bin
	vi platf_wrapper 	# see script below ...
	chmod +x platf_wrapper
	list=`ls i486-linux`	# get a list of programs. 
	for i in $list; do
		ln -s platf_wrapper $i
	done

     Tell your users to include $TETEXDIR/bin in their PATH. Make sure
     that TETEXDIR is either set to an absolute path (e.g. /usr/local/teTeX)
     or to $SELFAUTODIR (but not $SELFAUTOPARENT), since the programs are
     now found one directory level earlier.

     Now the sample wrapper. Customize, if you need:

       #!/bin/sh
       
       # the path to the directories with the subdirs for each platform
       BINDIR=/usr/local/teTeX/bin
       
       # export the variable. If we are called again,
       # we do not need to recalculate.
       export THIS_PLATFORM
       
       case "$THIS_PLATFORM" in
         "")
           case "`uname -s`" in
             Linux)
               THIS_PLATFORM=i486-linux;;
             SunOS)
               THIS_PLATFORM=sparc-solaris2.4;;
             IRIX)
               THIS_PLATFORM=mips-irix5.3;;
             *)
               echo "$0: fatal error: system not detected." >&2
               exit 1
           esac;;
       esac
       
       exec $BINDIR/$THIS_PLATFORM/`basename $0` "$@"

17) Why does not install.sh call fontimport to copy the fonts from my
    previous teTeX installation?

    Knuth has updated the Metafont sources. You get better .pk fonts if
    you recalculate them. See also the ansers 7) and 8).

18) Under DOS, I used emTeX with LJ fonts. Which metafont mode should I use
    now with teTeX?

    cx mode. It is common to most 300DPI laser printers. I.e. in
    texconfig|MODE, choose the line saying:

   	cx        Canon CX, SX, LBP-LX (300dpi)
