unicode-math로 \prime을 재정의하세요

unicode-math로 \prime을 재정의하세요

나는 unicode-math(XeLaTeX와 함께) 텍스트와 수학 글꼴을 설정하는 데 사용하고 있습니다. 그러나 Garamond-math수학 글꼴로 사용하면 \prime기호가 문자에 너무 가깝습니다.

여기에 이미지 설명을 입력하세요

명령 을 재정의하려고 하는데 가능하다면 올바른 간격을 제공하도록 수학 모드에서 \prime다시 매핑하고 싶습니다 . '그러나 재정의하는 "일반적인" 솔루션 \prime, 즉 (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}

하지만 이 솔루션은 이러한 맥락에서 작동하지 않는 것 같습니다. 나도 시도했다

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

그러나 이번에도 효과가 없었습니다.

답변1

unicode-math명령 에서는 처리할 \prime때 사용되는 내부 기능으로 정의됩니다 . f'(x)따라서 재정의는 \prime아무것도 하지 않습니다.하다명시적으로 사용하세요.

불행하게도 동작을 수정하기 위한 인터페이스는 없습니다. 그러나 다음은 현재 버전의 unicode-math. 그러나 비공개 기능에 접근하기 때문에 향후 릴리스에서도 안정성이 보장되지는 않습니다.

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

여기에 이미지 설명을 입력하세요

관련 정보