我正在使用 MathTime Professional II (mtpro2) 字体和 Monotype Baskerville 系列。mtpro2 中用于数学字母的字体是 Times New Roman Italic,如果将其缩放得当,与 Baskerville 结合使用时看起来会很好(Baskerville 似乎比 TNR 字体略短)。事实上,指南(可以在这里) 表示,mtpro2“字体也与其他各种文本字体非常兼容,尽管文本字体大小可能需要稍微调整,以便 x 高度能够匹配。”
这里有一个小例子来演示这个问题。
\documentclass[11pt]{article}
\usepackage{mtpro2}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Baskerville}
\begin{document}
\noindent For any integer $n$ and prime number $p$, we want to solve $x^2 - ny^2 = p$.
\end{document}
产生的输出是
很明显,数学文本比周围的文本高得多。如何正确缩放数学字符,以便它们与 Monotype Baskerville 系列无缝集成?
编辑:我应该提到,我知道的一个解决方案是使用一些效果
\setmainfont[Ligatures=TeX,Scale=1.05]{Baskerville}
这似乎起了作用,但如果可能的话,我还是希望将 Baskerville 保持在 11pt。
答案1
嗯,这对我有用。
\documentclass[10pt]{article}
\usepackage{mtpro2}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX,Scale=1.1]{Baskerville}
\begin{document}
\noindent For any integer $n$ and prime number $p$, we want to solve $x^2 - ny^2 = p$.
\end{document}
将字体大小缩小到 10pt,然后将其放大 110%,字体大小变为 11pt。然后,您需要以类似的比例调整边距和行距,以使所有内容看起来都不错,但除此之外,此解决方案非常有效。
不过,如果有人知道通过简单地缩小 mtpro2 字体来解决这个问题的方法,我还是愿意接受的,这可能不那么迂回。
答案2
以下解决方案取自我自己的答案,我想扩大规模向上MathTime Pro 2。
这里的任务是匹配 Baskerville 和 MathTime Pro 2 的 x 高度。一方面,Baskerville 的 x 高度是415/1000
。另一方面,MathTime Pro 2 有三种不同的 x 高度:457/1000
、491/1000
和分别524/1000
对应于\displaystyle
/ \textstyle
、\scriptstyle
和\scriptscriptstyle
(因为它使用光学尺寸)。
既然你愿意不要改变巴斯克维尔我们必须扩大规模向下MathTime Pro 2. 使用我的实现,我们只需提供三个不同的因子:415/457
、415/491
和415/524
,我们就完成了!
\documentclass[11pt]{article}
\usepackage[no-math]{fontspec}% Option no-math is important!
\setmainfont[Ligatures=TeX]{Baskerville}
\usepackage[lite]{mtpro2}
\usepackage{amsmath}
% My implementation: https://tex.stackexchange.com/a/439463/164314
\makeatletter
% Customize different scaling factors here
\newcommand*{\mtpscale@scaled}{0.9080963}% 415/457
\newcommand*{\mtpscale@scriptscaled}{0.8452138}% 415/491
\newcommand*{\mtpscale@scriptscriptscaled}{0.7919847}% 415/524
% Fonts available in the `lite' version
% Source code found in `mtpro2.sty'
\DeclareFontShape{LMP1}{mtt}{m}{it}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2mif
<7-9> s*[\mtpscale@scriptscaled] mt2mis
<9-> s*[\mtpscale@scaled] mt2mit}{}
\DeclareFontShape{LMP2}{mtt}{m}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2syf
<7-9> s*[\mtpscale@scriptscaled] mt2sys
<9-> s*[\mtpscale@scaled] mt2syt}{\skewchar\font32}
\DeclareFontShape{LMP3}{mtt}{m}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2exa
<7-9> s*[\mtpscale@scriptscaled] mt2exa
<9-> s*[\mtpscale@scaled] mt2exa}{}
\DeclareFontShape{U}{mtt}{b}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2mbf
<7-9> s*[\mtpscale@scriptscaled] mt2mbs
<9-> s*[\mtpscale@scaled] mt2mbt}{}% (MJ)
% Fonts available in the `complete' version
\ifmtp@full
% Source code found in `mtpro2.sty'
\DeclareFontShape{LMP1}{mtt}{b}{it}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2bmif
<7-9> s*[\mtpscale@scriptscaled] mt2bmis
<9-> s*[\mtpscale@scaled] mt2bmit}{}
\DeclareFontShape{LMP2}{mtt}{b}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2bsyf
<7-9> s*[\mtpscale@scriptscaled] mt2bsys
<9-> s*[\mtpscale@scaled] mt2bsyt}{\skewchar\font32}
\DeclareFontShape{LMP2}{mtt}{eb}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2hsyf
<7-9> s*[\mtpscale@scriptscaled] mt2hsys
<9-> s*[\mtpscale@scaled] mt2hsyt}{\skewchar\font32}
\DeclareFontShape{LMP3}{mtt}{b}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2bexa
<7-9> s*[\mtpscale@scriptscaled] mt2bexa
<9-> s*[\mtpscale@scaled] mt2bexa}{}
\DeclareFontShape{LMP3}{mtt}{eb}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2hexa
<7-9> s*[\mtpscale@scriptscaled] mt2hexa
<9-> s*[\mtpscale@scaled] mt2hexa}{}
\DeclareFontShape{U}{mt2sya}{m}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2syaf
<7-9> s*[\mtpscale@scriptscaled] mt2syas
<9-> s*[\mtpscale@scaled] mt2syat}{}%
\DeclareFontShape{U}{mt2sya}{b}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2bsyaf
<7-9> s*[\mtpscale@scriptscaled] mt2bsyas
<9-> s*[\mtpscale@scaled] mt2bsyat}{}%
\DeclareFontShape{U}{mt2sya}{eb}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2hsyaf
<7-9> s*[\mtpscale@scriptscaled] mt2hsyas
<9-> s*[\mtpscale@scaled] mt2hsyat}{}%
% Source code found in `umt2ms.fd'
\DeclareFontFamily{U}{mt2ms}{\skewchar\font42}%
\DeclareFontShape{U}{mt2ms}{m}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2mcf
<7-9> s*[\mtpscale@scriptscaled] mt2mcs
<9-> s*[\mtpscale@scaled] mt2mct}{}%
\DeclareFontShape{U}{mt2ms}{m}{it}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2msf
<7-9> s*[\mtpscale@scriptscaled] mt2mss
<9-> s*[\mtpscale@scaled] mt2mst}{}%
\DeclareFontShape{U}{mt2ms}{b}{it}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2bmsf
<7-9> s*[\mtpscale@scriptscaled] mt2bmss
<9-> s*[\mtpscale@scaled] mt2bmst}{}%
% Source code found in `umt2mf.fd'
\DeclareFontFamily{U}{mt2mf}{}%
\DeclareFontShape{U}{mt2mf}{m}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2mff
<7-9> s*[\mtpscale@scriptscaled] mt2mfs
<9-> s*[\mtpscale@scaled] mt2mft}{}%
\DeclareFontShape{U}{mt2mf}{b}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2bmff
<7-9> s*[\mtpscale@scriptscaled] mt2bmfs
<9-> s*[\mtpscale@scaled] mt2bmft}{}%
% Source code found in `umt2bb.fd'
\DeclareFontFamily{U}{mt2bb}{\skewchar\font45}%
\DeclareFontShape{U}{mt2bb}{m}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2bbf
<7-9> s*[\mtpscale@scriptscaled] mt2bbs
<9-> s*[\mtpscale@scaled] mt2bbt}{}%
\DeclareFontShape{U}{mt2bb}{m}{it}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2bbif
<7-9> s*[\mtpscale@scriptscaled] mt2bbis
<9-> s*[\mtpscale@scaled] mt2bbit}{}%
\DeclareFontShape{U}{mt2bb}{b}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2bbdf
<7-9> s*[\mtpscale@scriptscaled] mt2bbds
<9-> s*[\mtpscale@scaled] mt2bbdt}{}%
% Source code found in `umt2hrb.fd'
\DeclareFontFamily{U}{mt2hrb}{\skewchar\font45}%
\DeclareFontShape{U}{mt2hrb}{m}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2hrbf
<7-9> s*[\mtpscale@scriptscaled] mt2hrbs
<9-> s*[\mtpscale@scaled] mt2hrbt}{}%
\DeclareFontShape{U}{mt2hrb}{m}{it}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2hbif
<7-9> s*[\mtpscale@scriptscaled] mt2hbis
<9-> s*[\mtpscale@scaled] mt2hbit}{}%
\DeclareFontShape{U}{mt2hrb}{b}{n}{%
<-7> s*[\mtpscale@scriptscriptscaled] mt2hrbdf
<7-9> s*[\mtpscale@scriptscaled] mt2hrbds
<9-> s*[\mtpscale@scaled] mt2hrbdt}{}%
\fi
\makeatother
\newcommand{\test}{%
\text{For any integer }n
\text{ and prime number }p
\text{, we want to solve }x^2 - ny^2 = p\text{.}}
\begin{document}
\noindent For any integer $n$ and prime number $p$, we want to solve $x^2 - ny^2 = p$.
\noindent ${\textstyle\test}$
\noindent ${\scriptstyle\test}$
\noindent ${\scriptscriptstyle\test}$
\[
\begin{aligned}
x_{\text{apple},n_{\text{apple},n}} & \ge x_{\text{banana},n_{\text{banana},n}} \quad \text{for } n = 1,\dotsc,10, \\
x_{\text{apple},n_{\text{apple},n}} & < x_{\text{banana},n_{\text{banana},n}} \quad \text{for } n = 11,\dotsc,20.
\end{aligned}
\]
\end{document}