[Tex/LaTex] Getting Started with Minion Pro, XeLaTeX and mathspec

fontsmathspecxetex

I have just started using Minion Pro and mathspec for my work and now I have the following in my preamble:

\usepackage[MnSymbol]{mathspec}
\usepackage{xltxtra}
\defaultfontfeatures{Scale=MatchLowercase}
\setmainfont[Numbers=OldStyle]{Minion Pro}
\setallsansfonts[Numbers={OldStyle,Proportional},Scale=MatchLowercase]{Myriad Pro}
\setallmonofonts[Numbers=OldStyle,Scale=MatchLowercase]{Ubuntu Mono}
\setmathsfont(Digits,Latin)[Scale=MatchLowercase]{Minion Pro}
\setmathsfont(Greek)[Scale=MatchLowercase]{Minion Pro}
\setmathrm{Minion Pro}
\exchangeforms{phi}

Now I have a number of questions:

  1. What fonts can you use for mathbb, mathcal, mathfrak, … I mean I don't even know what I have to choose from here.

  2. I want Myriad Pro Bold whenever I have either math or text bold. How can I do that?

  3. I have been playing around with the mathspec commands but often I get the "too many fonts" error. How do I keep track of how many fonts I have defined?

  4. Also my mono font does not work. In other words mathtt is just mathrm in my text.

Best Answer

Using unicode-math:

\usepackage{amsmath} % always load before mathspec or unicode-math
\usepackage[math-style=ISO]{unicode-math} % try sans-style=upright
\defaultfontfeatures{Scale=MatchLowercase,Mapping=tex-text}
\setmainfont[Numbers={OldStyle,Proportional},SmallCapsFeatures={LetterSpace=6},%
             BoldFont={Myriad Pro Bold},BoldFeatures={LetterSpace=3}]{Minion Pro}
\setsansfont[Numbers={OldStyle,Proportional},LetterSpace=3]{Myriad Pro}
\setmonofont{Crystal}
\setmathfont{xits-math.otf}
\setmathfont[range=\mathup/{num,latin,Latin,greek,Greek}]{Minion Pro}
\setmathfont[range=\mathsf/{num,latin,Latin,greek,Greek}]{Myriad Pro}
\setmathfont[range=\mathbfsf/{num,latin,Latin,greek,Greek}]{Myriad Pro Bold}
\setmathfont[range=\mathit/{num,latin,Latin,greek,Greek}]%
            {Minion Pro Italic}
\setmathfont[range=\mathsfit/{num,latin,Latin,greek,Greek}]%
            {Myriad Pro Italic}
\setmathfont[range=\mathbfsfit/{num,latin,Latin,greek,Greek}]%
            {Myriad Pro Bold Italic}
\setmathfont[range=\mathtt->\mathup]{Crystal}
\let\mathbf\mathbfsf
\let\mathbfit\mathbfsfit
\AtBeginDocument{\let\phi\varphi}

(N.B. unicode-math loads fontspec, xltxtra, and xunicode)

  1. mathbb, mathscr, &c. all have sensible defaults with this. If you want, say, serifed mathbb, you could add \setmathfont[range=\mathbb/{Latin}->\mathup,Scale=MatchUppercase]{Hoefler Text Engraved}. The /{Latin} part applies it only to uppercase latin letters.
  2. Use BoldFont and BoldFeatures with fontspec. For unicode-math, I just used \let commands, although I know there's probably a more elegant way to do this.
  3. Removing MnSymbol frees up a lot of math alphabets, and unicode-math increases the limit.
  4. Apparently Ubuntu Mono is bugged; I couldn't use it, so I tested with Crystal. And it works.

EDIT: To use Minion for even more symbols, you could replace the \mathup line with:

\setmathfont[range={\mathup/{num,latin,Latin,greek,Greek},\question,\exclam,\mathdollar,%
    \percent,\ampersand,\lparen,\rparen,\plus,\comma,\period,\mathslash,\mathcolon,%
    \semicolon,\less,\equal,\greater,\backslash,\rbrack,\lbrack,\atsign,\vert,\lbrace,%
    \rbrace,\times,\div}]{Minion Pro}