Definieren Sie \prime mit Unicode-Mathematik neu

Definieren Sie \prime mit Unicode-Mathematik neu

Ich verwende unicode-math(mit XeLaTeX), um meine Text- und Mathematikschriftarten festzulegen. Wenn ich sie jedoch Garamond-mathals Mathematikschriftart verwende, sehe ich, dass das \primeSymbol zu nah am Buchstaben steht:

Bildbeschreibung hier eingeben

Ich versuche, den \primeBefehl neu zu definieren, und wenn möglich würde ich ihn 'im Mathematikmodus neu zuordnen, damit der richtige Abstand entsteht. Die „übliche“ Lösung zur Neudefinition \primeist jedoch (MWE).

\documentclass{article}
\usepackage{unicode-math}
\setmathfont{Garamond-Math.otf}[StylisticSet={5,7,9}]
\let\originalprime\prime
\def\prime{\mkern3mu\originalprime\mkern-3}
\begin{document}

$f'(x)$

\end{document}

aber diese Lösung scheint in diesem Zusammenhang nicht zu funktionieren. Ich habe auch versucht

\usepackage{newunicodechar}
\AtBeginDocument{\newunicodechar{′}{\mkern3mu\prime\mkern-3u}}

aber auch dies hatte keine Wirkung.

Antwort1

In wird unicode-mathder Befehl \primeals interne Funktion definiert, die verwendet wird, wenn f'(x)verarbeitet wird. Eine Neudefinition \primebewirkt also nichts, es sei denn, SieTunverwenden Sie es explizit.

Leider gibt es keine Schnittstelle zum Ändern des Verhaltens. Das Folgende funktioniert jedoch mit der aktuellen Version von unicode-math. Aufgrund des Zugriffs auf private Funktionen kann jedoch nicht garantiert werden, dass dies in zukünftigen Versionen stabil bleibt.

\documentclass{article}
\usepackage{unicode-math}
\setmathfont{Garamond-Math.otf}[StylisticSet={5,7,9}]

\ExplSyntaxOn
\cs_set:Npn \__um_prime_single_mchar { \mkern2mu\Umathchar"0"0"2032\mkern-2mu~}
\cs_set:Npn \__um_prime_double_mchar { \mkern2mu\Umathchar"0"0"2033\mkern-2mu~}
\cs_set:Npn \__um_prime_triple_mchar { \mkern2mu\Umathchar"0"0"2034\mkern-2mu~}
\ExplSyntaxOff

\begin{document}

$f'(x)+f''(x)+f'''(x)$

$g'(x)+g''(x)+g'''(x)$

$h'(x)+h''(x)+h'''(x)$

\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen