Sunday, October 16, 2016

Curated list of LaTeX packages


I have been asked what are the core packages that a LaTeX user should know.  Not often, but it has happened.  

Here is my list. These are personal choices so folks may disagree, but what can you do with opinions besides spread them around? In any event, I think these are popular and reliable packages.

  • To change margins, page size, orientation, etc., use geometry
  • To make headers a person reaches for fancyhdr
  • Tables of contents, lists of figures, etc. tocloft
  • To make titles, think of titlesec
  • Make an index with makeindex
  • To get arbitrary fonts use XeLaTeX and fontspec 
  • Personally, more than BibTeX I like BibLaTeX but I know next to nothing about it
  • Math amsmath (I load this by instead loading mathtools which makes some improvements), and amsfonts, as well as theorem environments with amsthm
  • To make lists use enumitem
  • Make captions with caption and control float placement with float (I may be wrong about this last; I don't typically use floats.)
  • Make cross-references with the one-r-ed cleveref
  • Links with hyperref (but load it last of all the package you load)
  • URL's and filenames and file paths with url.sty (but hyperref makes some improvements, so if you are using hyperref just go with that)
  • For colors use xcolor
  • Load graphics with graphicx
  • Code listings and verbatim text with listings. (Make single quotes come out right in verbatim with upquote)
  • Many people draw in-place graphics with TikZ (Personally I use Asymptote)
  • Make presentations with beamer
  • Make PDF file do copy and paste, and search with cmap
  • If you are making a PDF, you can toss in microtype for improvements that I am too thick to see, but I put it in because what the heck?
  • I like footnotes at the page bottom so I use footmisc (but I hack to change the spacing, which is not doable otherwise)
  • Make an index with makeindex
  • Write answers to exercises to external file with answers