Skip to content

Instantly share code, notes, and snippets.

@ridem
Created May 21, 2019 21:00
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ridem/5e1608e771f7cfc9798d33c72903fb35 to your computer and use it in GitHub Desktop.
Save ridem/5e1608e771f7cfc9798d33c72903fb35 to your computer and use it in GitHub Desktop.
Install LaTeX (TeX Live) on Netlify
#!/bin/bash
if [ -w "/opt/build/cache" ]; then
CACHE_FOLDER="/opt/build/cache"
else
CACHE_FOLDER="$HOME/cache"
fi
TEXLIVEDIR="$CACHE_FOLDER/texlive"
export PATH="$PATH:$TEXLIVEDIR/bin/x86_64-linux"
if ! type pdflatex > /dev/null 2>&1 ; then
echo "Installing TeX Live (pdflatex)"
wget -q http://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
mkdir -p texlive-installer "$TEXLIVEDIR"
tar -xf install-tl-unx.tar.gz -C ./texlive-installer --strip 1
printf '%s\n' "# Profile for TeX Live
selected_scheme scheme-full
TEXDIR $TEXLIVEDIR
TEXMFCONFIG \$TEXMFSYSCONFIG
TEXMFHOME \$TEXMFLOCAL
TEXMFLOCAL $TEXLIVEDIR/texmf-local
TEXMFSYSCONFIG $TEXLIVEDIR/texmf-config
TEXMFSYSVAR $TEXLIVEDIR/texmf-var
TEXMFVAR \$TEXMFSYSVAR
binary_x86_64-linux 1
tlpdbopt_install_docfiles 0
tlpdbopt_install_srcfiles 0" > ./netlify-texlive.profile
./texlive-installer/install-tl --profile ./netlify-texlive.profile
else
echo "TeX Live already installed, proceeding."
fi
# You can now run your regular build command
$1

Given yarn build being your regular build script,

netlify.toml:

[build]
  # Our default build command
  command = "./install-latex.sh 'yarn build'"

Any script run by yarn build will have the regular LaTeX executables available in PATH (pdflatex, etc.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment