Simply setting \usemathfont{Minion Pro}
with unicode-math
will not work since it expects an OpenType math font, but you can use range
option to use normal text fonts for certain math alphabets (or any math symbol), check documentation for details.
\documentclass{minimal}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{Minion Pro}
\setmathfont{Asana Math} % for math symbols, can be any other OpenType math font
\setmathfont[range=\mathup] {Minion Pro}
\setmathfont[range=\mathbfup]{Minion Pro Bold}
\setmathfont[range=\mathbfit]{Minion Pro Bold Italic}
\setmathfont[range=\mathit] {Minion Pro Italic}
\begin{document}
Here’s some text. Now some math: $x^2 + y^2 = z^2$, $\mathrm{x^2 + y^2 = z^2}$, $\mathbfit{x^2 + y^2 = z^2}$, $\mathbf{x^2 + y^2 = z^2}$.
\end{document}
I'm not sure this will help much. I will delete it if not. Most of it is copied and pasted from MinionPro.sty
.
It is necessary to adapt the code from MinionPro.sty
, especially to get the integrals working while bringing other symbols over from kpfonts
. To do this, I've declared a new symbol font, intsymbols
, and defined the integrals in terms of that font. This should mean that the initial declaration by kpfonts
of symbols
is operative for all other symbols.
I've removed the commands declaring operators
because that's just overriding the declaration from kpfonts
but you want most of them, at least, from there. To get the accents from MinionPro, I think it is better to treat them as an exception as with the integrals. So I've set up another symbol font, accents
, for this.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{textcomp,parskip}
\usepackage[%
% x opticals,%
smallfamily,%
textosf,%
footnotefigures,%
swash,%
openg,%
fourierbb,%
minionint,%
italicgreek,%
mathlf,%
mathtabular,%
onlytext,%
]{MinionPro}
\usepackage[notext]{kpfonts}
\makeatletter
\DeclareMathVersion{tabular}
\DeclareMathVersion{boldtabular}
\DeclareSymbolFont{letters} {OML}{MinionPro-TOsF} {m} {\Mn@Math@LetterShape}
\SetSymbolFont{letters} {bold}{OML}{MinionPro-TOsF} {eb}{\Mn@Math@LetterShape}
\SetSymbolFont{letters} {tabular} {OML}{MinionPro-TOsF} {m}{\Mn@Math@LetterShape}
\SetSymbolFont{letters} {boldtabular}{OML}{MinionPro-TOsF} {eb}{\Mn@Math@LetterShape}
\DeclareSymbolFont{minoperators} {T1} {\Mn@Math@Family}{m} {n}
\SetSymbolFont{minoperators}{bold}{T1} {\Mn@Math@Family}{eb}{n}
\SetSymbolFont{minoperators}{tabular} {T1} {\Mn@Math@TFamily}{m}{n}
\SetSymbolFont{minoperators}{boldtabular}{T1} {\Mn@Math@TFamily}{eb}{n}
\DeclareMathAlphabet\mathbf {T1} {\Mn@Math@Family}{eb}{n}
\SetMathAlphabet\mathbf {tabular} {T1} {\Mn@Math@TFamily}{eb}{n}
\DeclareMathAlphabet\mathit {T1} {\Mn@Math@Family}{m} {it}
\SetMathAlphabet\mathit {bold}{T1} {\Mn@Math@Family}{eb}{it}
\SetMathAlphabet\mathit {tabular} {T1} {\Mn@Math@TFamily}{m}{it}
\SetMathAlphabet\mathit {boldtabular}{T1} {\Mn@Math@TFamily}{eb}{it}
\DeclareMathAlphabet\mathrm {T1} {\Mn@Math@Family}{m}{n}
\SetMathAlphabet\mathrm {bold}{T1} {\Mn@Math@Family}{eb}{n}
\SetMathAlphabet\mathrm {tabular}{T1} {\Mn@Math@TFamily}{m}{n}
\SetMathAlphabet\mathrm {bold}{T1} {\Mn@Math@TFamily}{eb}{n}
% for figures
\DeclareMathSymbol{0}{\mathalpha}{minoperators}{`0}
\DeclareMathSymbol{1}{\mathalpha}{minoperators}{`1}
\DeclareMathSymbol{2}{\mathalpha}{minoperators}{`2}
\DeclareMathSymbol{3}{\mathalpha}{minoperators}{`3}
\DeclareMathSymbol{4}{\mathalpha}{minoperators}{`4}
\DeclareMathSymbol{5}{\mathalpha}{minoperators}{`5}
\DeclareMathSymbol{6}{\mathalpha}{minoperators}{`6}
\DeclareMathSymbol{7}{\mathalpha}{minoperators}{`7}
\DeclareMathSymbol{8}{\mathalpha}{minoperators}{`8}
\DeclareMathSymbol{9}{\mathalpha}{minoperators}{`9}
% for accents
\DeclareMathAccent{\grave} {\mathalpha}{minoperators}{0}
\DeclareMathAccent{\acute} {\mathalpha}{minoperators}{1}
\DeclareMathAccent{\hat} {\mathalpha}{minoperators}{2}
\DeclareMathAccent{\tilde} {\mathalpha}{minoperators}{3}
\DeclareMathAccent{\ddot} {\mathalpha}{minoperators}{4}
\DeclareMathAccent{\mathring}{\mathalpha}{minoperators}{6}
\DeclareMathAccent{\check} {\mathalpha}{minoperators}{7}
\DeclareMathAccent{\breve} {\mathalpha}{minoperators}{8}
\DeclareMathAccent{\bar} {\mathalpha}{minoperators}{9}
\DeclareMathAccent{\dot} {\mathalpha}{minoperators}{10}
% % for blackboard - I prefer this commented out but I suppose it is a matter of taste
% \Mn@load@bb
% for greek
\newcommand\Mn@greek@list@upper{}
\newcommand\Mn@greek@list@lower{}
\let\Mn@greek@list@upper\@gobble
\let\Mn@greek@list@lower\@gobble
\newcommand\Mn@greek@list{}
\newcommand*\Mn@greek@letter[3]{%
\expandafter\DeclareMathSymbol
\expandafter{\csname it#1\endcsname}{\mathord}{letters}{#2}%
\expandafter\DeclareMathSymbol
\expandafter{\csname up#1\endcsname}{\mathord}{letters}{#3}%
\edef\@tempa{`\@car#1\@nil}%
\edef\Mn@greek@list{\expandafter\noexpand\csname
Mn@greek@list@\ifnum\uccode\@tempa=\@tempa upper\else lower\fi\endcsname}%
\expandafter\edef\Mn@greek@list{\Mn@greek@list,#1}%
}
\Mn@greek@letter{Gamma} {'000}{'200}
\Mn@greek@letter{Delta} {'001}{'201}
\Mn@greek@letter{Theta} {'002}{'202}
\Mn@greek@letter{Lambda} {'003}{'203}
\Mn@greek@letter{Xi} {'004}{'204}
\Mn@greek@letter{Pi} {'005}{'205}
\Mn@greek@letter{Sigma} {'006}{'206}
\Mn@greek@letter{Upsilon} {'007}{'207}
\Mn@greek@letter{Phi} {'010}{'210}
\Mn@greek@letter{Psi} {'011}{'211}
\Mn@greek@letter{Omega} {'012}{'212}
\Mn@greek@letter{alpha} {'013}{'213}
\Mn@greek@letter{beta} {'014}{'214}
\Mn@greek@letter{gamma} {'015}{'215}
\Mn@greek@letter{delta} {'016}{'216}
\Mn@greek@letter{epsilon} {'017}{'217}
\Mn@greek@letter{zeta} {'020}{'220}
\Mn@greek@letter{eta} {'021}{'221}
\Mn@greek@letter{theta} {'022}{'222}
\Mn@greek@letter{iota} {'023}{'223}
\Mn@greek@letter{kappa} {'024}{'224}
\Mn@greek@letter{lambda} {'025}{'225}
\Mn@greek@letter{mu} {'026}{'226}
\Mn@greek@letter{nu} {'027}{'227}
\Mn@greek@letter{xi} {'030}{'230}
\Mn@greek@letter{pi} {'031}{'231}
\Mn@greek@letter{rho} {'032}{'232}
\Mn@greek@letter{sigma} {'033}{'233}
\Mn@greek@letter{tau} {'034}{'234}
\Mn@greek@letter{upsilon} {'035}{'235}
\Mn@greek@letter{phi} {'036}{'236}
\Mn@greek@letter{chi} {'037}{'237}
\Mn@greek@letter{psi} {'040}{'240}
\Mn@greek@letter{omega} {'041}{'241}
\Mn@greek@letter{varepsilon} {'042}{'242}
\Mn@greek@letter{vartheta} {'043}{'243}
\Mn@greek@letter{varpi} {'044}{'244}
\Mn@greek@letter{varrho} {'045}{'245}
\Mn@greek@letter{varsigma} {'046}{'246}
\Mn@greek@letter{varphi} {'047}{'247}
\Mn@greek@letter{varbeta} {'260}{'250}
\Mn@greek@letter{varkappa} {'261}{'251}
\Mn@greek@letter{backepsilon} {'262}{'252}
\Mn@greek@letter{varbackepsilon}{'263}{'253}
\Mn@greek@letter{digamma} {'264}{'254}
\Mn@greek@letter{eth} {'266}{'256}
\newcommand*\Mn@greek@select[2]{%
\expandafter\let\expandafter\Mn@greek@list\csname Mn@greek@list@#2\endcsname
\@for\@tempa:=\Mn@greek@list\do{%
\expandafter\let\csname\@tempa\expandafter\endcsname
\csname#1\@tempa\endcsname
}%
}
\newcommand*\Mn@greek@Upright{%
\Mn@greek@select{up}{upper}%
\Mn@greek@select{up}{lower}%
}
\newcommand*\Mn@greek@Italic{%
\Mn@greek@select{it}{upper}%
\Mn@greek@select{it}{lower}%
}
\newcommand*\Mn@greek@Mixed{%
\Mn@greek@select{up}{upper}%
\Mn@greek@select{it}{lower}%
}
\Mn@load@greek
% for symbols
\let\hbar\undefined
\DeclareMathSymbol{\hbar} {\mathord}{letters}{'265}
\DeclareMathSymbol{\uphbar} {\mathord}{letters}{'255}
\DeclareMathSymbol{\partial} {\mathord}{letters}{'100}
\DeclareMathSymbol{\uppartial} {\mathord}{letters}{'300}
\DeclareMathSymbol{\ell} {\mathord}{letters}{'140}
\DeclareMathSymbol{\upell} {\mathord}{letters}{'340}
\DeclareMathSymbol{\slashedzero} {\mathord}{letters}{'257}
\DeclareMathSymbol{\upimath} {\mathord}{letters}{'373}
\DeclareMathSymbol{\upjmath} {\mathord}{letters}{'374}
\DeclareMathSymbol{\varsmallint} {\mathord}{letters}{'376}
\DeclareMathSymbol{\openg} {\mathalpha}{letters}{'267}
\DeclareRobustCommand\lambdabar {\middlebar\lambda}
\DeclareRobustCommand\lambdaslash {\middleslash\lambda}
% integrals
\newcommand\Mn@Decl@Minion@Ints{%
\DeclareFontFamily{U}{MnSymbolFI}{}
\DeclareFontShape{U}{MnSymbolFI}{m}{it}{
<-6> MnSymbolFI\Mn@minionint@opticals5
<6-7> MnSymbolFI\Mn@minionint@opticals6
<7-8> MnSymbolFI\Mn@minionint@opticals7
<8-9> MnSymbolFI\Mn@minionint@opticals8
<9-10> MnSymbolFI\Mn@minionint@opticals9
<10-12> MnSymbolFI\Mn@minionint@opticals10
<12-> MnSymbolFI\Mn@minionint@opticals12
}{}
\DeclareFontShape{U}{MnSymbolFI}{b}{it}{
<-6> MnSymbolFI\Mn@minionint@bold\Mn@minionint@opticals5
<6-7> MnSymbolFI\Mn@minionint@bold\Mn@minionint@opticals6
<7-8> MnSymbolFI\Mn@minionint@bold\Mn@minionint@opticals7
<8-9> MnSymbolFI\Mn@minionint@bold\Mn@minionint@opticals8
<9-10> MnSymbolFI\Mn@minionint@bold\Mn@minionint@opticals9
<10-12> MnSymbolFI\Mn@minionint@bold\Mn@minionint@opticals10
<12-> MnSymbolFI\Mn@minionint@bold\Mn@minionint@opticals12
}{}
\DeclareSymbolFont{intsymbols} {U}{MnSymbolFI}{m}{it}
\SetSymbolFont{intsymbols}{bold}{U}{MnSymbolFI}{b}{it}
\let\varint\tint
\let\variint\tiint
\let\variiint\tiiint
\let\variiiint\tiiiint
\let\varidotsint\tidotsint
\let\varlandupint\tlandupint
\let\varlanddownint\tlanddownint
\let\varstrokedint\tstrokedint
\let\varoint\toint
\let\varoiint\toiint
\let\varrcirclerightint\trcirclerightint
\let\varlcirclerightint\tlcirclerightint
\let\varrcircleleftint\trcircleleftint
\let\varlcircleleftint\tlcircleleftint
\let\varsumint\tsumint
\DeclareMathSymbol\tint \mathop{intsymbols}{112}
\DeclareMathSymbol\tiint \mathop{intsymbols}{114}
\DeclareMathSymbol\tiiint \mathop{intsymbols}{116}
\DeclareMathSymbol\tiiiint \mathop{intsymbols}{118}
\DeclareMathSymbol\tidotsint \mathop{intsymbols}{120}
\DeclareMathSymbol\tlandupint \mathop{intsymbols}{122}
\DeclareMathSymbol\tlanddownint \mathop{intsymbols}{124}
\DeclareMathSymbol\tstrokedint \mathop{intsymbols}{126}
\DeclareMathSymbol\toint \mathop{intsymbols}{128}
\DeclareMathSymbol\toiint \mathop{intsymbols}{130}
\DeclareMathSymbol\trcirclerightint\mathop{intsymbols}{132}
\DeclareMathSymbol\tlcirclerightint\mathop{intsymbols}{134}
\DeclareMathSymbol\trcircleleftint \mathop{intsymbols}{136}
\DeclareMathSymbol\tlcircleleftint \mathop{intsymbols}{138}
\DeclareMathSymbol\tsumint \mathop{intsymbols}{140}
\let\intop\tint
\let\ointop\toint
}
\Mn@load@integrals
% % openg
% \Mn@Define@Open@g
% for cal
\Mn@load@cal
\makeatother
\begin{document}
{\fontfamily{jkp}\selectfont
AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz
\marginpar{\fontfamily{jkp}\selectfont kpfonts}\\
0123456789
\textit{AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz\marginpar{\fontfamily{jkp}\itshape\selectfont kpfonts}}}
AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz
\marginpar{minion}\\
0123456789\marginpar{\small osf: prop, tab}
{\tbfigures 0123456789}\\
{\lnfigures 0123456789\marginpar{\small ln: prop, tab}
\tbfigures 0123456789}
\textit{AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz\marginpar{\itshape minion}}
\[
AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz
\]
\[
0123456789
\]
\[
\int_a^b f(x') \, \mathrm{d}x = 3 + 2 = 5 \subset \mathbb{N}
\]
\[
\alpha \beta \varbeta \Gamma \varGamma \gamma \Delta \varDelta \delta \varepsilon \zeta \eta \Theta \varTheta \theta \vartheta \iota \kappa \Lambda \varLambda \lambda \mu \nu \Xi \varXi \xi \Pi \varPi \pi \varpi \rho \varrho \Sigma \varSigma \sigma \varsigma \tau \Upsilon \varUpsilon \upsilon \Phi \varPhi \phi \varphi \chi \Psi \varPsi \psi \Omega \varOmega \omega
\]
\[
\mathcal{AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz}
\]
\[
\mathbb{ABCDEFGHIJKLMNOPQRSTUVWXYZ}
\]
\[
\times \div + - \Re \aleph \wp \eth \imath \Bbbk \partial \nabla \mho
\]
\[
\acute{a}\grave{a}\check{a}\check{a}\hat{a}\tilde{a}\bar{a}\breve{a}\dot{a}\ddot{a}\mathring{a}
\]
\[
\rightarrow\leftarrow\leftrightarrow\mapsto\longleftarrow\longleftrightarrow\longrightarrow\longmapsto\downarrow\updownarrow\uparrow\nwarrow\searrow\nearrow\swarrow\Leftarrow\nleftarrow\nleftrightarrow\nrightarrow\Leftrightarrow\Rightarrow\Longleftarrow\Longleftrightarrow\Longrightarrow\Updownarrow\Uparrow\Downarrow\nLeftarrow\nLeftrightarrow\nRightarrow
\]
\end{document}
will produce:
I'm not sure but I think this should take the following from kpfonts
:
- All relation symbols except for any explicitly defined from MinionPro.
- All the operators except for any explicitly defined from MinionPro, including the integrals.
- All the arrows except for any explicitly defined from MinionPro.
- All the delimiters except for any explicitly defined from MinionPro.
- Blackboard.
The following should, I hope, come from MinionPro:
- All the symbols from the original font (like
\partial
).
- All the Greek letters and
\mathrm
, \mathit
, \mathnormal
, and the numbers.
- Integrals.
It also takes the following from MinionPro:
These are both marked up in the code so you can comment them out to get them from kpfonts
if you prefer. Personally, I prefer the results with the blackboard bit commented but your kilometres may vary.
I currently have no idea how to pick and choose delimiters or how to pull the prime symbol only out. (I guess this is meant to come from MnSymbol but I don't know how to make that work.)
I also have no idea what you can do about the sizes in the absence of a scaling option. Usually, this is built into the font definition files. I think you might be able to adjust MinionPro since you have the opticals. I cannot play with this as I don't but perhaps using the normalsize/nonormalsize
option or similar might be useful.
Best Answer
I suggest you load
MinionPro
withonlymath
option. As far as I understand it,MnSymbol
is mainly used for math.Use
\setmainfont
offontspec
to setMinion Pro
As the math font. The problem with all caps and small caps is becauseMinionPro
optimized the spacing whilefontspec
won't do it for you automatically. But the solution is simple, use\addfontfeatures{WordSpace=...}
feature offontspec
. AlsoKerning=Uppercase
will enable thecpsp
opentype feature though I don't find its space is enough for all caps title.Indeed I used
MinionPro
package for quite a long time. But the only reason stopped me for switching tofontspec
before is the lack of support of microtype inxetex
. Now I usefontspec
andLuaTeX
exclusively. This is a better solution thanMininonPro
since you can access features likecase
easily, which will select right punctuations when typeset in all caps. And much more.For
Minion Pro
font, however, I found that it has a few problems withfontspec
. At least on my Mac, there are issues forfontspec
to select correct weight and optical sizes. See https://github.com/wspr/fontspec/issues/105.In my case the
medium
weight causefontspec
orluatex
confused. So I added the following tootfl-blacklist.cnf
.And used the following to setup my fonts to get correct optical size.
where
mnr
,mnrb
, etc are protrusion settings I wrote based onMinionPro
package's