====== 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.