[Tex/LaTex] MinionPro font with some symbols from kpfonts

fontskpfontsminionpro

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}

Best Answer

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:

Maths: MinionPro, kpfonts

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.

Related Question