====== How to install TeX Live on Linux ====== Slackware installs [[https://www.tug.org/texlive/|TeX Live]] by default. However, extra packages and documentation require root permissions to install (''texlive-extra'' and ''texlive-docs''), and they are not a full installation. This HOWTO explains how to install TeX Live as a non-root user. ===== Shared non-root installation ===== The initial installation size for this method is larger (~9.6GB), but it can save disk storage on shared machines, since users use the same installation. It also does not require tlmgr for additional packages. # download the installer cd /tmp wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz # uncompress it tar xvf install-tl-unx.tar.gz # install it ( cd install-tl-[0-9]* version=$(sed '/version [0-9]/!d; s/.*version //' release-texlive.txt) # --texmfhome must be ~/usr/local/share/texmf, not hardcoded $HOME/usr/local/share/texmf ./install-tl \ --no-interaction \ --texdir=$HOME/usr/local/opt/texlive/$version \ --texmflocal=$HOME/usr/local/opt/texlive/texmf-local \ --texmfhome=~/usr/local/share/texmf \ --scheme=full \ --paper=letter # create a symlink for paths cd ~/usr/local/opt/texlive ln -s $version current ) # delete the installer rm -rf install-tl-* # add paths to TeX Live cat << 'EOT' >> ~/.bash_profile # TeX Live export PATH="$HOME/usr/local/opt/texlive/current/bin/x86_64-linux:$PATH" export MANPATH="$HOME/usr/local/opt/texlive/current/texmf-dist/doc/man:$MANPATH" export INFOPATH="$HOME/usr/local/opt/texlive/current/texmf-dist/doc/info:$INFOPATH" EOT # read them into the current session . ~/.bash_profile For other users, # create the same directory structure mkdir -p ~/usr/local/opt ~/usr/local/share/texmf # create a symbolic link to the above installation ln -sf ~hcho/usr/local/opt/texlive ~/usr/local/opt # add paths to TeX Live cat << 'EOT' >> ~/.bash_profile # TeX Live export PATH="$HOME/usr/local/opt/texlive/current/bin/x86_64-linux:$PATH" export MANPATH="$HOME/usr/local/opt/texlive/current/texmf-dist/doc/man:$MANPATH" export INFOPATH="$HOME/usr/local/opt/texlive/current/texmf-dist/doc/info:$INFOPATH" EOT # read them into the current session . ~/.bash_profile ===== Per-user installation ===== The initial installation size for this method is smaller (~330M) because it installs only the basic scheme and requires tlmgr to install additional packages. However, this method can take up too much space when used on shared machines, since each user must install it. # download the installer cd /tmp wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz # uncompress it tar xvf install-tl-unx.tar.gz # install it ( cd install-tl-[0-9]* version=$(sed '/version [0-9]/!d; s/.*version //' release-texlive.txt) # --texmfhome can be hardcoded as $HOME/usr/local/share/texmf ./install-tl \ --no-interaction \ --texdir=$HOME/usr/local/opt/texlive/$version \ --texmflocal=$HOME/usr/local/opt/texlive/texmf-local \ --texmfhome=~/usr/local/share/texmf \ --scheme=basic \ --paper=letter # create a symlink for paths cd ~/usr/local/opt/texlive ln -s $version current ) # delete the installer rm -rf install-tl-* # add paths to TeX Live cat << 'EOT' >> ~/.bash_profile # TeX Live export PATH="$HOME/usr/local/opt/texlive/current/bin/x86_64-linux:$PATH" export MANPATH="$HOME/usr/local/opt/texlive/current/texmf-dist/doc/man:$MANPATH" export INFOPATH="$HOME/usr/local/opt/texlive/current/texmf-dist/doc/info:$INFOPATH" EOT # read them into the current session . ~/.bash_profile Use [[https://www.tug.org/texlive/tlmgr.html|tlmgr]] (already installed with TeX Live) to install new packages. ===== LaTeX editing ===== You can use [[https://kile.sourceforge.io/|Kile]] (already installed by Slackware) to edit and compile LaTeX files. If you like Vim or Neovim, [[https://github.com/lervag/vimtex|VimTeX]] is a great plugin. For reference management, [[https://www.jabref.org/|JabRef]] is good for [[https://www.bibtex.org/|BibTeX]]. I can install it for you.