Skip to content

LaTeX Installation on macOS

A "sane" LaTeX installation1

  1. Install MacTeX:
    This takes some time as it's a huge installation (~4Gb)
    brew cask install mactex

  2. Install TeXMaker:
    This is a FOSS TeX Editor
    brew cask install texmaker

  3. Launch the TeXLive utility & upgrade all the packages ⇧⌘U

Some notes:

  • There are two main LaTeX installations: MacTeX and BasicTex
    • MacTeX is a "full" installation that includes2:
      • GUI Applications: TeXShop , BibDesk, LaTeXiT, TeX Live Utility, the spell checker Excalibur, and some documentation
      • Ghostscript 9.23
      • TeX Live 2018, the actual TeX distribution
    • BasicTeX is a minor distribution3
  • Another post recommends a more manual way to install LaTeX4. This then recommends setting up the the $PATH, installing TeX Live Utility (which already comes with MacTeX) and a tool called texliveonthefly5 to grab missing packages on compilation of docs. I didn't do these steps, and kept LaTeX 'local' to the installed applications.
  • Another recommended editor: LyX | LyX – The Document Processor. From the 'manual install' post: "If you’re new to LaTeX, consider using LyX. It’s a WYSIWYG LaTeX editor, which lets you code as little or as much as you like as you learn the ropes."4
    • It's available on Homebew Cask: brew cask install lyx
  • In case it's required, the TeX folder (that might need to be referenced in $PATH) is:
    The '2018' part is for MacTeX, for BasicTeX it would be '2018basic'.
    This is the location of tools (executables) such as tlmgr and xelatex.
    However note that, per the docs, the $PATH is updated by adding a file to /etc/paths.d so there might not be any need.

Additional Notes:

  • Installed Pandoc using Homebrew:
    brew install pandoc
  • Upon running which pandoc got: /usr/local/bin/pandoc
  • Installed application Texts6 which requires both LaTeX and Pandoc
  • Texts found the TeX installation (it specifically requires XeLaTeX) but not the Pandoc one. For Pandoc I needed to run defaults write io.texts.Texts TSPandocPath "/usr/local/bin/pandoc" per information here7