Which packages should be loaded after hyperref instead of before?

  • cleveref

Many others are documented in section 6 of the hyperref manual. Some are more complex than simply loading after hyperref. Here are some more common ones...

  • amsrefs
  • float before hyperref before algorithm
  • chappg
  • sidecap
  • linguex

  • geometry: From the User manual:

    With mag <> 1000, no truedimen and hyperref, hyperref should be loaded before geometry. Otherwise the resulted PDF size will become wrong.

  • robustindex

  • hypdestopt, hypcap, hypbmsec

  • attachfile

  • showframe, showidx (which disables the \hrefs in the index but in this loading order at least documents compile at all)

  • uri, pageslts, regstats

  • refcheck

and probably also further packages with \RequirePackage{hyperref}. A quick search in TeX Live 2011 resulted in this list:

  • amsrefs
  • attachfile2
  • bugtracker (part of pgfplots)
  • classicthesis
  • doi
  • dtx-style (part of thuthesis)
  • eforms
  • exerquiz
  • hypgotoe
  • insdljs
  • ltxdockit
  • opcit
  • prerex
  • rec-thy
  • tdclock
  • toptesi
  • ydoc-code and ydoc-desc (both part of ydoc; note, that ydoc-doc contains \hypersetup without loading hyperref) )

Packages with \RequirePackage[<some option(s)>]{hyperref}:

  • beamerbasearticle
  • bidituftehyperref
  • chextras
  • cmpj
  • dtk-pdf
  • easy-todo
  • hep
  • hrefhide
  • ifmslide
  • lstdoc
  • ocgtools
  • pdfcomment
  • pdfscreen
  • pdfx
  • rvdtx
  • strukdoc
  • ucshyper

Other common ones include

  • bookmark
  • glossaries