Minion 专业版
是最漂亮的字体之一,随许多 Adobe 产品提供。Mn符号字体和软件包,不完全兼容路拉泰克斯。
然而最好的选择是小黄人数学,它是商业性的,几乎没有任何免费替代品。但是...
我也想使用 Minion Pro 进行 lualatex 中的数学运算 - 我该怎么做?
这个答案已经给出了一个很好的起点, 这个针对此问题提供了详尽的解释。关于此主题还有许多其他问题,但我还没有找到一个能提供完整解决方案的问题。
使用链接的起点,人们已经得到了所有字母Minion 专业版在数学环境中以及由Mn符号:
\documentclass[a4paper]{article}
\usepackage{amsmath,amssymb,mathrsfs}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont[Numbers = OldStyle,Ligatures = TeX,SmallCapsFeatures = {Renderer=Basic}]{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}
\setmathrm{Minion Pro}
\begin{document}
\begin{equation}
\mathscr{D}^{\gamma} f(t)= \mathscr{D}^{m} \mathscr{I}^{m-\gamma}
f(t)=\frac{\partial^m }{\partial t^m} \Bigg[ \frac{1}{\Gamma(m-\gamma)}
\int\limits_{0}^{t} \frac{f(\tau )}{(t-\tau)^{\gamma-m+1}} ~\partial{\tau} \Bigg] \:,
\end{equation}
\begin{equation}
A =
\left( \begin{array}{ccc}
a_{11} & a_{12} & a_{13} \\
a_{21} & a_{22} & a_{23} \\
a_{31} & a_{32} & a_{33}
\end{array} \right) \qquad
B =
\begin{pmatrix}
a_{11} & a_{12} & a_{13} \\
a_{21} & a_{22} & a_{23} \\
a_{31} & a_{32} & a_{33}
\end{pmatrix}
\end{equation}
\begin{equation}
y = \sqrt{\frac{z^2}{\ln{z}}} + z \,\Bigg|_{z\,=\,z_0}
\end{equation}
\end{document}
另一个例子链接答案结果也相当有缺陷。
有很多事情无法正常工作:
- 偏微分
\partial
和垂直线字符|
丢失 - 积分和
\sum
符号太小 - 所有括号都不会随着其包装内容的大小而缩放,并且大小说明
\Bigg(
符也不起作用 - 矩阵的括号不起作用
- 平方根不按比例缩放
\mathscr
没有任何区别- 缺少逗号
- MinionPro 中的希腊字母
epsilon
未定义(至少在旧字体版本中) - 待续 ...
我该如何修复它们?
有一个替代方法避免unicode-math
并使用非unicode实现MnSymbol
\documentclass[a4paper]{article}
\usepackage{amsmath,amssymb,mathrsfs}
\usepackage[no-math]{fontspec}
\usepackage{MnSymbol}
\setmainfont[...
\begin{document}
...
这当然是一个可行的选择,但一切看起来有点混乱,我对结果不满意。
如果您认为这是更好的方法,请随意发布提供解决方案的答案,让一切变得更加协调。
我知道没有真正的解决方案除非 OpenType 版本的Mn符号已修补以供使用unicode-math
。这个问题是自我回答的,因为我认为值得分享(在我看来)令人愉快的结果,尽管这只是一个丑陋的解决方法。
请随时提供更好、更简单的解决方法甚至部分解决方案。
答案1
顶部有底线。
孩子们,不要在家里尝试这个!使用 MnSymbol 和 unicode-math 会浪费你的时间!
提供的符号Mn符号未设置为使用unicode-math
。有些缺失,有些大小不可缩放。这些需要用不同的数学字体替换。在我看来XITS 数学做得很好。只需要找到Unicode 字符由于修复。
偏微分\partial
:
\setmathfont[range={"2202} ]{XITS Math}
对积分进行一些额外的小调整:
\setmathfont[range={"222B-"2233,"2A0B-"2A1C}]{XITS Math}
\newcommand{\intX}[2]{\int\limits_{\mkern-15mu #1}^{#2} \mkern-15mu}
对于和符号,我个人认为拉丁现代数学符号更匹配:
\setmathfont[range={"2211} ]{Latin Modern Math}
支架的重量相当重XITS 数学,因此也使用拉丁现代数学在这种情况下:
\setmathfont[range={"005B,"005D,"0028,"0029,"007B,"007D} ]{Latin Modern Math}
不过,垂直线字符太粗了,所以回到XITS 数学
\setmathfont[range={"007C} ]{XITS Math}
修复根:
\setmathfont[range={"002F,"221A}]{XITS Math}
和逗号:
\setmathfont[range={"002C} ]{XITS Math}
最后,\mathscr
还有\mathrm
角色
\setmathfont[range=\mathscr,StylisticSet={1}]{XITS Math}
\setmathrm{Minion Pro}
这封信\epsilon
不见了,但\varepsilon
还在起作用。正如我们使用的unicode 数学\let
需要在文档开头进行替换:
\AtBeginDocument{%
\let\phi\varphi
\let\epsilon\varepsilon
}
或者\AfterEndPreamble
如果出现问题超链接和电子工具箱包裹。
另一个问题是斜线/
,使用哪种字体进行替换是一个个人喜好问题。
\setmathfont[range={"002F,"2215}]{Latin Modern Math}
但原始 MWE 的作者实际上犯了错误,他应该使用\mathbin{/}
而不是 ,/
以获得更好的间距。
所有这些修复结合在一起产生了令人满意的结果:
\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}
...
产生的输出也\blindmathpaper
看起来不错:
永无止境的故事。
可能你还是会发现缺少了一些东西。我放弃之前遇到的最后一个问题是缺少句号/标点符号,正如在这个问题并解决了这个答案。但即便如此,像命令\dots
仍然不起作用。意识到需要修复几乎所有Mn符号,所以实际上什么都没有剩下,我决定使用另一种数学字体,只包含一些特定的符号Mn符号我很喜欢。
我最终使用这个设置:
\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}
底线在最底部。
孩子们,不要在家里尝试这个!使用 MnSymbol 和 unicode-math 会浪费你的时间!
整个东西都有很多错误,不值得尝试。也许将来吧。使用另一种字体作为基础,并包含来自Mn符号但看起来很合适。