Difference between revisions of "TeX Live"

From ArchWiki
Jump to: navigation, search
m (Installation)
m (Usage: comma)
 
(190 intermediate revisions by 39 users not shown)
Line 1: Line 1:
 
[[Category:TeX]]
 
[[Category:TeX]]
[[it:TeXLive]]
+
[[es:TeX Live]]
[[zh-CN:TeXLive]]
+
[[fa:LaTeX]]
{{Article summary start}}
+
[[it:TeX Live]]
{{Article summary text|Introduce how install and use TeX Live.}}
+
[[ja:TeX Live]]
{{Article summary heading|Related}}
+
[[zh-hans:TeX Live]]
{{Article summary wiki|TeX Live FAQ}}
+
{{Related articles start}}
{{Article summary wiki|TeX Live and CJK}}
+
{{Related|TeX Live FAQ}}
{{Article summary wiki|LaTeX}}
+
{{Related|TeX Live and CJK}}
{{Article summary end}}
+
{{Related articles end}}
[http://www.tug.org/texlive/ TeX Live] is an "easy way to get up and running with the [[Wikipedia:TeX|TeX]] document production system. It provides a comprehensive TeX system with binaries for most flavors of Unix, including GNU/Linux, and also Windows. It includes all the major TeX-related programs, macro packages, and fonts that are free software, including support for many languages around the world."
+
According to [[Wikipedia:TeX Live|Wikipedia]]:
  
For more information see: [[:Category:TeX]]
+
:'''TeX Live''' is a free software distribution for the [[Wikipedia:TeX|TeX]] typesetting system that includes major TeX-related programs, macro packages, and fonts.
 +
 
 +
TeX Live includes the {{man|1|tex}} and {{man|1|pdftex}} programs, the [[Wikipedia:LaTeX|LaTeX]] and [[Wikipedia:ConTeXt|ConTeXt]] TeX macro packages and the [[Wikipedia:XeTeX|XeTeX]] and [[Wikipedia:LuaTeX|LuaTeX]] TeX engines.
  
 
== Installation ==
 
== Installation ==
The TeX Live packages are arranged into two groups: {{grp|texlive-most}} and {{grp|texlive-lang}}.
 
  
The essential package {{Pkg|texlive-core}} contains the basic texmf-dist tree, while {{Pkg|texlive-bin}} contains the binaries, libraries, and the texmf tree. {{Pkg|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, lookup the files:
+
* The {{Grp|texlive-most}} group contains most TeX Live packages.
  /var/lib/texmf/arch/installedpkgs/<package>_<revnr>.pkgs
+
** {{Pkg|texlive-core}}, the essential package, based on the ''medium'' upstream install scheme (all other packages are based on the upstream collections). The package includes [[pacman hook]]s to automate ''mktexlsr'', ''fmtutil'' and ''updmap''.[https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/texlive-core]
 +
** {{Pkg|texlive-bin}} contains the binaries and libraries (it is a dependency of {{Pkg|texlive-core}}).
 +
* The {{Grp|texlive-lang}} group contains packages providing character sets and features for non-English languages.
 +
** {{Pkg|texlive-langextra}} provides language support for African, Arabic, Armenian, Croatian, Hebrew, Indic, Mongolian, Tibetan and Vietnamese.
 +
* The {{Pkg|biber}} utility used to handle [https://ctan.org/pkg/biblatex biblatex] bibliography is provided as a separate package.
 +
 
 +
To determine which [https://www.ctan.org/ CTAN] packages are included in each ''texlive-'' package, look up the files {{ic|/var/lib/texmf/arch/installedpkgs/<package>_<revnr>.pkgs}}.
 +
 
 +
{{Note|Some tools and utilities included in TeX Live rely on {{Pkg|ghostscript}}, {{Pkg|perl}}, {{Pkg|python2}}, or {{Pkg|ruby}}.}}
 +
 
 +
{{Tip|You may want to install a [[List of applications/Documents#TeX editors|TeX editor]].}}
 +
 
 +
=== tllocalmgr ===
 +
 
 +
The {{ic|tllocalmgr}} utility, provided by {{AUR|texlive-localmanager-git}}, lets you install (and update) packages from CTAN as [[pacman]] packages, see [https://git.archlinux.org/users/remy/texlive-localmanager.git/tree/tllocalmgr#n809 its usage] ({{ic|-h}}) for details.
 +
 
 +
===  Package documentation ===
 +
 
 +
The packages in the official repositories do not contain the documentation or source files of font/macro packages.
 +
 
 +
For offline access with {{ic|texdoc}} you can either [[install]] the whole TeX Live documentation and source files with {{AUR|texlive-most-doc}} or install documentation of specific packages with ''tllocalmgr''.
 +
 
 +
You can also access the documentation online at:
 +
 
 +
* https://tug.org/texlive/Contents/live/doc.html
 +
* https://ctan.org/ – the cen­tral place for all kinds of ma­te­rial around TeX
 +
* http://texdoc.net/ ({{ic|<nowiki>http://texdoc.net/pkg/</nowiki>''packagename''}} directly yields the relevant PDF)
 +
 
 +
=== Manual installation ===
 +
 
 +
Alternatively you can install TeX Live with the upstream installer, which is packaged as {{AUR|texlive-installer}}. For more information, see the [[wikibooks:LaTeX/Installation#Custom_installation_with_TeX_Live|LaTeX Wikibook]] and the [https://tug.org/texlive/doc/texlive-en/texlive-en.html#x1-140003 TeX Live Guide].
 +
 
 +
== Usage ==
  
=== texlive-most ===
+
{{Note|
{| width="100%"
+
* While {{Pkg|texlive-core}} provides the [https://www.tug.org/texlive/tlmgr.html tlmgr] script in ''TEXMFDIST'', it is broken. For package installations you can use [[#tllocalmgr|tllocalmgr]] instead.
|- valign="top"
+
* The {{man|1|texconfig}} command is mostly broken because it partially depends on ''tlmgr'' ({{Bug|59094}}). The interactive mode of {{ic|texconfig}} requires {{Pkg|dialog}}.
|
+
}}
* {{Pkg|texlive-core}}
 
* {{Pkg|texlive-bibtexextra}}
 
* {{Pkg|texlive-fontsextra}}
 
* {{Pkg|texlive-formatsextra}}
 
* {{Pkg|texlive-games}}
 
|
 
* {{Pkg|texlive-genericextra}}
 
* {{Pkg|texlive-htmlxml}}
 
* {{Pkg|texlive-humanities}}
 
* {{Pkg|texlive-latexextra}}
 
* {{Pkg|texlive-music}}
 
|
 
* {{Pkg|texlive-pictures}}
 
* {{Pkg|texlive-plainextra}}
 
* {{Pkg|texlive-pstricks}}
 
* {{Pkg|texlive-publishers}}
 
* {{Pkg|texlive-science}}
 
|}
 
  
=== texlive-lang ===
+
See the following resources:
* {{Pkg|texlive-langcjk}}
 
* {{Pkg|texlive-langcyrillic}}
 
* {{Pkg|texlive-langgreek}}
 
* {{Pkg|texlive-langextra}}
 
  
{{note| {{ic|texlive-langextra}} replaced the African, Arab, Armenian, Croatian, Hebrew, Indic, Mongolian, Tibetan and Vietnamese packages.}}
+
* [[Wikibooks:LaTeX]]
 +
* [https://tobi.oetiker.ch/lshort/lshort.pdf The Not So Short In­tro­duc­tion to LaTeX 2ε]
 +
* [https://www.andy-roberts.net/writing/latex Getting to Grips with LaTeX – Andrew Roberts]
 +
* [https://texfaq.org/ The TeX FAQ]
  
=== Alternative: TeX Live network install ===
+
=== texmf trees and Kpathsea ===
Information about making TexLive network install : http://tug.org/texlive/doc/texlive-en/texlive-en.html#x1-140003
 
  
A [https://bbs.archlinux.org/viewtopic.php?id=109427 discussion] of the pros and cons of making the TeX Live network install.
+
texmf trees (''texmf'' stands for TeX and [[Wikipedia:Metafont|Metafont]]) should follow the [https://tug.org/tds/ TeX Directory Structure], or files may not be found.[https://www.tug.org/texlive/doc/texlive-en/texlive-en.html#x1-110002.3]
  
For all those programs that require texlive to be installed (e.g. kile) you can use the {{AUR|texlive-dummy}} package from AUR.
+
TeX Live uses the [https://tug.org/texinfohtml/kpathsea.html Kpathsea] library to lookup paths by filename across multiple texmf trees and the current working directory.
  
== Important information ==
+
Kpathsea searches the following variables in the reverse order (later trees override earlier ones).
  
* The way to handle font mappings for updmap has been improved in Sept. 2009, and installation should now be much more reliable than in the past. In the meanwhile, if you encounter error messages about unavailable map file, simply remove them by hand from the {{ic|updmap.cfg}} file (ideally using {{Ic|updmap-sys --edit}}). You can also run {{Ic|updmap-sys --syncwithtrees}} to automatically comment out outdated map lines from the config file.
+
{| class="wikitable"
 +
! Variables !! Arch default <sup>1)</sup> !! Used by [https://www.tug.org/texlive/doc/texlive-en/texlive-en.html#x1-110002.3]
 +
|-
 +
| TEXMFDIST || /usr/share/texmf-dist ||  files of the original distribution
 +
|-
 +
| TEXMFLOCAL || /usr/local/share/texmf:/usr/share/texmf || administrators for system-wide installation of additional or updated macros, fonts, etc.
 +
|-
 +
| TEXMFSYSVAR || /var/lib/texmf || updmap and fmtutil (user mode) to store (cached) runtime data
 +
|-
 +
| TEXMFSYSCONFIG || /etc/texmf || updmap and fmtutil (user mode) to store modified configuration data
 +
|-
 +
| TEXMFHOME || ~/texmf || users for their own individual installations of additional or updated macros, fonts, etc.
 +
|-
 +
| TEXMFVAR || ~/.texlive/texmf-var || updmap and fmtutil (sys mode) to store (cached) runtime data
 +
|-
 +
| TEXMFCONFIG || ~/.texlive/texmf-config || updmap and fmtutil (sys mode) to store modified configuration data
 +
|-
 +
| TEXMFCACHE || $TEXMFSYSVAR;$TEXMFVAR || ConTeXt MkIV and LuaLaTeX to store (cached) runtime data
 +
|}
  
* The ConTeXt formats (for MKII and MKIV) are not automatically generated upon installation. See [http://wiki.contextgarden.net '''the ConTeXT wiki'''] for instructions on how to do this.
+
# The default values are defined in {{ic|/etc/texmf/web2c/texmf.cnf}}[https://git.archlinux.org/svntogit/packages.git/tree/trunk/texmf.cnf?h=packages/texlive-core], they can be overridden with [[environment variables]].
  
* The packages containing the documentation and sources are available in the [community] repository. You can also consult it online at http://tug.org/texlive/Contents/live/doc.html or on CTAN.  
+
Kpathsea provides the {{man|1|kpsewhich}} command to lookup paths. When run with the {{ic|-var}} argument it can also print the values of variables.
  
* 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).
+
Kpathsea uses filename databases ({{ic|ls-R}}) to speed up searches in system-wide texmf trees (configured with the ''TEXMFDBS'' variable). This means that when system-wide file trees are changed, {{man|1|mktexlsr}} or {{ic|texhash}} (a symlink) need to be run as [[root user|root]]. Fortunately the {{Pkg|texlive-core}} automates this with a [[pacman hook]] targeting all default system-wide texmf trees but {{ic|/usr/local/share/texmf}}.[https://git.archlinux.org/svntogit/packages.git/tree/trunk/mktexlsr.hook?h=packages/texlive-core] So as long as you install system-wide packages via [[pacman]] you should not need to run ''mktexlsr'' or ''texhash'' at all.
  
* Some tools and utilities included in TeX Live rely on {{Pkg|ghostscript}}, {{Pkg|perl}}, and {{Pkg|ruby}}.
+
== Important information ==
  
* For help and information about TeX Live see: http://tug.org/texlive/doc.html and http://tug.org/texlive/doc/texlive-en/texlive-en.html
+
{{Out of date|ConTeXt nowadays works out of the box. You just sometimes need to run {{ic|mtxrun --generate}}.[https://www.contextgarden.net/Running_Mark_IV]}}
  
* System-wide configuration files are under {{ic|/usr/share/texmf-config}}. User-specific ones should be put under {{ic|~/.texlive/texmf-config}}. {{Ic|$TEXMFHOME}} is {{ic|~/texmf}} and {{Ic|$TEXMFVAR}} is {{ic|~/.texlive/texmf-var}}.
+
* The ConTeXt formats (for Mark II and IV) are not automatically generated upon installation. See [http://wiki.contextgarden.net the ConTeXT wiki] for instructions on how to do this.
 +
* 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).
 +
* The way to handle font mappings for {{man|1|updmap}} 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 {{ic|updmap.cfg}} file (ideally using {{Ic|updmap-sys --edit}}). You can also run {{Ic|updmap-sys --syncwithtrees}} to automatically comment out outdated map lines from the config file.
  
* A skeleton of a local texmf tree is at {{ic|/usr/local/share/texmf}}: this directory is writable for members of the group '''tex'''.
+
== Tips and tricks ==
  
===Paper Size===
+
=== Changing default paper size ===
American users are advised to run
 
texconfig
 
in order to set the default page size to "Letter", as opposed to A4, the current default.  This command is also capable of changing other useful settings.  Not changing this setting can result in slightly flawed output, as the right margin will be bigger than the left.
 
  
===Error with "formats not generated" upon update===
+
{{Accuracy|It's possible by directly editing the config files.[https://tug.org/pipermail/tex-live/2009-April/020692.html]}}
  
See [http://bugs.archlinux.org/task/16467 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 {{ic|language.def}} and/or {{ic|language.dat}} for hyphenation patterns contain references to files from earlier releases of {{Ic|texlive-core}}, in particular to the latest experimental hyphenation patterns for German, whose file name changes frequently. Currently they should point to {{ic|dehyph{n,t}-x-2009-06-19.tex}}.  
+
It is currently impossible to set the default page size, because the Arch package removes the tool necessary for this, see {{Bug|59094}}.
  
To solve this, you need to either remove these files: {{ic|/usr/share/texmf-config/tex/generic/config/language.<nowiki>{def,dat}</nowiki>}}
+
Usually, you would run the {{ic|texconfig}} command, which is also capable of changing other useful settings.
or update them using the newest version under: {{ic|/usr/share/texmf/tex/generic/config/language.<nowiki>{def,dat}</nowiki>}}
 
and then run
 
# fmtutil-sys --missing
 
  
===Fonts===
+
=== Making fonts available to Fontconfig ===
  
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:
+
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)  
 
   ln -s /usr/share/texmf-dist/fonts/opentype/public/<some_fonts_you_want> ~/.fonts/OTF/ (or TTF or Type1)  
  
Line 99: Line 126:
 
   mkfontdir ~/.fonts/OTF (or TTF or Type1)
 
   mkfontdir ~/.fonts/OTF (or TTF or Type1)
  
Alternatively, {{Pkg|texlive-bin}} contains the file {{ic|/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:
+
Alternatively, {{Pkg|texlive-core}} contains the file {{ic|/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:
  
 
{{bc|# ln -s /etc/fonts/conf.avail/09-texlive-fonts.conf /etc/fonts/conf.d/09-texlive-fonts.conf}}
 
{{bc|# ln -s /etc/fonts/conf.avail/09-texlive-fonts.conf /etc/fonts/conf.d/09-texlive-fonts.conf}}
Line 109: Line 136:
 
{{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.}}
 
{{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 ==
+
=== Updating babelbib language definitions ===
  
The TeXLive Local Manager is a utility provided by Firmicus which allows to conveniently manage a TeX Live installation on Arch Linux.
+
{{Style|You should not change {{ic|/usr/share/texmf-dist/}}.}}
See {{AUR|texlive-localmanager-git}} in the [[Arch User Repository|AUR]].
 
  
'''NB: The tool was not updated for a while and does only work with the current texlive-core 2011.24722-1 after some tweaking.'''
+
If you have the very specific problem of [https://www.ctan.org/pkg/babelbib 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 {{ic|/usr/share/texmf-dist/tex/latex/babelbib/}}. For example:
  
Usage: tllocalmgr 
+
{{bc|
        tllocalmgr [options] [command] [args]
+
# cd /usr/share/texmf-dist/tex/latex/babelbib/
+
# wget https://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/babelbib/romanian.bdf
        Running tllocalmgr alone starts the TeXLive local manager shell
+
# wget [...all-other-language-files...]
        for Arch Linux. This shell is capable of command-line completion!
+
# wget https://www.tug.org/texlive/devsrc/Master/texmf-dist/tex/latex/babelbib/babelbib.sty
        There you can look at the available updates with the command 'status'
+
}}
        and you can install individual CTAN packages using 'install' or 'update'
 
        under $TEXMFLOCAL. This is done by creating a package texlive-local-<pkg>
 
        and installing it with pacman. Note that this won’t interfere with your
 
        standard texlive installation, but files under $TEXMFLOCAL will take
 
        precedence.
 
       
 
        Here are the commands available in the shell:
 
 
Commands:     
 
              status  --  Current status of TeXLive installation
 
            shortinfo * --  Print a one-liner description of CTAN packages
 
                info * --  Print info on CTAN packages
 
              update * --  Locally update CTAN packages
 
              install * --  Locally install new CTAN packages
 
          installdoc * --  Locally install documentation of CTAN packages
 
          installsrc * --  Locally install sources of CTAN packages
 
            listfiles * --  List all files in CTAN packages
 
              search * --   Search info on CTAN packages
 
          searchfiles * --   Search for files in CTAN packages
 
              texhash  --  Refresh the TeX file database
 
                clean  --  Clean local build tree
 
                help  --  Print helpful information
 
                quit  --  Quit tllocalmgr
 
 
        The commands followed by * take one of more package names as arguments.
 
        Note that these can be completed automatically by pressing TAB.
 
 
        You can also run tllocalmgr as a standard command-line program, with
 
        one of the above commands as argument, then the corresponding task will
 
        be performed and the program will exit (except when the command is 'status').
 
 
        tllocalmgr accepts the following options:
 
 
Options:    --help          Shows this help
 
              --version      Show the version number
 
              --forceupdate  Force updating the TeXLive database
 
              --skipupdate    Skip updating the TeXLive database
 
              --localsearch  Search only installed packages
 
              --location      #TODO?
 
              --mirror        CTAN mirror to use (default is mirror.ctan.org)
 
              --nocolor      #TODO
 
  
=== Recent "langukenglish" errors ===
+
Afterwards, you need to run {{ic|texhash}} to update the TeX database:
For issues involving this error when trying to run {{ic|tllocalmgr}} commands,
+
  # texhash
Can't get object for collection-langukenglish at /usr/bin/tllocalmgr line 103
 
See ary0's solution at the AUR: {{AUR|texlive-localmanager}}. In summary, edit {{ic|/usr/share/texmf-var/arch/tlpkg/TeXLive/Arch.pm}} and remove "langukenglish" from the section of the file shown here:
 
  my @core_colls =
 
qw/ basic context genericrecommended fontsrecommended langczechslovak
 
langdutch langfrench langgerman langitalian langpolish langportuguese
 
langspanish **langukenglish** latex latexrecommended luatex mathextra metapost
 
texinfo xetex /;
 
  
== Install .sty files ==  
+
== Troubleshooting ==
TeX Live (and teTeX) uses its own directory indexes (files named {{ic|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
 
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.
 
  
=== Manually installation  ===
+
=== Error with "formats not generated" upon update ===
Normally, new .sty files go in {{ic|~/texmf/tex/latex/<package name>/*}}. Create this directory if you do not have it. This directory will automatically be searched when *tex is executed. Further discussion can be found here: https://bbs.archlinux.org/viewtopic.php?id=85757
 
  
=== Using PKGBUILDs ===
+
See {{Bug|16467}}. (Note that if you do not use the experimental engine ''LuaTeX'', you can ignore this.) This situation typically occurs when the configuration files {{ic|language.def}} and/or {{ic|language.dat}} for hyphenation patterns contain references to files from earlier releases of {{Pkg|texlive-core}}, in particular to the latest experimental hyphenation patterns for German, whose file name changes frequently. Currently they should point to {{ic|dehyph{n,t}-x-2009-06-19.tex}}.  
To install a LaTeX package on a global level, you should use a [[PKGBUILD]] for the sake of simplifying maintenance. Look at this example.
 
<pre>
 
# Original autor: Martin Kumm <pluto@ls68.de>
 
# Maintainer: masterkorp  <masterkorp@gmail.com>    irc: masterkorp at freenode.org
 
# Last edited: 2nd April 2011
 
  
pkgname=texlive-gantt
+
To solve this, you need to either remove these files: {{ic|/etc/texmf/tex/generic/config/language.<nowiki>{def,dat}</nowiki>}}
pkgver=1.3
+
or update them using the newest version under: {{ic|/usr/share/texmf/tex/generic/config/language.<nowiki>{def,dat}</nowiki>}}
pkgrel=1
+
and then run
license=('GPL')
 
depends=('texlive-core')
 
pkgdesc="A LaTeX package for drawing gantt plots using pgf/tikz"
 
url="http://www.martin-kumm.de/tex_gantt_package.php"
 
arch=('any')
 
install=texlive-gantt.install
 
source=(http://www.martin-kumm.de/tex/gantt.sty)
 
md5sums=('e942191eb0024633155aa3188b4bbc06')
 
  
build()
+
# fmtutil-sys --missing
{
 
  mkdir -p $pkgdir/usr/share/texmf/tex/latex/gantt
 
  cp $srcdir/gantt.sty $pkgdir/usr/share/texmf/tex/latex/gantt
 
}
 
</pre>
 
 
 
And the {{ic|.install}} file:
 
<pre>
 
post_install() {
 
  post_remove
 
  echo "The file was installed in:"
 
  kpsewhich gantt.sty
 
}
 
 
 
post_upgrade() {
 
  post_install
 
}
 
  
post_remove() {
+
== See also ==
  echo "Upgrading package database..."
 
  mktexlsr
 
}
 
</pre>
 
  
From the {{AUR|texlive-gantt}} package in the [[Arch User Repository|AUR]].
+
* [https://tug.org/texlive/doc.html TeX Live documentation]
 +
* [https://tug.org/texlive/doc/texlive-en/texlive-en.html The TeX Live Guide] (not completely applicable)
 +
* [https://tex.stackexchange.com/ TeX - LaTeX Stack Exchange]

Latest revision as of 09:35, 6 October 2018

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.

Installation

  • The texlive-most group contains most TeX Live packages.
    • texlive-core, the essential package, based on the medium upstream install scheme (all other packages are based on the upstream collections). The package includes pacman hooks to automate mktexlsr, fmtutil and updmap.[1]
    • texlive-bin contains the binaries and libraries (it is a dependency of texlive-core).
  • The texlive-lang group contains packages providing character sets and features for non-English languages.
    • texlive-langextra provides language support for African, Arabic, Armenian, Croatian, Hebrew, Indic, Mongolian, Tibetan and Vietnamese.
  • The biber utility used to handle biblatex bibliography is provided as a separate package.

To determine which CTAN packages are included in each texlive- package, look up the files /var/lib/texmf/arch/installedpkgs/<package>_<revnr>.pkgs.

Note: Some tools and utilities included in TeX Live rely on ghostscript, perl, python2, or ruby.
Tip: You may want to install a TeX editor.

tllocalmgr

The tllocalmgr utility, provided by texlive-localmanager-gitAUR, lets you install (and update) packages from CTAN as pacman packages, see its usage (-h) for details.

Package documentation

The packages in the official repositories do not contain the documentation or source files of font/macro packages.

For offline access with texdoc you can either install the whole TeX Live documentation and source files with texlive-most-docAUR or install documentation of specific packages with tllocalmgr.

You can also access the documentation online at:

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.

Usage

Note:
  • While texlive-core provides the tlmgr script in TEXMFDIST, it is broken. For package installations you can use tllocalmgr instead.
  • The texconfig(1) command is mostly broken because it partially depends on tlmgr (FS#59094). The interactive mode of texconfig requires dialog.

See the following resources:

texmf trees and Kpathsea

texmf trees (texmf stands for TeX and Metafont) should follow the TeX Directory Structure, or files may not be found.[2]

TeX Live uses the Kpathsea library to lookup paths by filename across multiple texmf trees and the current working directory.

Kpathsea searches the following variables in the reverse order (later trees override earlier ones).

Variables Arch default 1) Used by [3]
TEXMFDIST /usr/share/texmf-dist files of the original distribution
TEXMFLOCAL /usr/local/share/texmf:/usr/share/texmf administrators for system-wide installation of additional or updated macros, fonts, etc.
TEXMFSYSVAR /var/lib/texmf updmap and fmtutil (user mode) to store (cached) runtime data
TEXMFSYSCONFIG /etc/texmf updmap and fmtutil (user mode) to store modified configuration data
TEXMFHOME ~/texmf users for their own individual installations of additional or updated macros, fonts, etc.
TEXMFVAR ~/.texlive/texmf-var updmap and fmtutil (sys mode) to store (cached) runtime data
TEXMFCONFIG ~/.texlive/texmf-config updmap and fmtutil (sys mode) to store modified configuration data
TEXMFCACHE $TEXMFSYSVAR;$TEXMFVAR ConTeXt MkIV and LuaLaTeX to store (cached) runtime data
  1. The default values are defined in /etc/texmf/web2c/texmf.cnf[4], they can be overridden with environment variables.

Kpathsea provides the kpsewhich(1) command to lookup paths. When run with the -var argument it can also print the values of variables.

Kpathsea uses filename databases (ls-R) to speed up searches in system-wide texmf trees (configured with the TEXMFDBS variable). This means that when system-wide file trees are changed, mktexlsr(1) or texhash (a symlink) need to be run as root. Fortunately the texlive-core automates this with a pacman hook targeting all default system-wide texmf trees but /usr/local/share/texmf.[5] So as long as you install system-wide packages via pacman you should not need to run mktexlsr or texhash at all.

Important information

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: ConTeXt nowadays works out of the box. You just sometimes need to run mtxrun --generate.[6] (Discuss in Talk:TeX Live#)
  • 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.
  • 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).
  • 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.

Tips and tricks

Changing default paper size

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: It's possible by directly editing the config files.[7] (Discuss in Talk:TeX Live#)

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.

Making fonts available to Fontconfig

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.

Updating babelbib language definitions

Tango-edit-clear.pngThis article or section needs language, wiki syntax or style improvements. See Help:Style for reference.Tango-edit-clear.png

Reason: You should not change /usr/share/texmf-dist/. (Discuss in Talk:TeX Live#)

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

Troubleshooting

Error with "formats not generated" upon update

See FS#16467. (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: /etc/texmf/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

See also