Wie kann man breite Gravis- und Akut-Akzente auch in \smaller präzise darstellen, wenn man TeX Gyre Termes Math und lualatex verwendet?

Wie kann man breite Gravis- und Akut-Akzente auch in \smaller präzise darstellen, wenn man TeX Gyre Termes Math und lualatex verwendet?

Auch weiterhinBreiter spitzer und breiter Graben für TeX Gyre Termes und TeX Gyre Termes Math\smaller, wir versuchen, breite Gravis- und Akut-Akzente mit den Schriftarten TeX Gyre Termes (Mathematik) und UTF-8-Engines kompatibel zu machen (für NewTX und pdflatex, vgl.Wie kann man bei Verwendung von NewTX und pdflatex breite Gravis- und Akut-Akzente auch in \smaller präzise darstellen?):

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

Wenn Sie dies eingeben, erhalten lualatexSie

Ausgabe

Wie Sie sehen, ist der Abstand zwischen einem Wort und seinem Akzent in normaler Schriftgröße einigermaßen akzeptabel (obwohl Sie sich auch darüber beschweren könnten, dass dieser Abstand in der Grave-Schleife und im Akut-Pool zu groß ist). In der Version in \smallerüberlappen sich diese beiden Teile jedoch, was unerwünscht ist. Wie lässt sich eine Abhängigkeit von der Schriftgröße einführen, sodass die Version in normaler Größe immer noch gut aussieht (oder zumindest nicht schlechter als derzeit, d. h. der Akzent sollte immer noch direkt über dem Wort stehen) und die Version in kleinerer Größe besser aussieht (d. h. der Akzent sollte das Wort nicht überlappen)?

Antwort1

Verwenden

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

in der Definition von \wideacuteund

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

in der Definition von \widegrave.

verwandte Informationen