
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 lualatex
Sie
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 \wideacute
und
\stackengine{-.4\LMex}{\SavedStyle#1}{\tmpbox}{O}{c}{F}{T}{S}}%
in der Definition von \widegrave
.