TeX Live FAQ

From ArchWiki
Revision as of 14:37, 6 May 2010 by Unhammer (Talk | contribs) (Q: LyX says the PDF file I wanted it to make doesn't exist, but it will make (ugly) ps/div files)

Jump to: navigation, search

This FAQ contains answers to some TeXlive related questions that have appeared on the forums, as well as some other info that might be useful.

General questions: Where should I start? Resources?

For an introduction to LaTeX, I recommend "The not so Short Introduction to LaTeX" by Tobias Oetiker. Originally German, this document is translated to many languages, especially to the lingua franca of the Internet, English. Downloadable from CTAN here.

Q: How can I access texlive documentation?

A: Provided that you installed appropriate texlive-*-doc packages,

texdoc <packagename>

can probably (i.e. in many cases) do the job. Unfortunately some package authors do not name their documentation equally to their package. So asking for documentation in Forums or mailing lists not always is silly.

Q: I want latex to do something special, and I'm pretty sure someone before me had to have the same problem.

A: There is an excellent TeX FAQ on the web. Typical latex problems (special headers, different page layout, tricks with tables, etc..) are all covered there. Searchable!

Q: I want to read more! More! I said more!

A: Andy Roberts (arooaroo) has a couple of tricks on his website Getting to grips with LaTeX, which has been used as a basis for LaTeX wikibook. You could also check out The not so Short Introduction to LaTeX which is available in many languages.

Tricks with LaTeX

Q: I need/want to use some funky bibliography/references format.

A: biblatex is then the thing you are looking for (it's in AUR). It has an enhancement biblatex-dw, also in AUR, which is especially valuable for the special issues in the Humanities.

TeXlive directory structure and important files

Q: What's up with all these dirs /usr/share/{texmf,texmf-dist,texmf-var,texmf-config}?

A: TeX uses several "source trees"; they have the same internal structure, and can "overlap". This is to allow users to modify files provided system-wide without having to access files they're not supposed to access. Here's the portion of the main config file which lists all these dirs with some explanations ($SELFAUTODIR=/usr/share):

% The tree containing the runtime files closely related to the specific
% program version used:
TEXMFMAIN = $SELFAUTODIR/texmf
% The main distribution tree:
TEXMFDIST = $SELFAUTODIR/texmf-dist
% A place for local additions to a "standard" texmf tree.
% This tree is not used for local configuration maintained by
% texconfig, it uses TEXMFCONFIG below.
TEXMFLOCAL = $SELFAUTODIR/texmf-local
% TEXMFSYSVAR, where texconfig-sys stores variable runtime data.
TEXMFSYSVAR = $SELFAUTODIR/texmf-var
% TEXMFSYSCONFIG, where texconfig-sys stores configuration data.
TEXMFSYSCONFIG = $SELFAUTODIR/texmf-config
% User texmf trees are allowed as follows.
TEXMFHOME = $HOME/texmf
% TEXMFVAR, where texconfig stores variable runtime data.
TEXMFVAR = $HOME/.texmf-var
% TEXMFCONFIG, where texconfig stores configuration data.
TEXMFCONFIG = $HOME/.texmf-config

Note that they are searched in the reverse order that they are listed above (I think). So when some problems pops up, search the trees in the proper order ;)

One more remark: if you install something just for you, it should go to your home texmf tree. However, on desktops, you might not want to clutter your home dir; then it should go to texmf-local tree (which should be writable by the "tex" group).

Q: I want to have some configuration app!

A: Run

texconfig

Careful! When you run this as a user, you modify settings for that user. If you want to modify system-wide settings, run

texconfig-sys

as root instead.

Q: I want to edit textfiles! Where are some configuration files?

A: Keeping in mind the above directory structure (<texmfroot> refers to one of the dirs above), here you go: The main config file:

<texmfroot>/web2c/texmf.cnf

List of formats generated:

<texmfroot>/web2c/fmtutil.cnf

Settings with which are e.g. bitmap fonts generated

<texmfroot>/web2c/mktex.cnf

Which and how type1 fonts are used instead of metafont generated bitmap ones?

<texmfroot>/web2c/updmap.cfg

Common problems with TeXlive

Q: I just updated texlive and it stopped working.

A: While this can be caused by many things, the most common reason for troubles of this sort is the following mechanism of how texlive works: there can be more than one "tree of tex files" which are put "on top of each other" as far as TeX is concerned (see question 3.1 above), and so there can be more copies of "the same" config file around on the disk, and only one of them is used. In particular, if a user makes some config changes, or generates some formats, the resulting "changes" are saved in the local user's tree (~/.texlive/texmf-{var,config}), and while these exist, they are always preferred over the system files. This implies that even if the system files are updated on texlive update, when a user runs tex, it still uses the "old" files that are in ~/.texlive.

Hence, if you suspect that this might be the cause of the problem, you can

  • backup your ~/.texlive dir somewhere and try again. If the problem persists, with big probability it's a problem with some texlive-* package.
  • there is a tool with which one can check which file with a particular name is "seen" by tex. Namely
 kpsewhich <filename>

returns the full path to file of that name that would tex use.

Finally, the most usual troubles that span from this behavior are:

  • after upgrade, tex "stops working" with the following error message:
 Fatal format file error; I'm stymied.

What one should understand is that TeX system "precompiles" formats (that is, takes the macros which constitute for instance the latex format, and creates a binary thing (file latex.fmt), which is then used when you call "latex <somefile>"). Now when the tex binary itself is updated, all the precompiled formats need to be recompiled as well. While pacman does that for you for system-wide formats, the info above implies that if a user (or some program like LyX) ever compiled the formats by himself, that user needs to recompile the formats manually. The command for that is

 fmtutil --all

(as a user). (Btw, the location of *.fmt files is <texmfroot>/texmf-var/web2c.) The other option is to delete the *.fmt files from the local tree (~/.texlive/texmf-var/web2c/*.fmt) and use the system-wide generated formats (which can be regenerated by "sudo fmtutil-sys --all").

  • after upgrade, some fonts stop being used properly; or there is an error that tex can't find some font. This is related to the question 4.4 below - you most probably have a local 'updmap.cfg' file (check by "kpsewhich updmap.cfg") which doesn't reflect changes in *.map files and fonts which came with the upgrade. In this case, apply the methods from the question 4.4.

Q: I want use ConTeXt.

A: (English) ConTeXt should be enabled automatically. Remember that the ruby wrapper to be used with ConTeXt is

texexec

If ConTeXt is not enabled (or you want to use localized version), use

texconfig

to edit the configuration file with formats, and uncomment the appropriate lines. To set up the new MarkIV implementation of ConTeXt, see http://wiki.contextgarden.net/Running_Mark_IV

Q: I've just installed some .sty files, but tex doesn't seem to see them.

A: TeXlive (and tetex) uses its own directory indexes (files named ls-R), and you need to refresh them after you copy something into one of the TeX trees. Magic command:

mktexlsr

or

texhash

or

texconfig[-sys] rehash

A command line program to search through these indexes is

kpsewhich

Hence you can check that TeX can find a particular file by running

kpsewhich <filename>

The output should be full path to that file.

Q: LyX says the PDF file I wanted it to make doesn't exist, but it will make (ugly) ps/div files

See below.

(LyX log files are in /tmp/lyx_tmpdir.SOMETHING/lyx_tmpbufN/filename.log)

Q: pdftex and/or dvips uses bitmap fonts instead of type1 postscript fonts (aka "when I zoom my pdf/ps file, fonts are really pixelated" aka "everytime I run tex, it takes a long time because it generates fonts with metafont" aka "at the end of my logfile generated by pdftex I see that it includes *.pk fonts instead of *.pfb")

A: This takes a bit of time to explain. Now it's important that you understand how does the system work, so that you know what you're doing.

Files which tell pdftex/dvips which fonts are to be included as type1 fonts (instead of traditional bitmap fonts) have suffix .map and reside somewhere in <texmfroot>/fonts/map/{pdftex,dvips}/updmap/{pdftex.map,psfonts.map}. First of all, you need to find out the name of the map file you want. The log for my TeX compilation gave me the error "Font rtxr at 540 not found", so I typed locate rtxr and got, among others, /usr/share/texmf-dist/fonts/afm/public/txfonts/rtxr.afm. This tells me the font package is txfonts.

You don't want to edit these mapfiles manually; they're good for checking if your favorite type1 font which causes troubles is sitting there properly.

  • These files are automatically generated, when you run
$ updmap

as user, or

# updmap-sys

as root for system-wide changes

What you need to do to have your favorite fonts (for instance kpfonts or txfonts) properly used as type1 fonts in pdf and ps files is to locate the .map file that goes with the package (e.g. kpfonts.map; you don't need to actually *do* anything with the file, just know that it's there somewhere), edit updmap.cfg by running

updmap --edit

as user (or "updmap-sys --edit" as root) and add the line

Map kpfonts.map

or the line

MixedMap kpfonts.map

(MixedMap indicates that fonts are also available as bitmap fonts.), and exit the editor. At this point, you should see the messages which indicate that updmap is regenerating {pdftex,psfonts}.map files.

(Alternatively, just run updmap --enable Map=kpfonts, or (as root) updmap-sys --enable Map=kpfonts, if you just want to add one map without going into an editor.)

This should be sufficient, and your next run of pdftex/dvips should be already including the type1 versions of fonts.

Useful apps to use with (any TeX installation)

Q: Editors?

A: Great for beginners (errr...) are kile (depends on kde though) or winefish.

For serious work, especially scientic papers, more especially in the humanities, I strongly recommend emacs with reftex and auctex. Reftex helps very much with references within big documents.

Also (g)vim with vim-latex (although I had some problems with it with vim-7.* versions) might be a good solution. If you have problems with vim-latex, try auctex.vim, which has much of the same functionality. If you are more WYSIWIG oriented, then perhaps lyx (just be aware that transitions "lyx <-> manual source editing" is not always seamless, and using your own macros is a bit awkward of course); or texmacs (with which I have no experience, and it seems a bit outdated).

Q: Pictures with LaTeX labels?

A: Apart from some latex in-source macros (which are a bit of a PITA to write), there are excellent "picture programming languages" metapost and its (more-less) successor asymptote. They are pretty powerful, but have similar approach as tex itself - you write down what you want to have and how are the things related, and compiler then produces the picture. The target format is postscript for metapost; and eps/pdf/png for asymptote.

Even closer incorporated to TeX itself - i.e. to Plain TeX, LaTeX or Context, there are layers for each of this formats - is the relatively new PGF package with its language named TIKZ.

The Python library PyX (named python-pyx in AUR) gives the possibillity to use Python to program pictures, and it uses TeX for the typesetting.

Last but not least: PSTricks, which gives an interface for direct inclusion of Postscript-code into TeX (ps2pdf). There are some hurdles to climb if you want to have pdf-output, because PSTricks is not compatible to pdftex.

Q: Pictures with LaTeX labels - I want GUI! - I want pictures fast!

A: The "grandfather" of vector editors - xfig is able to produce some output relevant to tex. I had relatively good experience with ipe recently (saves eps/pdf). Inkscape is a good choice too.