[Tex/LaTex] How should fontspec be set up to exploit the best features of Pro fonts

fontsizefontspecxetex

Suppose that you have a Pro class fonts such as Adobe Arno which has several design sizes as described below:

Design    Size  Size Ranges             
Caption:   8    point 5–8.5 point
SmText:   10    point 8.6–11
Regular:  12    point 11.1–14 point
Subhead:  18    point 14.1–21.5 point
Display:  36    point 21.5+ point

Arno Pro is supplied as set of the following font files:

ArnoPro-Bold.otf
ArnoPro-BoldCaption.otf
ArnoPro-BoldDisplay.otf
ArnoPro-BoldItalic.otf
ArnoPro-BoldItalicCaption.otf
ArnoPro-BoldItalicDisplay.otf
ArnoPro-BoldItalicSmText.otf
ArnoPro-BoldItalicSubhead.otf
ArnoPro-BoldSmText.otf
ArnoPro-BoldSubhead.otf
ArnoPro-Caption.otf
ArnoPro-Display.otf
ArnoPro-Italic.otf
ArnoPro-ItalicCaption.otf
ArnoPro-ItalicDisplay.otf
ArnoPro-ItalicSmText.otf
ArnoPro-ItalicSubhead.otf
ArnoPro-LightDisplay.otf
ArnoPro-LightItalicDisplay.otf
ArnoPro-Regular.otf
ArnoPro-Smbd.otf
ArnoPro-SmbdCaption.otf
ArnoPro-SmbdDisplay.otf
ArnoPro-SmbdItalic.otf
ArnoPro-SmbdItalicCaption.otf
ArnoPro-SmbdItalicDisplay.otf
ArnoPro-SmbdItalicSmText.otf
ArnoPro-SmbdItalicSubhead.otf
ArnoPro-SmbdSmText.otf
ArnoPro-SmbdSubhead.otf
ArnoPro-SmText.otf
ArnoPro-Subhead.otf

How should one setup fontspec
package to exploit best features of these fonts?

Starting code is here:

\usepackage{fontspec}
\setmainfont[Renderer=Basic,Ligatures={TeX}]{ArnoPro}

Would it be sufficient? I am not sure that Caption version of these fonts will be invoked by the \small or \footnotesize switches. What should one add here?

Added at 2nd edit

I mean that in standard LaTeX classes font size declarations are bounded to optical sizes according to the following table:

 declaration \ class option  10pt      11pt       12pt

 \tiny                        5pt       6pt        6pt
 \scriptsize                  7pt       8pt        8pt
 \footnotesize                8pt       9pt       10pt
 \small                       9pt      10pt       11pt
 \normalsize                 10pt      11pt       12pt
 \large                      12pt      12pt       14pt
 \Large                      14pt      14pt       17pt
 \LARGE                      17pt      17pt       20pt
 \huge                       20pt      20pt       25pt
 \Huge                       25pt      25pt       25pt

Hence, for 10pt class option, \tiny, \scriptsize, \footnotesize should switch to Arno Pro Caption, \small, \normalsize to Arno Pro SmText, \large and \Large to Arno Pro, \LARGE and \huge to Arno Pro Subhead, and \Huge to Arno Pro Display. All these fonts are actually diffrent, when scaled to same size, so that Caption version looks better for \footnosize than Regular vesrion.

Best Answer

Answer to my question occurred to be rather simple. There is no need to invent sophisticated font loading procedure. fontspec package occurred to be smart enough to select correct font shape for every size. To check that one need to run the following simple test:

\documentclass{article}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures={TeX}}
\setmainfont{Arno Pro}

\begin{document}%
\newcommand{\MyText}{No offence meant, I even upvoted your answer.}

\verb|\tiny|=\tiny\MyText\par
\verb|\scriptsize|=\scriptsize\MyText\par
\verb|\footnotesize|=\footnotesize\MyText\par
\verb|\normalsize|=\normalsize\MyText\par
\verb|\large|=\large\MyText\par
\verb|\Large|=\Large\MyText\par
\verb|\LARGE|=\LARGE\MyText\par
\verb|\huge|=\huge\MyText\par
\verb|\Huge|=\Huge\MyText\par

\end{document}

Then I exported the compiled PDF to MS World and saw that \tiny \scriptsize and \footnotesize are typed by Arno Pro Caption as it should be, and \normalsize is typed by Arno Pro SmText as expected, e.c.t.

Great!

Unfortunately, LuaLaTeX on my computer [Version beta-0.70.1-2011052811 (rev 4277) (format=lualatex 2011.6.23)] did not manage to compile that short example, but XeLaTeX have that done very quickly.