What are classes and packages?

The main difference between LaTeX~2.09 and LaTeX2e<#79#><#79#> is in the commands before 7. In LaTeX~2.09, documents had <#80#>styles<#80#>, such as <#81#>article<#81#> or <#82#>book<#82#>, and <#83#>options<#83#>, such as <#84#>twoside<#84#> or <#85#>epsfig<#85#>. These were indicated by the 8 command:
9[<<#87#>options<#87#>>]{<<#88#>style<#88#>>}
For example, to specify a two-sided article with encapsulated PostScript figures, you said: verbatim2 However, there were two different types of document style option: <#90#>built-in options<#90#> such as 10; and <#91#>packages<#91#> such as 11. These were very different, since any LaTeX<#92#><#92#> document style could use the <#93#>epsfig<#93#> package but only document styles which declared the <#94#>twoside<#94#> option could use that option. To avoid this confusion, LaTeX2e<#95#><#95#> differentiates between built-in options and packages. These are given by the new 12 and 13 commands:
14[<<#97#>options<#97#>>]{<<#98#>class<#98#>>}
15[<<#99#>options<#99#>>]{<<#100#>packages<#100#>>}
For example, to specify a two-sided article with encapsulated PostScript figures, you now write: verbatim3 You can load more than one package with a single 16 command; for example, rather than writing: verbatim4 you can specify: verbatim5 Note that LaTeX2e<#102#><#102#> still understands the LaTeX~2.09 17 command. This command causes LaTeX2e<#103#><#103#> to enter <#104#>LaTeX~2.09 compatibility mode<#104#>, which is described in Section~#Sec209#105>. You should not, however, use the 18 command for new documents because this compatibility mode is very slow and the new features of LaTeX2e<#106#><#106#> are not available in this mode. To help differentiate between classes and packages, document classes now end with 19 rather than 20. Packages still end with 21, since most LaTeX~2.09 packages work well with LaTeX2e.