The bottom line at the top.
Don't try this at home kids! Using MnSymbol with unicode-math will kill your time!
The symbols provided by MnSymbol are not set up for use with unicode-math
. Some are missing, some are not scalable in size. These need to be replaced by a different math font.
For my opinion XITS Math does a good job. One just needs to find the unicode characters due to fix.
Partial differential \partial
:
\setmathfont[range={"2202} ]{XITS Math}
The integrals with an additional little tweak:
\setmathfont[range={"222B-"2233,"2A0B-"2A1C}]{XITS Math}
\newcommand{\intX}[2]{\int\limits_{\mkern-15mu #1}^{#2} \mkern-15mu}
For the sum symbol I personally find the Latin Modern Math symbol a better match:
\setmathfont[range={"2211} ]{Latin Modern Math}
The brackets come with a quite heavy weight in XITS Math, so also used Latin Modern Math in this case:
\setmathfont[range={"005B,"005D,"0028,"0029,"007B,"007D} ]{Latin Modern Math}
The vertical line character though, is too bold there, so back to XITS Math
\setmathfont[range={"007C} ]{XITS Math}
Fixing the root:
\setmathfont[range={"002F,"221A}]{XITS Math}
and the comma:
\setmathfont[range={"002C} ]{XITS Math}
and finally the \mathscr
and additionally the \mathrm
characters
\setmathfont[range=\mathscr,StylisticSet={1}]{XITS Math}
\setmathrm{Minion Pro}
The letter \epsilon
is missing, but \varepsilon
is working. As we use unicode-math the replacement with \let
needs to be done at the begin of the document:
\AtBeginDocument{%
\let\phi\varphi
\let\epsilon\varepsilon
}
or \AfterEndPreamble
in case there are problems with hyperref and the etoolbox package.
One further problem is the slash /
, where it is a matter of taste, which font should be use for replacement.
\setmathfont[range={"002F,"2215}]{Latin Modern Math}
But the actual mistake of the author of the original MWE was, that he should have used \mathbin{/}
instead of /
for a better spacing.
All these fixes together give a pleasant result:
\documentclass[a4paper]{article}
\usepackage{amsmath,amssymb,mathrsfs}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont[Numbers = OldStyle,Ligatures = TeX,SmallCapsFeatures = {Renderer=Basic}]{Minion Pro}
\setsansfont[Numbers={OldStyle,Proportional},Scale=MatchLowercase]{Minion Pro}
\setmonofont[Numbers=OldStyle,Scale=MatchLowercase]{Minion Pro}
\setmathfont{MnSymbol}
\setmathfont[range=\mathup/{num,latin,Latin,greek,Greek}]{Minion Pro}
\setmathfont[range=\mathbfup/{num,latin,Latin,greek,Greek}]{MinionPro-Bold}
\setmathfont[range=\mathit/{num,latin,Latin,greek,Greek}]{MinionPro-It}
\setmathfont[range=\mathbfit/{num,latin,Latin,greek,Greek}]{MinionPro-BoldIt}
\setmathfont[range=\mathscr,StylisticSet={1}]{XITS Math}
\setmathfont[range={"005B,"005D,"0028,"0029,"007B,"007D} ]{Latin Modern Math} % brackets
\setmathfont[range={"2202} ]{XITS Math} % partial
\setmathfont[range={"2211} ]{Latin Modern Math} % sum
\setmathfont[range={"007C} ]{XITS Math} % vertical
\setmathfont[range={"221A} ]{XITS Math} % root
\setmathfont[range={"222B-"2233,"2A0B-"2A1C}]{XITS Math} % integrals
\setmathfont[range={"002F,"2215}]{Latin Modern Math} % /
\setmathfont[range={"002C} ]{XITS Math} % ,
\setmathrm{Minion Pro}
\newcommand{\intX}[2]{\int\limits_{\mkern-15mu #1}^{#2} \mkern-15mu}
\AtBeginDocument{\let\epsilon\varepsilon}
\begin{document}
...
Also the output produced by \blindmathpaper
looks nice:
The neverending story.
Probably you will still find something missing. The last issue I encountered before I gave up, was the missing full stop/punctuation mark as discussed in this question and also solved with this answer. But even then commands like \dots
still did not work. Realizing that one needs to fix almost everything of MnSymbol, so actually nothing is left, I decided to use another math font and just included some certain symbols of MnSymbol I'd liked.
I finally use this settings:
\setmathfont{XITS Math}
\setmathfont[range=\mathup/{num,latin,Latin,greek,Greek}]{Minion Pro}
\setmathfont[range=\mathbfup/{num,latin,Latin,greek,Greek}]{MinionPro-Bold}
\setmathfont[range=\mathit/{num,latin,Latin,greek,Greek}]{MinionPro-It}
\setmathfont[range=\mathbfit/{num,latin,Latin,greek,Greek}]{MinionPro-BoldIt}
\setmathfont[range=\mathscr,StylisticSet={1}]{XITS Math}
\setmathfont[range={"005B,"005D,"0028,"0029,"007B,"007D,"2211,"002F,"2215 } ]{Latin Modern Math} % brackets, sum, /
\setmathfont[range={"002B,"002D,"003A-"003E} ]{MnSymbol} % + - < = >
\setmathrm{Minion Pro}
The bottom line at the bottom.
Don't try this at home kids! Using MnSymbol with unicode-math will kill your time!
The whole thing is so buggy, that it is not worth trying. Maybe in the future. Using another font as base and include certain symbols from MnSymbol seems appropriate though.
Best Answer
wasysym, txfonts, and pxfonts packages provide these symbols. It is always a good idea to check the comprehensive latex symbol list