The problem

Throughout the years I have come across several packages that fix issues in (La)TeX. It seems like it would be a good idea to load these by default. However, I could not find an authoritative list giving a qualified recommendation for which packages one should load. With this question, I would like you to fill that gap.

What to answer

Please give a list that is as complete as possible. You could mention:

  • Package name
  • The problems it addresses
  • In which context it should be used
  • Possible caveats

A first start

Core fixes

Just for a head start, here are a few packages that I know of:

  • fixltx2e
    • Problems addressed: Fixes some fundamental bugs in LaTeX that cannot be included in the core version because they could break backwards compatibility
    • Use in: Any LaTeX document
    • Caveats: Load amsthm before this package; load footmisc after this package
  • mparhack
    • Problems addressed: Fixes a problem where marginpars sometimes appear on the wrong side
    • Use in: Any LaTeX document (that uses marginpars)
    • Caveats: ???

Fixes to document classes

  • scrhack
    • Problems addressed: Fixes several conflicts with other packages
    • Use in: Any document written with KOMA script classes (scrartcl, etc.)
    • Caveats: ???

Math fixes

  • mathtools
    • Problems addressed: Fixes several issues in amsmath and introduces new commands. Load instead of amsmath
    • Use in: Any document with mathematics
    • Caveats: ???
  • lualatex-math
    • Problems addressed: Fixes some problems that can occur when typesetting mathematics with LuaLaTeX
    • Use in: Documents that contain mathematics and are compiled with LuaLaTeX
    • Caveats: ???


  • fix-cm
    • Problems addressed: Fixes issues with the original computer modern fonts
    • Use in: Documents use the old computer modern fonts
    • Caveats: Do not use in new files, use it only for compatibility. Use lmodern instead.

Potentially helpful / best practices

  • nag
    • Problems addressed: Gives warnings for bad practices
    • Use in: Any document
    • Caveats: Can annoy you if you use old commands
  • 1
    Regarding caveats, the order in which those packages are loaded may matter.
    – jub0bs
    Jan 30 '14 at 13:43
  • @GonzaloMedina, in the deed, that is what I meant. Sorry for the mix up!
    – Ingo
    Jan 30 '14 at 14:14
  • 5
    Personally, I don't like having packages in my preamble for reasons I don't understand. Each of my documents has a minimally required preamble with possibly no unused packages. So I never load fixltx2e because I don't know what it does, and its manual is quite cryptic. However it is implicitly loaded by many other packages I use, and they hopefully know why they load it.
    – marczellm
    Jan 30 '14 at 15:26
  • @marczellm: I put \RequirePackage{fixltx2e} before \documentclass{revtex} in order to compile my doucment with xelatex or lualatex since otherwise revtex class conflicts with those new engines. Feb 5 '14 at 12:53

Generally I share the opinion, that you should not include as many extensions as you can get. Use them sparely and only incase you really need them. I suggest this because:

  • the more packages you use, the longer it probably needs to generate the document
  • the less packages you use, the higher are chances to compile it on other systems, which might not have installed those special packages you might not actually using.
  • the more packages you use, the more difficult it becomes to read the preamble
  • the more packages you use, the chance of package-conflicts may increase. In a certain package renews commands, other packages rely on but having workarounds, those workarounds might fail.

However, I share your opinion, that it sometimes is (nonetheless) useful to include packages you will use in every file, like inputenc with UTF-8. Have a look here for some candidates: What packages do people load by default in LaTeX?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.