Baskerville で動作するように mtpro2 フォントをスケーリングする

Baskerville で動作するように mtpro2 フォントをスケーリングする

私は、Monotype Baskerville ファミリーの MathTime Professional II (mtpro2) フォントを使用しています。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 ファミリーとシームレスに統合するにはどうすればよいでしょうか。

編集:私が知っている解決策の1つは、次のようなものを使用することです。

\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 には、 、 、 の 3 つの異なる x 高さがあります457/1000(491/1000光学サイズ524/1000を使用しているため)。\displaystyle\textstyle\scriptstyle\scriptscriptstyle

あなたが望むのでバスカービルを変えない、私たちはスケールしなければなりませんMathTime Pro 2。私の実装を使用すると、415/457、 、415/491の3 つの異なる因子を提供するだけで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}

新しい実装

関連情報