# MinionPro font with some symbols from kpfonts

At this moment I'm using MinionPro package. But I don't like most of the MnSymbol's symbols. I discovered that I really like some symbols from kpfonts (if anyone suggest anything better, I will be listening to you, but I'm looking only for no rounded symbols).

I would like to get from kpfonts this:

• All relation symbols (=, ≤, >, ≠, ~, \subset, ... all of them).
• All the operators (\times, +, –, ÷, ... ).
• About the big operators, I would like to keep the integrals from MinionPro package (minionint option), and all the rest is welcome (well, I will replace the \sum symbol anyway, so it doesn't matter if it comes or not).
• All the arrows (or arrows like).
• All the delimiters, except, if possible the base parenthesis and the base bracket (which are original from Minion Pro font and look good). I'm not sure about this, but what I really hate from minion are \langle/\rangle and parenthesis (except the base ones).
• Also, I'm interested in the blackboard bold alphabet. But not the caligraphic alphabet (as I use swash from Minion Pro).
• About the accents, I'm not sure at all, as I can't compare easily both of them. So this is up to you.

By the way, what I want to keep from MinionPro are:

• All the symbols from the original font (like \partial).
• All the greek letters and \mathrm, \mathit, \mathnormal, and the numbers from MinionPro.
• The prime symbol, and (I repeat) may be the accents, I'm not sure an listen to your opinion.

May be I forgot something, but this is all at this moment. Any idea or suggestion is welcome. Every approximation (not all the points, but some of them) will be also welcome.

The reason why I want this (to give you the idea so you could think yourself and tell your opinion) is that I prefer the cut symbols rather than the rounded ones. By the way, I think that some other symbols simply don't look good or don't fit the Minion Pro font. And I think kpfonts is pretty full of good symbols which may fit better Minion. Again, I will listen to whatever you have to suggest.

To give a starting point, this is my actual template:

\documentclass{scrartcl}
\usepackage[%
opticals,%
smallfamily,%
textosf,%
footnotefigures,%
swash,%
openg,%
fourierbb,%
minionint,%
italicgreek,%
mathlf,%
mathtabular,%
onlytext,%
]{MinionPro}
\usepackage[notext]{kpfonts}
\makeatletter
\DeclareSymbolFont{operators}  {T1} {\Mn@Math@Family}{m} {n}
\DeclareSymbolFont{letters}    {OML}{MinionPro-TOsF} {m} {\Mn@Math@LetterShape}
\SetSymbolFont{operators}{bold}{T1} {\Mn@Math@Family}{eb}{n}
\SetSymbolFont{letters}  {bold}{OML}{MinionPro-TOsF} {eb}{\Mn@Math@LetterShape}
\DeclareMathAlphabet\mathbf    {T1} {\Mn@Math@Family}{eb}{n}
\DeclareMathAlphabet\mathit    {T1} {\Mn@Math@Family}{m} {it}
\SetMathAlphabet\mathit  {bold}{T1} {\Mn@Math@Family}{eb}{it}
\DeclareMathVersion{tabular}
\SetSymbolFont{operators}{tabular}    {T1} {\Mn@Math@TFamily}{m}{n}
\SetSymbolFont{letters}  {tabular}    {OML}{MinionPro-TOsF}  {m}{\Mn@Math@LetterShape}
\SetMathAlphabet\mathit  {tabular}    {T1} {\Mn@Math@TFamily}{m}{it}

\DeclareMathVersion{boldtabular}
\SetSymbolFont{operators}{boldtabular}{T1} {\Mn@Math@TFamily}{eb}{n}
\SetSymbolFont{letters}  {boldtabular}{OML}{MinionPro-TOsF}  {eb}{\Mn@Math@LetterShape}
\SetMathAlphabet\mathit  {boldtabular}{T1} {\Mn@Math@TFamily}{eb}{it}
\makeatother
\begin{document}
$\int_a^b f(x) \, \mathrm{d}x = 3 + 2 = 5 \subset \mathbb{N}$
\end{document}

-
I can't compile this without errors. Can you strip out the stuff which requires the purchase of MinionPro? I've got the basic MinionPro installed for use with TeX but I guess you are using options specific to the fonts Adobe sells. Obviously, this might be useless if the issue is only reproducible with that version of the fonts. –  cfr Mar 13 at 23:44
Should basically everything in your example be in Minion? –  cfr Mar 14 at 0:02
Except for =, +, \subset, \mathbb{N}… It's explained above (also explained the parts in which I have doubts, e.g. minionint). If you want to compile you only need to remove opticals and smallfamily (I think). –  Manuel Mar 14 at 0:03
Actually, removing opticals is enough. I'm a bit confused. Why do you tell LaTeX to take the operators from Minion if you don't want them? –  cfr Mar 14 at 0:27

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

% 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}%
}

% 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
}

%   % openg
%   \Mn@Define@Open@g

% for cal

\makeatother

\begin{document}

{\fontfamily{jkp}\selectfont
\marginpar{\fontfamily{jkp}\selectfont kpfonts}\\
0123456789

\marginpar{minion}\\
0123456789\marginpar{\small osf: prop, tab}
{\tbfigures 0123456789}\\
{\lnfigures 0123456789\marginpar{\small ln: prop, tab}
\tbfigures 0123456789}

$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:

• Accents.
• Calligraphic.

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.

-
That's great code! Some more things: the numbers are not from Minion, the calligraphic letters are noth “Minion Swash” (more things but I just forgot). I also prefer the blackboard from kpfonts (or other font), but there is a problem: kpfonts are bigger than Minion font by default, and none of the offers an scale option, while this is no problem with symbols (one doesn't appreciate the difference), with letters (like \mathbb or \mathcal) the difference is easily spotted. Thanks! –  Manuel Mar 14 at 10:04
@Manuel I'm not sure if this will work better. It should get the numbers in minion correctly and the calligraphic stuff. I commented out the blackboard bit so that will come from kpfonts. If you change your mind about that, you can just uncomment it again. –  cfr Mar 14 at 23:55
Still not perfect, since some things doesn't work as I would like, but I'm satisfied. This is great work. Feel free in the future to add all the extra changes you want. –  Manuel Mar 15 at 12:12
@Manuel Yes, sorry. There's stuff which I just don't know how to do. If I come across anything or think of anything which might help with the unresolved issues, I'll definitely edit and leave a comment to update you. I figured this should at least give you a start. It is a shame that neither package supports a scaling factor in the way that e.g. psnfss` does because that would make adjusting the size straightforward, at least. –  cfr Mar 15 at 15:26
tex-tipografia.com/archive/mathfont.zip Might help. –  Manuel Mar 27 at 18:05