SISSA Computing FAQ: about LATEX
It sometimes happens that you need a new version of some macro package or font; the correct approach is to create a private installation of (La)TeX which includes the new stuff you need.
There are two options: the TeX Live package manager or the manual mode
TeX Live package manager (tlmgr)
texlive
module first
Before using tlmgr
in user mode for the first time, you have to set up the user tree with the init-usertree action:
tlmgr init-usertree
This command creates a directory named texmf
in your home directory.
Then, you have to use the install action: it checks if the package and all dependencies are already installed in the system installation. If this is not the case, it installs the package and all dependencies into the user tree (~/texmf).
tlmgr --user-mode install pkg
Use an updated version of TeX Live
To use an updated version of Tex Live
, create missing backup folder in your user tree :
mkdir -p ~/texmf/tlpkg/backups
Update the repository:
tlmgr --usermode option repository ctan
and finally update all your Tex packages:
tlmgr --usermode update --all
Example
Load texlive
module:
$ module load texlive
Compile a tex file:
$ latex example.tex ... ! LaTeX Error: File `memorygraphs.sty' not found. Type X to quit or <RETURN> to proceed
Search which package contains memorygraphs.sty file:
$ tlmgr search --global --all memorygraphs.sty ... memorygraphs: texmf-dist/tex/latex/memorygraphs/memorygraphs.sty
If it is the first time you use tlmgr
, set up the user tree with the command tlmgr init-usertree
$ tlmgr init-usertree
You need to install the package memorygraphs
, using the command tlmgr –user-mode install memorygraphs
$ tlmgr --user-mode install memorygraphs ... tlmgr: package repository http://ctan.mirror.garr.it/mirrors/CTAN/systems/texlive/tlnet (verified) [1/1, ??:??/??:??] install: memorygraphs [189k] running mktexlsr ... done running mktexlsr. tlmgr: package log updated: /u/j/janedoe/texmf/web2c/tlmgr.log
Manual mode
Create in your home directory a subdirectory named texmf
, using the following command:
mkdir ~/texmf
Install your new package (or whatever) in a directory structure like this:
File extension | Directory | Description |
---|---|---|
.sty, .cls or .fd | ~/texmf/tex/latex/<package_name>/ | Style file, Document class file or Font Definition files |
.mf | ~/texmf/fonts/source/public/<font_name>/ | METAFONT outline |
.tfm | ~/texmf/fonts/tfm/public/<font_name>/ | TeX Font Metrics for METAFONT and Type 1 fonts |
.vf | ~/texmf/fonts/vf/public/<font_name>/ | TeX virtual fonts |
.afm | ~/texmf/fonts/afm/public/<font_name>/ | Adobe Font Metrics for Type 1 fonts |
.pfb | ~/texmf/fonts/type1/public/<font_name>/ | PostScript Type 1 outline |
.ttf | ~/texmf/fonts/truetype/public/<font_name>/ | TrueType font |
.otf | ~/texmf/fonts/opentype/public/<font_name>/ | OpenType font |
.bst | ~/texmf/bibtex/bst/<package_name>/ | BibTeX style |
where:
- <package_name> refers to the name of macro package you are installing. (p.e. beamer)
- <font_name> refers to the name of font you are installing (p.e gothic)
and generate an index of that tree
mktexlsr ~/texmf
You can use this approach for updates to packages installed in the SISSA workstations, as well as for installing new versions of things.