当使用 TeX Gyre Termes Math 和 lualatex 时,如何使宽重音符和锐音符在 \smaller 中也准确?

当使用 TeX Gyre Termes Math 和 lualatex 时,如何使宽重音符和锐音符在 \smaller 中也准确?

继续TeX Gyre Termes 和 TeX Gyre Termes Math 的宽锐角和宽坟墓,我们尝试使宽重音符和尖音符\smaller与 TeX Gyre Termes (Math) 字体和 UTF-8 引擎(对于 NewTX 和pdflatex,参见)配合使用。当使用 NewTX 和 pdflatex 时,如何使宽重音符和锐音符在 \smaller 中也准确?):

\documentclass{article}
\pagestyle{empty}
\usepackage{unicode-math}
\setmainfont[Ligatures=TeX]{TeX Gyre Termes}
\setsansfont{TeX Gyre Heros}[Scale=0.88]%%% Somewhat ok.
\setmonofont{TeX Gyre Cursor}%%% No explicit turning on ligatures for the monospaced font.
\setmathfont[Ligatures=TeX]{TeX Gyre Termes Math}
\usepackage{scalerel,stackengine}\stackMath
\usepackage{relsize}
%%% thanks to  http://tex.stackexchange.com/a/611030
\newcommand\wideacute[1]{%
  \ThisStyle{\savestack\tmpA{$\SavedStyle#1$}%
  \savestack{\tmpbox}{$\SavedStyle\stretchto{%
    \scalerel*[\wd\tmpAcontent]%
      {\kern-.83\LMpt\Umathchar"7"0"00B4\kern-.12\LMpt}%
    {\rule{0ex}{\textheight}}%
  }{2\LMex}$}%
  \stackengine{-6.3\LMpt}{\SavedStyle#1}{\tmpbox}{O}{c}{F}{T}{S}}%
}
\newcommand\widegrave[1]{%
  \ThisStyle{\savestack\tmpA{$\SavedStyle#1$}%
  \savestack{\tmpbox}{$\SavedStyle\stretchto{%
    \scalerel*[\wd\tmpAcontent]%
      {\kern-.43\LMpt\char"0060%
        \kern-.9\LMpt}%
    {\rule{0ex}{\textheight}}%
  }{1.05\LMex}$}%
  \stackengine{-2.3\LMpt}{\SavedStyle#1}{\tmpbox}{O}{c}{F}{T}{S}}%
}
\begin{document}
\newcommand{\test}[1]{\(\displaystyle \wideacute{#1}\ \widegrave{#1}\) \(\textstyle \wideacute{#1}\ \widegrave{#1}\) \(\scriptstyle \wideacute{#1}\ \widegrave{#1}\) \(\scriptscriptstyle \wideacute{{#1}}\ \widegrave{#1}\)}%
\newcommand{\ttest}[1]{\test{#1}\\{\smaller\test{#1}}}%
\newcommand{\tttest}[1]{\ttest{\mathit{#1}}}%
\noindent
\tttest{sum}\\
\tttest{loop}\\
\tttest{pool}\\
\tttest{buffer}\\
\ttest{\sigma_k}
\end{document}

将其输入到lualatex结果中

输出

如您所见,在正常大小的字体中,单词与其重音符号之间的距离在某种程度上是可以接受的(尽管您也可以抱怨,在带重音符号的“loop”和带锐音符号的“pool”中,这个距离太大)。但是,在版本中,\smaller这两个部分重叠,这是不可取的。如何引入对字体大小的依赖,以便正常大小的版本仍然看起来不错(或者,至少不会比现在更差,即重音符号仍然应该位于单词上方),而较小尺寸的版本看起来更好(即,重音符号不应与单词重叠)?

答案1

使用

\stackengine{-1.3\LMex}{\SavedStyle#1}{\tmpbox}{O}{c}{F}{T}{S}}%

\wideacute在和的定义中

\stackengine{-.4\LMex}{\SavedStyle#1}{\tmpbox}{O}{c}{F}{T}{S}}%

在 的定义中\widegrave

相关内容