LaTeX chooses math font sizes with two mechanisms; the first one is through \DeclareMathSizes
and fontmath.ltx
(a file read in at format creation time) contains the following lines
\DeclareMathSizes{5}{5}{5}{5}
\DeclareMathSizes{6}{6}{5}{5}
\DeclareMathSizes{7}{7}{5}{5}
\DeclareMathSizes{8}{8}{6}{5}
\DeclareMathSizes{9}{9}{6}{5}
\DeclareMathSizes{\@xpt}{\@xpt}{7}{5}
\DeclareMathSizes{\@xipt}{\@xipt}{8}{6}
\DeclareMathSizes{\@xiipt}{\@xiipt}{8}{6}
\DeclareMathSizes{\@xivpt}{\@xivpt}{\@xpt}{7}
\DeclareMathSizes{\@xviipt}{\@xviipt}{\@xiipt}{\@xpt}
\DeclareMathSizes{\@xxpt}{\@xxpt}{\@xivpt}{\@xiipt}
\DeclareMathSizes{\@xxvpt}{\@xxvpt}{\@xxpt}{\@xviipt}
The command has four arguments
#1
is a font size;
#2
is the font size to choose when \displaystyle
or \textstyle
are in force, that is, for common symbols in formulas;
#3
is the font size for first level subscripts and superscripts;
#4
is the font size for second (and above) level subscripts and superscripts.
If the current font size matches one declared with \DeclareFontSizes
, then LaTeX uses the stated font sizes. Otherwise it uses some heuristics: more or less, it uses the same font sizes in \displaystyle
or \textstyle
, 70% of it for first level {sub|super}scripts and 50% for second level ones.
Control sequences are used for sizes from 10pt upwards (actually \@xipt
expands to 10.95
for historical reasons, for example).
Therefore, in order to change {sub|super}script sizes at 12pt size, you can simply state, in your document preamble,
\makeatletter
\DeclareMathSizes{\@xiipt}{\@xiipt}{7}{5}
\makeatother
Other similar declarations are necessary for each font size you use and in which you typeset formulas.
The package (.sty
) that accompanies MathTimePro fonts should contain some of these declarations: look at them, because they are different from those in fontmath.ltx
; an old version of mathtime.sty
I have around contains
\DeclareMathSizes{5} {6} {6} {6}
\DeclareMathSizes{6} {6} {6} {6}
\DeclareMathSizes{7} {6.8} {6} {6}
\DeclareMathSizes{8} {8} {6.8}{6}
\DeclareMathSizes{9} {9} {7.6}{6}
\DeclareMathSizes{10} {10} {7.6}{6}
\DeclareMathSizes{10.95}{10.95}{7.6}{6}
\DeclareMathSizes{12} {12} {9} {7}
\DeclareMathSizes{14.4} {14.4} {10} {8}
\DeclareMathSizes{17.28}{17.28}{12} {9}
\DeclareMathSizes{20.74}{20.74}{14.4}{10}
\DeclareMathSizes{24.88}{24.88}{17.28}{12}
Recall that \@xpt
is 10, \@xipt
is 10.95, \@xiipt
is 12, \@xivpt
is 14.4, \@xviipt
is 17.28, \@xxpt
is 20.74, and \@xxvpt
is 24.88
Here is an example, the five point size is just to show that the business works.
\documentclass[12pt]{standalone}
\DeclareMathSizes{12}{12}{5}{5}
\begin{document}
$A^{2}$---A\textsuperscript{2}
\end{document}
Addition
If the problem is not to use the optical sizes provided by MathTimePro (Lite) fonts, the document preamble should override the settings in mtpro2.sty
and related files:
% From mtpro2.sty
\DeclareFontShape{LMP1}{mtt}{m}{it}{<-> mt2mit}{}
\DeclareFontShape{LMP1}{mtt}{b}{it}{<-> mt2bmit}{}
\DeclareFontShape{LMP2}{mtt}{m}{n}{<-> mt2syt}{\skewchar\font32}
\DeclareFontShape{LMP2}{mtt}{b}{n}{<-> mt2bsyt}{\skewchar\font32}
\DeclareFontShape{LMP2}{mtt}{eb}{n}{<-> mt2hsyt}{\skewchar\font32}
\DeclareFontShape{U}{mtt}{b}{n}{<-> mt2mbt}{}
\DeclareFontShape{U}{mt2sya}{m}{n}{<-> mt2syat}{}
\DeclareFontShape{U}{mt2sya}{b}{n}{<-> mt2bsyat}{}
\DeclareFontShape{U}{mt2sya}{eb}{n}{<-> mt2hsyat}{}
% From umt2bb.fd
\DeclareFontShape{U}{mt2bb}{m}{n}{<-> mt2bbt}{}
\DeclareFontShape{U}{mt2bb}{m}{it}{<-> mt2bbit}{}
\DeclareFontShape{U}{mt2bb}{b}{n}{<-> mt2bbdt}{}
% From umt2hrb.fd
\DeclareFontShape{U}{mt2hrb}{m}{n}{<-> mt2hrbt}{}
\DeclareFontShape{U}{mt2hrb}{m}{it}{<-> mt2hbit}{}
\DeclareFontShape{U}{mt2hrb}{b}{n}{<-> mt2hrbdt}{}
% From umt2mf.fd
\DeclareFontShape{U}{mt2mf}{m}{n}{<-> mt2mft}{}
\DeclareFontShape{U}{mt2mf}{b}{n}{<-> mt2bmft}{}
% From umt2ms.fd
\DeclareFontShape{U}{mt2ms}{m}{n}{<-> mt2mct}{}
\DeclareFontShape{U}{mt2ms}{m}{it}{<-> mt2mst}{}
\DeclareFontShape{U}{mt2ms}{b}{it}{<-> mt2bmst}{}
Not all font shapes may be defined in the Lite version.