Skalieren der mtpro2-Schriftarten für die Verwendung mit Baskerville

Skalieren der mtpro2-Schriftarten für die Verwendung mit Baskerville

Ich verwende die Schriftarten MathTime Professional II (mtpro2) mit der Monotype Baskerville-Familie. Die Schriftart für mathematische Buchstaben in mtpro2 ist Times New Roman Italic, und diese kann in Kombination mit Baskerville recht gut aussehen, vorausgesetzt, sie wird entsprechend skaliert (Baskerville scheint eine etwas kürzere Schriftart als TNR zu sein). Tatsächlich gibt es eine Anleitung (die zu finden istHier) sagt, dass die mtpro2-Schriftarten „auch mit verschiedenen anderen Textschriftarten recht kompatibel sind, obwohl die Schriftgröße des Textes möglicherweise leicht angepasst werden muss, damit die x-Höhen übereinstimmen.“

Hier ist ein kleines Beispiel, um das Problem zu veranschaulichen.

\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}

Die erzeugte Ausgabe istAusgabe

Es ist klar, dass der mathematische Text deutlich höher ist als der ihn umgebende Text. Wie kann ich die mathematischen Zeichen richtig skalieren, damit sie sich nahtlos in die Monotype Baskerville-Familie integrieren?

EDIT: Ich sollte erwähnen, dass eine Lösung, die ich kenne, darin besteht, etwas zu verwenden, das

\setmainfont[Ligatures=TeX,Scale=1.05]{Baskerville}

das scheint zu funktionieren, aber ich ziehe es vor, den Baskerville wenn möglich in 11pt zu belassen.

Antwort1

Nun, das hat bei mir funktioniert.

\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}

Wenn Sie die Schriftgröße auf 10 pt verringern, sie dann aber um 110 % vergrößern, erhalten Sie eine 11 pt-Schrift. Sie müssen dann die Ränder und den Zeilenabstand um einen ähnlichen Faktor anpassen, damit alles gut aussieht, aber ansonsten ist diese Lösung recht effektiv.

Ich bin jedoch offen dafür, wenn jemand eine Möglichkeit kennt, dieses Problem zu lösen, indem man einfach die Schriftart mtpro2 verkleinert, was wahrscheinlich weniger umständlich wäre.

Antwort2

Die folgende Lösung stammt ausmeine eigene Antwort, wo ich skalieren möchtehochMathTime Pro 2.

Die Aufgabe besteht hier darin, die x-Höhen von Baskerville und MathTime Pro 2 abzugleichen. Einerseits beträgt die x-Höhe von Baskerville 415/1000. Andererseits hat MathTime Pro 2 drei verschiedene x-Höhen: 457/1000, 491/1000und 524/1000für \displaystyle/ \textstyle, \scriptstylebzw. \scriptscriptstyle(weil es optische Größen verwendet).

Da Sie wünschenBaskerville nicht zu verändernmüssen wir skalierenrunterMathTime Pro 2. Bei meiner Implementierung geben wir einfach drei verschiedene Faktoren ein: 415/457, 415/491und 415/524, und fertig!

\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}

Neue Implementierung

verwandte Informationen