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
amsthmbefore this package; loadfootmiscafter 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
amsmathand introduces new commands. Load instead ofamsmath - Use in: Any document with mathematics
- Caveats: ???
- Problems addressed: Fixes several issues in
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: ???
Fonts
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
lmoderninstead.
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
fixltx2ebecause 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\RequirePackage{fixltx2e}before\documentclass{revtex}in order to compile my doucment withxelatexorlualatexsince otherwiserevtexclass conflicts with those new engines. – Igor Kotelnikov Feb 05 '14 at 12:53