Как сделать так, чтобы широкие апикальные и грависные ударения были точными также в \smaller при использовании TeX Gyre Termes Math и lualatex?

Как сделать так, чтобы широкие апикальные и грависные ударения были точными также в \smaller при использовании TeX Gyre Termes Math и lualatex?

ПродолжаяШирокий острый и широкий тупой удар для TeX Gyre Termes и TeX Gyre Termes Math, мы пытаемся заставить широкие апострофы и ударения работать \smallerсо шрифтами TeX Gyre Termes (Math) и движками UTF-8 (для NewTX и pdflatex, см.Как сделать точные широкие апострофы и акуты также в \smaller при использовании NewTX и pdflatex?):

\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результатам

выход

Как видите, расстояние между словом и его ударением в шрифте обычного размера вполне приемлемо (хотя вы также можете пожаловаться, что это расстояние слишком велико в «петле» с гравировкой и «бассейне» с акутом). Однако в версии \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.

Связанный контент