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:
Thomas Esser <te@informatik.uni-hannover.de>
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 did not move the binaries, but I get the error:
``I can't find the default format file!''.
6) I added some files in the texmf tree. But they are not found.
7) When running some old dvi files through a dvi driver, I get warnings
about checksum errors.
8) What is the best method to get pk fonts in a batch job?
9) What to do if I need the fonts for several modes?
10) Can I share the teTeX directory tree between different platforms?
11) After MakeTeXTPK and MakeTeXTFM sucessfully generate fonts, kpathesa
complains and does not use the newly generated font.
12) MakeTeXTFM runs Metafont with a mode that I do not like.
13) Is there an easy way to copy .tfm or .pk fonts from a temporal directory
to their standard directory below $TEXMF?
14) How about adding program XYY or a macro package ABC to teTeX?
15) Where should I keep my local stuff (programs, macros, ...)?
16) How do I deinstall an old version of teTeX?
17) How do I manage to execute the right binaries on each platform?
18) Why does not install.sh call fontimport to copy the fonts from my
previous teTeX installation?
19) Under DOS, I used emTeX with LJ fonts. Which metafont mode should I use
now with teTeX?
20) Using the Shrink* Buttons in xdvi, I cannot get back to see the full
page on the screen.
21) I want to use amslatex, but there is no such command.
22) teTeX doesn't work with my NEXTSTEP TeXview.app, what should I do ?
23) Some things do not work properly. What should I do now?
24) initex cannot include all the hyphenation patterns I need. It complains
with "! TeX capacity exceeded, sorry [pattern memory=NNNNN]."
25) The scrollbars of xdvi do not make sense to me. How do I move backwards?
26) Is teTeX freely redistributable?
27) xdvi and dvips use the European A4 size as default papersize. How
do I change this to make letterpaper the default?
28) Only one texmf tree can be optimized via ls-R by now. Is there a
"trick" to get around this restiction and speed up file searching
even more?
29) Why does ghostview display of my texts look so much worse than
with xdvi?
30) Metafont does not support the X display.
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://theory.uwinnipeg.ca/pub/tex/teTeX/
ftp://ftp.duke.edu/tex-archive/systems/unix/teTeX
ftp://sunsite.auc.dk/pub/tex/ctan/systems/unix/teTeX/
The following form provides a good help for downloading teTeX:
http://theory.uwinnipeg.ca/search/tetex.html
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 early versions of gs3.XXX when using
gsftopk. Solution: upgrade to gs3.33 or newer.
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 did not move the binaries, but I get the error:
``I can't find the default format file!''.
The name of the default format file is <program>.fmt, where
<program> is the name of the binary you call (e.g. latex, tex).
The directory where the format files are stored is $TEXMF/web2c.
You can see the full search path using the command
kpsetool -p fmt
You should first look into these directories if the format file
is there or not. If it is there, enter the following commands
(use the name of the format file that is not found instead of
my example "latex.fmt"):
texconfig confall
env KPATHSEA_DEBUG=-1 kpsetool -w fmt latex.fmt
The first command could show you some configuration problems, e.g.
a "wrong" PATH so that the "wrong" TeX binaries are found or some
environment variables that you have set (in a way that confuses
Kpathsea). The second command gives you a lot of debugging
information. If you cannot find the reason for the problem by
the given output, then send it to me in an e-mail.
If the format files are not there, you need to create them.
In case of latex.fmt or tex.fmt, just run
texconfig init
It will either create the format files for you, or you will get
an error message that hopefully helps you to solve your problem.
If you need another format file, please refer to the documentation
of the package you want to use. See also anser to 21).
6) 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...
7) 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.
8) 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
allec scripts (allcm is for Computer Modern fonts, and allec for the
ec 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 allec produce lots of warnings. You can just
ignore them.
9) 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, allec) 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 ec fonts with ljfour mode, I would enter:
allec -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.
10) 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.
11) 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 ecti1000.log.
/usr/local/teTeX/texmf/fonts/tfm/jknappen/ec/ecti1000.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. Later versions of bash should not
have that bug.
12) MakeTeXTFM runs Metafont with a mode that I do not like.
Use texconfig and select a different mode as default mode.
13) 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
14) 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.
15) Where should I keep my local stuff (programs, macros, ...)?
I suggest to set up a local texmf tree for your local files. If you
adopt the structure given by the standard tree, then you can set up
the search paths very easily: just set TEXMFL and TEXMFS in texmf.cnf
according to the comments given there.
16) 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).
17) 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` "$@"
18) 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).
19) 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)
20) Using the Shrink* Buttons in xdvi, I cannot get back to see the full
page on the screen.
You are propably using a too high resolution to see the full page
with Shrink4. You can use your keyboard to select even higher shrink
factors, e.g. 8 by typing: "8s" (without the quotes). If you insist
on using the buttons and want the whole pagt to fit with Shrink4,
then you better change xdvi's default mode using, e.g.
texconfig mode cx
This will give you a 300dpi mode. You can select any other mode as
well, of course.
21) I want to use amslatex, but there is no such command.
amslatex is obsolete. Use standard LaTeX and \usepackage{amsmath}.
Do *not* \usepackage{amstex} in new documents (amstex is just for
compatibility with old documents).
22) teTeX doesn't work with my NEXTSTEP TeXview.app, what should I do ?
[ NOTE: there are some teTeX/NeXT specific files available via
ftp and on the web. The URLs are:
http://www.mathi.uni-heidelberg.de/~flight/stepTeX
and in the directory teTeX/contrib/NeXT on the ftp servers where
teTeX is available, e.g.:
ftp://ftp.dante.de/tex-archive/systems/unix/teTeX/contrib/NeXT]
NEXTSTEP's TeXview.app lacks kpathsearch support. Therefore it
doesn't know how to find fonts spread around subdirectories, as in
teTeX and TDS. Two possible solutions:
a) Fetch a modified TeXview.app incorporating kpathsearch. Still in
testing, but usable. The primary site for TeXview-kp is
ftp://zarquon.mathi.uni-heidelberg.de/pub/NeXT/TeX
b) [Not recommended!] `Flatten' teTeX's font directory
layout. Done most easily by setting the "stripsupplier" and
"striptypeface" options within texconfig's FONT/OPTIONS. Remove
NeXTTeX's font directories and replace them by symlinks into teTeX
(replace $TEXMF by the correct value for your installation):
rm -rf /usr/lib/tex/fonts/pk /usr/lib/tex/fonts/tfm
rm -rf /usr/lib/tex/fonts/vf /usr/lib/tex/ps
cd $TEXMF/fonts/tfm ; mv */*/*.tfm .; rmdir */* * >/dev/null
cd $TEXMF/fonts/vf ; mv */*/*.vf .; rmdir */* * >/dev/null
cd $TEXMF/dvips; mv */* .; rmdir * >/dev/null
ln -s $TEXMF/fonts/pk/nextscrn /usr/lib/tex/fonts/pk
ln -s $TEXMF/fonts/tfm /usr/lib/tex/fonts/tfm
ln -s $TEXMF/fonts/vf /usr/lib/tex/fonts/vf
ln -s $TEXMF/dvips /usr/lib/tex/ps
ln -s $TEXMF/dvips/config.dfaxhigh $TEXMF/dvips/config.fax
texconfig font options stickydir stripsupplier striptypeface
texhash
If you seem to have NEXTSTEP-specific problems with teTeX, contact
Gregor Hoffleit <flight@mathi.uni-heidelberg.de>
23) Some things do not work properly. What should I do now?
First, make sure that your "environment" is ok and run
texconfig confall
This gives you an idea about which binaries are found along your
PATH and if you have set some environment variables that might
confuse teTeX's programs. If in doubt, unset all variables that
are set in the last section of the output.
If binaries other than teTeX's are found, then change the definition
of your PATH. Put the directory containing teTeX's binaries earlier
into your PATH, so that teTeX's binaries are found before any other
TeX relared stuff.
Then, your ls-R file might be out of date. Run
texhash
and see if your problem goes away.
If your problem is due to old LaTeX209 files that do not work with
LaTeX2e, then read $TEXMF/doc/latex/base/clsguide.dvi.
If you cannot solve your problem by yourself, then
a) if you think your problem is a general question about TeX/LaTeX:
ask in some Newsgroup, such as comp.text.tex for help, or try to
contact a local TeX user group.
b) if you think there is a bug in a package contained in teTeX:
contact the maintainer of the package with a good bug report. Add my
Email adress in the Cc field of your bug report, if you want.
c) if your problem seems to be teTeX specific (e.g. a problem with
one of the binaries or shell-scripts), then report it to the
teTeX mailing list (tetex@informatik.uni-hannover.de). Please
provide the following information:
* The version of teTeX you have. For example
teTeX version is 0.4
Indicate if you have any updates installed. (See $TEXMF/updates.dat).
* The flavor of Unix you are running (Solaris, HP, Linux, etc), and
its version. For example
The system is Solaris 2.4
* The output of the command
texconfig confall
* Possibly a *short* TeX file you have problem running, and
the whole output of `texcommand filename', say, until the
first error.
24) initex cannot include all the hyphenation patterns I need. It complains
with "! TeX capacity exceeded, sorry [pattern memory=NNNNN]."
Three possible solutions:
- Maybe, you do not need the german patterns. These are enabled by
default, since this is what the maintainer uses :-) If you do not
need them, make sure, that the corresponding line is commented-out
in language.dat.
- You can try without texconfig and generate the (la)tex format
files "by hand". Follow these steps:
A) cd `kpsexpand '$TEXMF'/web2c`
B) create a language.dat file with *some* (not all) of the languages,
you need (e.g. english and german)
C) run initex to create the format file you need, e.g.
initex latex.ltx
initex tex.ini
...
D) rename the format file, e.g.
mv latex.fmt delatex.fmt
E) repeat B) - D) until you have all format files you need
F) create symbolic links to virtex for each of the format files
that you have generated, e.g.
ln -s virtex delatex
(do this in the directory where the teTeX binaries are)
- Get the sources, edit web2c/tex/tex.ch (increase the trie_size).
Then follow INSTALL.src that comes with the sources.
25) The scrollbars of xdvi do not make sense to me. How do I move backwards?
The scrollbars are what one calls Athena scrollbars. To scroll
forward, click the left mouse button on the location you would want
to scroll to the beginning of the displayed area. To scroll backward,
click the right mouse button on where you want to scroll the beginning
of the displayed area to. Click the middle mouse button for "dragging"
the beginning of the displayed area around.
26) Is teTeX freely redistributable?
Not all of it. Parts of it may not be distributed for a profit.
See the copyright notices on individual packages.
27) xdvi and dvips use the European A4 size as default papersize. How
do I change this to make letterpaper the default?
Simple answer: use texconfig.
texconfig dvips paper letter
texconfig xdvi us
28) Only one texmf tree can be optimized via ls-R by now. Is there a
"trick" to get around this restiction and speed up file searching
even more?
Yes! There is the "standard" texmf tree, which is named $TEXMF.
ls-R only supports this one tree. But, symlinks are followed, so
you can do e.g.
ln -s /my/second/texmf $TEXMF/second
ln -s /my/third/texmf $TEXMF/third
Then, make your local trees acessible in texmf.cnf e.g. as $TEXMF/second
(but not as /my/second/texmf). Do not forget to run
texhash
to update ls-R.
29) Why does ghostview display of my texts look so much worse than
with xdvi?
xdvi does antialiasing. If your version of ghostscript is
sufficiently new, it has the x11alpha device. Check for this with
gs -h
If it has, then putting
Ghostview*arguments: -sDEVICE=x11alpha
in your .Xdefault file (typically) will make ghostview use an
anti-aliasing display as well, at the cost of display speed.
30) Metafont does not support the X display.
It may be that your virmf binary is compiled without support for
the X windows system. If there exists a virmf.X binary, that one
has the missing X support you need. The easiest way to use it is
to change the symbolic link mf -> virmf:
rm mf; ln -s virmf.X mf
|