
Я использую шрифты 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?
EDIT: Я должен упомянуть, что одно из известных мне решений — это использовать что-то с эффектом
\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
Следующее решение взято измой собственный ответ, где я хочу масштабироватьвверхMathTime Pro 2.
Задача здесь — сопоставить x-высоты Баскервиля и MathTime Pro 2. С одной стороны, 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}