縮放 mtpro2 字體以與 Baskerville 搭配使用

縮放 mtpro2 字體以與 Baskerville 搭配使用

我正在使用 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}

這似乎可以解決問題,但如果可能的話,我更喜歡將巴斯克維爾保持在 11 分。

答案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

以下解決方案摘自我自己的答案,我想要縮放的地方向上數學時間專業版 2。

這裡的任務是符合 Baskerville 和 MathTime Pro 2 的 x 高度415/1000。另一方面,MathTime Pro 2 具有三種不同的 x 高度:、 和 分別代表 / 和457/1000491/1000因為524/1000\displaystyle使用\textstyle光學尺寸)。\scriptstyle\scriptscriptstyle

既然你願意不要改變巴斯克維爾,我們必須擴大規模向下MathTime Pro 415/4572 415/491415/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}

新實施

相關內容