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 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, mktexpk 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 mktexpk and mktextfm successfully generate fonts, kpathsea complains and does not use the newly generated font. 12) mktextfm 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 $TEXMFMAIN? 14) How about adding program XYY or a macro package ABC to teTeX? 15) I want to keep my files separate from the system's files. What do I need to do to make sure that tex+friends will find my files? 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) Which is the right way of using the AMS fonts/macros with LaTeX? 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) dvips, pdftex, dvipdfm and xdvi use the European A4 size as default papersize. How do I change this to make letterpaper the default? 28) Why does ghostview display of my texts look so much worse than with xdvi? 29) Metafont does not support the X display. 30) I have problems to use the LaTeX 209 llncs styles from Springer. 31) What about revtex or llncs styles? I don't get the pre-LaTeX 2e version working with teTeX. 32) How can I get the Euro currency symbol? 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://lh116.uwinnipeg.ca/pub/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@dbs.uni-hannover.de and the announcement list is tetex-announce@dbs.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@dbs.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@dbs.uni-hannover.de . 3) I use PostScript fonts in my documents. When previewing with xdvi, mktexpk 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 is 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 .fmt, where 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 answer 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. It runs 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 '$TEXMFMAIN'`/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. 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 8) (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 platform-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 mktexpk and mktextfm successfully generate fonts, kpathsea 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 probably 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) mktextfm 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 $TEXMFMAIN? If the temporal directory is organized according to the TDS, just copy the whole tree using "cp -a" (GNU cp) or use a tar pipe for copying, like: cd /source/dir; tar cf - | (cd /dest/dir; tar xf -) and remove the contents of the temporal directory afterwards. If the temporal directory is not TDS compliant, I suggest to use the fontimport utility. If you want to turn off the "varfonts" feature for fontimport, set USE_VARTEXFONTS to 0 in the environment. An easy method to move your fonts from, e.g. $VARTEXFONTS to their "final" standard place is the following (can be used e.g. for a cron command): env USE_VARTEXFONTS=0 fontimport -d `kpsexpand '$VARTEXFONTS'`; 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) I want to keep my files separate from the system's files. What do I need to do to make sure that tex+friends will find my files? If you just have one kind of files (e.g. some metafont source files), put them in one directory and set the corresponding environment variable, in this case: MFINPUTS (for a complete list of search paths and environment variables, see the web2c manual web2c.dvi). Assume that I put some fonts into subdirectories of $HOME/mf-sources. If I do (for csh-like shells): setenv MFINPUTS .:~/mf-sources//: resp. MFINPUTS=.:~/mf-sources//:; export MFINPUTS then metafont will search for font files in: 1) the current directory 2) $HOME/mf-sources and its subdirectories (subdirectory searching is enabled by the two slashes in the end of the directory) 3) the system's directories (this is enabled by the trailing colon) If you have several kind of files, I recommend to set up a texmf tree for these files. texmf trees follow a common directory structure, see tds.dvi. To make a new texmf tree known to tex+friends, you have to set up the TEXMF variable. This variable can be set in a texmf.cnf file or in your environment. It lists all known texmf trees, but needs a special syntax, which is: TEXMF={A,B,C} for three texmf trees: A, B and C. You have to add the system's texmf trees here. A trailing colon will do the wrong thing. Example: the system's texmf.cnf file has TEXMF = {!!$TEXMFLOCAL:!!$TEXMFMAIN} and I want to add my texmf tree which is ~/texmf. Several possible ways to do this: a) edit the texmf.cnf file (if you are allowed) and set TEXMF = {~/texmf,!!$TEXMFLOCAL:!!$TEXMFMAIN} b) set TEXMF in the environment (example for csh): setenv TEXMF '{~/texmf,!!$TEXMFLOCAL:!!$TEXMFMAIN}' Note: if ! is your history character, you might need to quote it like in setenv TEXMF '{~/texmf,\!\!$TEXMFLOCAL:\!\!$TEXMFMAIN}' c) set up a personal texmf.cnf file: Put the line TEXMF = {~/texmf,!!$TEXMFLOCAL:!!$TEXMFMAIN} in a personal texmf.cnf file, e.g. $HOME/config/texmf.cnf and set the variable TEXMFCNF in your environment to make sure your file is read *before* the system's texmf.cnf file: setenv TEXMFCNF ~/config: You might also want to create a filename database (ls-R file) to speed up searching your texmf tree. Just enter the command texhash $HOME/texmf 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 answers 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. The four buttons can be configured via X resources. Just add them either to your personal X resources (usually ~/.Xdefaults) or to xdvi's global configuration file XDvi which resides in $TEXMFMAIN/xdvi. Such a resource setting might look like this: XDvi*shrinkButton3: 6 (This example configures button 3 to do a shrinking by a factor of 6). 21) Which is the right way of using the AMS fonts/macros with LaTeX? Just \usepackage{amsmath} and/or \usepackage{amsfonts}. Read the documentation in $TEXMF/doc/latex/amslatex and $TEXMF/doc/fonts/ams. Do *not* \usepackage{amstex} (amstex.sty is just for compatibility with old documents and only for use in LaTeX's 2.09 compatibility mode). Add \usepackage{amssymb} to get full access to all AMS symbols. 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 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 "environment variables" 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 related 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@dbs.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) I get a error message about "TeX capacity exceeded". What can I do? If there is a constant in the system's texmf.cnf file, just enlarge this (by editing the texmf.cnf file) and run the command texconfig init 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? Yes. All parts of teTeX have been classified as being free software. 27) dvips, pdftex, dvipdfm and xdvi 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 pdftex paper letter texconfig dvipdfm paper letter texconfig xdvi us 28) 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. 29) Metafont does not support the X display. It may be that your Metafont binary is compiled without support for the X windows system. If there exists a mfw binary, that one has the missing X support you need. 30) I have problems to use the LaTeX 209 llncs styles from Springer. LaTeX 2e compatible files for llncs are available from ftp://trick.ntp.springer.de/pub/tex/latex/llncs/latex2e/ Use them instead of the old LaTeX 209 style files. 31) What about revtex or llncs styles? I don't get the pre-LaTeX 2e version working with teTeX. Forget about the pre-LaTeX 2e versions of these. Get the latest revtex beta from CTAN:macros/latex/contrib/supported/revtex4-beta and llncs from ftp://trick.ntp.springer.de/pub/tex/latex/llncs/latex2e/ These should work with LaTeX 2e. 32) How can I get the Euro currency symbol? In LaTeX, use the marvosym package (documentation: texdoc marvodoc). It provides several Euro symbol by the command \EUR. The variants \EURtm, \EURhv and \EURcr match are designed to be used together with the fonts Times, Helvetica and Courier respectively.