TeX Live

From ArchWiki
Jump to: navigation, search

According to Wikipedia:

TeX Live is a free software distribution for the TeX typesetting system that includes major TeX-related programs, macro packages, and fonts.

TeX Live includes the tex(1) and pdftex(1) programs, the LaTeX and ConTeXt TeX macro packages and the XeTeX and LuaTeX TeX engines.


The cen­tral place for all kinds of ma­te­rial around TeX.
texmf trees
See the TeX Live Guide and the TeX Directory Structure.


Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: What is the texmf-dist tree? What is CTAN? (Discuss in Talk:TeX Live#)

The TeX Live packages are arranged into two package groups:

The essential package texlive-core contains the basic texmf-dist tree, while texlive-bin contains the binaries, libraries, and the texmf tree. texlive-core is based on the "medium" install scheme of the upstream distribution. All other packages are based on the eponymous collections in TeX Live. To determine which CTAN packages are included in each package, look up the files /var/lib/texmf/arch/installedpkgs/<package>_<revnr>.pkgs.

The texlive-langextra package provides language support for African, Arabic, Armenian, Croatian, Hebrew, Indic, Mongolian, Tibetan and Vietnamese.

Manual installation

Alternatively you can install TeX Live with the upstream installer, which is packaged as texlive-installerAUR. For more information, see the LaTeX Wikibook and the TeX Live Guide.


You can test your installation with

$ tex '\empty Hello world!\bye'
$ pdftex '\empty Hello world!\bye'

You should get a DVI or a PDF file accordingly.

You will probably want a TeX editor. There are also a few online solutions that let you create TeX-based documents without TeX Live. See the LaTeX wikibook.

Important information

  • The biber utility used to handle biblatex bibliography is provided as a separate package.
  • The way to handle font mappings for updmap(1) was improved in September 2009, and installation should now be much more reliable than in the past. In the meantime, if you encounter error messages about unavailable map files, simply remove them by hand from the updmap.cfg file (ideally using updmap-sys --edit). You can also run updmap-sys --syncwithtrees to automatically comment out outdated map lines from the config file.
  • The ConTeXt formats (for Mark II and IV) are not automatically generated upon installation. See the ConTeXT wiki for instructions on how to do this.
  • The packages containing the documentation and sources are no longer available in official repositories. You can locally build them with tllocalmgr. You can also consult documentation online at https://tug.org/texlive/Contents/live/doc.html or on CTAN. Another possibility is using the online documentation at http://texdoc.net/pkg/packagename which resolves to the relevant pdf for packagename, similar to the command line tool texdoc (which is useless without locally installed documentation). The documentation is now contained in texlive-most-docAUR.
  • TeX Live (upstream) now provides a tool for incremental updates of CTAN packages. On that basis, we also plan to update our packages on a regular basis (we have written tools that almost automate that task).
  • System-wide configuration files are under /usr/share/texmf-config. User-specific ones should be put under ~/.texlive/texmf-config. $TEXMFHOME is ~/texmf and $TEXMFVAR is ~/.texlive/texmf-var.
  • A skeleton of a local texmf tree is at /usr/local/share/texmf: this directory is writable for members of the group tex.

Paper size

It is currently impossible to set the default page size, because the Arch package removes the tool necessary for this, see FS#59094.

Usually, you would run the texconfig command, which is also capable of changing other useful settings.

Error with "formats not generated" upon update

See this bug report. (Note that if you do not use the experimental engine LuaTeX, you can ignore this.) This situation typically occurs when the configuration files language.def and/or language.dat for hyphenation patterns contain references to files from earlier releases of texlive-core, in particular to the latest experimental hyphenation patterns for German, whose file name changes frequently. Currently they should point to dehyph{n,t}-x-2009-06-19.tex.

To solve this, you need to either remove these files: /usr/share/texmf-config/tex/generic/config/language.{def,dat} or update them using the newest version under: /usr/share/texmf/tex/generic/config/language.{def,dat} and then run

# fmtutil-sys --missing


By default, the fonts that come with the various TeX Live packages are not automatically available to Fontconfig. If you want to use them with, say XeTeX or LibreOffice, the easiest approach is to make symlinks as follows:

 ln -s /usr/share/texmf-dist/fonts/opentype/public/<some_fonts_you_want> ~/.fonts/OTF/ (or TTF or Type1) 

To make them available to fontconfig, run:

 fc-cache ~/.fonts
 mkfontscale ~/.fonts/OTF (or TTF or Type1) 
 mkfontdir ~/.fonts/OTF (or TTF or Type1)

Alternatively, texlive-core contains the file /etc/fonts/conf.avail/09-texlive-fonts.conf that contains a list of the font directories used by TeX Live. You can use this file with:

# ln -s /etc/fonts/conf.avail/09-texlive-fonts.conf /etc/fonts/conf.d/09-texlive-fonts.conf

And then update fontconfig:

# fc-cache && mkfontscale && mkfontdir
Note: This may cause conflicts with XeTeX/XeLaTeX if the same fonts are (separately) available to both TeX and Fontconfig, i.e. if multiple copies of the same font are available on the search path.

TeXLive Local Manager

texlive-localmanager-gitAUR is a utility which allows to conveniently manage a TeX Live installation on Arch Linux. See Usage for details.

Install .sty files

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: What are .sty files? (Discuss in Talk:TeX Live#)

TeX Live (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. Or TeX can not see them. Magic command:

# mktexlsr


# texhash


# texconfig[-sys] rehash

A command line program to search through these indexes is


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

kpsewhich <filename.sty>

The output should be the full path to that file.

Alternatively, sty files that are intended only for a particular user should go in the ~/texmf/ tree. For instance, the latex package wrapfig consists of the file wrapfig.sty and would go in ~/texmf/tex/latex/wrapfig/wrapfig.sty. There is no need to run mktexlsr or equivalent because ~/texmf is searched every time tex is run.

Manual Installation

You should not manually install files into /usr/share/texmf-dist/tex/latex/<package name>/*. Instead, install local .sty files in TEXMFLOCAL, if they should be available to all users, or into TEXMFHOME, if they are specific to you. Use kpsewhich -var TEXMFLOCAL to get the local directory and install into <local directory>/tex/latex/<package name>/. The TEXMFHOME directory will automatically be searched when TeX tools are executed. If you use TEXMFLOCAL, you need to update the database as described above in order for the files to be found.


To install a LaTeX package on a global level, you should use a PKGBUILD for the sake of simplifying maintenance. Examples can be found in the AUR, e.g. texlive-ganttAUR.

Updating babelbib language definitions

If you have the very specific problem of babelbib not having the latest language definitions that you need, and you do not want to recompile everything, you can get them manually from https://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/babelbib/ and put them in /usr/share/texmf-dist/tex/latex/babelbib/. For example:

# cd /usr/share/texmf-dist/tex/latex/babelbib/ 
# wget https://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/babelbib/romanian.bdf
# wget [...all-other-language-files...]
# wget https://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/babelbib/babelbib.sty

Afterwards, you need to run texhash to update the TeX database:

# texhash

See also