I have put the stuff for the font sizes of the class amsart in a separate package amssizes:
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{amssizes}[2012/09/11 v1.0 Font size stuff from class amsart]
\newcommand{\larger}[1][1]{%
\count@\@currsizeindex \advance\count@#1\relax
\ifnum\count@<\z@ \count@\z@ \else\ifnum\count@>12 \count@12 \fi\fi
\ifcase\count@
\Tiny\or\Tiny\or\tiny\or\SMALL\or\Small\or\small
\or\normalsize
\or\large\or\Large\or\LARGE\or\huge\or\Huge\else\Huge
\fi
}
\newcommand{\smaller}[1][2]{\larger[-#1]}
\def\@adjustvertspacing{%
\bigskipamount.7\baselineskip plus.7\baselineskip
\medskipamount\bigskipamount \divide\medskipamount\tw@
\smallskipamount\medskipamount \divide\smallskipamount\tw@
\abovedisplayskip\medskipamount
\belowdisplayskip \abovedisplayskip
\abovedisplayshortskip\abovedisplayskip
\advance\abovedisplayshortskip-1\abovedisplayskip
\belowdisplayshortskip\abovedisplayshortskip
\advance\belowdisplayshortskip 1\smallskipamount
\jot\baselineskip \divide\jot 4 \relax
}
\renewcommand\normalsize{\@xsetfontsize\normalsize 6%
\@adjustvertspacing \let\@listi\@listI}
\DeclareRobustCommand{\Tiny}{\@xsetfontsize\Tiny 1}
\DeclareRobustCommand{\tiny}{\@xsetfontsize\tiny 2}
\DeclareRobustCommand{\SMALL}{\@xsetfontsize\SMALL 3}
\DeclareRobustCommand{\Small}{\@xsetfontsize\Small 4%
\@adjustvertspacing
\def\@listi{\topsep\smallskipamount \parsep\z@skip \itemsep\z@skip
\leftmargin=\leftmargini
\labelwidth=\leftmargini \advance\labelwidth-\labelsep
}%
}
\DeclareRobustCommand{\small}{\@xsetfontsize\small 5\@adjustvertspacing}
\def\footnotesize{\Small}
\def\scriptsize{\SMALL}
\DeclareRobustCommand{\large}{\@xsetfontsize\large 7\@adjustvertspacing}
\DeclareRobustCommand{\Large}{\@xsetfontsize\Large 8\@adjustvertspacing}
\DeclareRobustCommand{\LARGE}{\@xsetfontsize\LARGE 9}
\DeclareRobustCommand{\huge}{\@xsetfontsize\huge{10}}
\DeclareRobustCommand{\Huge}{\@xsetfontsize\Huge{11}}
\def\@xsetfontsize#1#2{%
\chardef\@currsizeindex#2\relax
\edef\@tempa{\noexpand\@setfontsize\noexpand#1%
\expandafter\ifcase\expandafter\@currsizeindex\@typesizes
\else{99}{99}\fi}%
\@tempa
}
\chardef\@currsizeindex=6
\DeclareOption{10pt}{%
\def\@mainsize{10}
\def\@ptsize{0}%
\def\@typesizes{%
\or{5}{6}\or{6}{7}\or{7}{8}\or{8}{10}\or{9}{11}%
\or{10}{12}% normalsize
\or{\@xipt}{13}\or{\@xiipt}{14}\or{\@xivpt}{17}%
\or{\@xviipt}{20}\or{\@xxpt}{24}%
}%
}
\DeclareOption{11pt}{%
\def\@mainsize{11}%
\def\@pt@size{1}%
\def\@typesizes{%
\or{6}{7}\or{7}{8}\or{8}{10}\or{9}{11}\or{10}{12}%
\or{\@xipt}{13}% normalsize
\or{\@xiipt}{14}\or{\@xivpt}{17}\or{\@xviipt}{20}%
\or{\@xxpt}{24}\or{\@xxvpt}{30}%
}%
}
\DeclareOption{12pt}{%
\def\@mainsize{12}%
\def\@ptsize{2}%
\def\@typesizes{%
\or{7}{8}\or{8}{10}\or{9}{11}\or{10}{12}\or{\@xipt}{13}%
\or{\@xiipt}{14}% normalsize
\or{\@xivpt}{17}\or{\@xviipt}{20}\or{\@xxpt}{24}%
\or{\@xxvpt}{30}\or{\@xxvpt}{30}%
}%
}
\DeclareOption{8pt}{%
\def\@mainsize{8}%
\def\@ptsize{8}%
\def\@typesizes{%
\or{5}{6}\or{5}{6}\or{5}{6}\or{6}{7}\or{7}{8}%
\or{8}{10}% normalsize
\or{9}{11}\or{10}{12}\or{\@xipt}{13}%
\or{\@xiipt}{14}\or{\@xivpt}{17}%
}%
}
\DeclareOption{9pt}{%
\def\@mainsize{9}%
\def\@ptsize{9}%
\def\@typesizes{%
\or{5}{6}\or{5}{6}\or{6}{7}\or{7}{8}\or{8}{10}%
\or{9}{11}% normalsize
\or{10}{12}\or{\@xipt}{13}\or{\@xiipt}{14}%
\or{\@xivpt}{17}\or{\@xviipt}{20}%
}%
}
\ExecuteOptions{10pt}
\ProcessOptions*
\normalsize
\endinput
The package sets the sizes for the standard size commands. Additionally:
Macros \larger and \smaller are available.
Size command \Tiny is added to the standard commands.
The different font sizes are:
\Tiny
\tiny
\SMALL (\scriptsize)
\small (\footnotesize)
\normalsize
\large
\Large
\LARGE
\huge
\Huge
\sriptsize and \footnotesize are defined as \SMALL and \small. That allows an easy redefinition of the size.
Example:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[variablett]{lmodern}
\usepackage[11pt]{amssizes}
\begin{document}
\makeatletter
\newcommand*{\test}[1]{%
\texttt{\textbackslash #1} &
\ttfamily
\begingroup
\csname #1\endcsname
\expandafter\endgroup
\f@size pt\\
}
\renewcommand*{\arraystretch}{1.2}
\begin{tabular}{@{}ll@{}}
\texttt{\textbackslash @mainsize} & \texttt{\@mainsize}pt \\
\hline
\test{Tiny}
\test{tiny}
\test{scriptsize}
\test{footnotesize}
\test{small}
\test{normalsize}
\test{large}
\test{Large}
\test{LARGE}
\test{huge}
\test{Huge}
\end{tabular}
\end{document}
