Redefinir \prime com matemática unicode

Redefinir \prime com matemática unicode

Estou usando unicode-math(com XeLaTeX) para definir minhas fontes de texto e matemática. Porém, usando Garamond-mathcomo fonte matemática, vejo que o \primesímbolo está muito próximo da letra:

insira a descrição da imagem aqui

Estou tentando redefinir o \primecomando e, se possível, gostaria de remapear 'no modo matemático para que dê o espaçamento correto. No entanto, a solução "usual" para redefinir \prime, isto é (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}

mas esta solução não parece funcionar neste contexto. Eu também tentei

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

mas novamente não teve efeito.

Responder1

No unicode-mathcomando \primeé definido em termos de uma função interna, que é utilizada quando f'(x)é processado. Portanto, redefinir \primenão adianta nada, a menos que vocêfazeruse-o explicitamente.

Infelizmente, não há interface para modificar o comportamento. Mas o seguinte funciona com a versão atual do unicode-math. No entanto, devido ao acesso a funções privadas, não há garantia de que permanecerá estável em versões futuras.

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

insira a descrição da imagem aqui

informação relacionada