以下是 MWE:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[scaled=0.5]{garamondx}
\usepackage[garamondx]{newtxmath}
% \usepackage[garamondx,scaled=0.5]{newtxmath} % <- doesn't work
% \usepackage[scaled=0.5]{newtxmath} % <- works, but looks wrong
\begin{document}
\textsl{aaa} $aaa$
\end{document}
数学符号明显太大了。但是,如果我使用包garamondx
的选项newtxmath
,该scaled
选项就不再起作用了。我该如何解决这个问题,让数学符号变小?
(我使用 0.5 来使事情更加明显。实际上,我使用的是 0.95。)
答案1
如果我使用 0.95 的缩放系数测量斜体“a”的高度,我会得到 4.24648pt 的高度。对于数学斜体“a”,我会得到 4.51999pt。
因此,精确到四位小数的比例因子应该是 0.93949。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[scaled=0.95]{garamondx}
\usepackage[garamondx,scaled=0.93949]{newtxmath}
\begin{document}
\sbox0{a}\the\ht0
\sbox0{$a$}\the\ht0
\textsl{aaa} $aaa$
\end{document}
重要的提示为了使代码正常工作,您需要garamondx
使用getnonfreefonts --sys
(或等效方法)进行更新;新版本于 2020-10-04 发布。
旧答案尚未更新
如果我使用 0.95 的缩放系数测量斜体“a”的高度,我会得到 4.24648pt 的高度。对于数学斜体“a”,我会得到 4.51999pt。
因此,四位小数的缩放因子应为 0.93949。不幸的是
\usepackage[garamondx,scale=0.93949]{newtxmath}
由于错误而omlzgmmi.fd
失败
\expandafter\ifx\csname ntxmath@scaled\endcsname\relax
\let\ntxmath@@scaled\@empty%
\else
\edef\ntxmath@@scaled{s*[\csname ntxmath@scaled\endcsname]}%
\fi
但代码应该是
\expandafter\ifx\csname ntxmath@scaled\endcsname\relax
\let\ntxmath@@scaled\@empty
\else
\let\ntxmath@@scaled\ntxmath@scaled
\fi
因为在 的最新版本中newtxmath
,宏\ntxmath@scaled
已经扩展为s*[<scaling factor>]
。(我猜它以前只是扩展为比例因子)。
解决方法:自己加载zgmmi
。
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[scaled=0.95]{garamondx}
\usepackage[garamondx,scaled=0.9395]{newtxmath}
\makeatletter
\DeclareFontFamily{OML}{zgmmi}{\skewchar \font =127}
\DeclareFontShape{OML}{zgmmi}{m}{it}{<-> \ntxmath@scaled zgmmi}{}
\DeclareFontShape{OML}{zgmmi}{b}{it}{<-> \ntxmath@scaled zgmbmi}{}
\DeclareFontShape{OML}{zgmmi}{m}{sl}{<->ssub * zgmmi/m/it}{}
\DeclareFontShape{OML}{zgmmi}{bx}{it}{<->ssub * zgmmi/b/it}{}
\DeclareFontShape{OML}{zgmmi}{b}{sl}{<->ssub * zgmmi/b/it}{}
\DeclareFontShape{OML}{zgmmi}{bx}{sl}{<->ssub * zgmmi/b/sl}{}
\makeatother
\begin{document}
\sbox0{a}\the\ht0
\sbox0{$a$}\the\ht0
\textit{aaa} $aaa$
\end{document}
前两行显示高度差异可以忽略不计。