텍스트 모드에서 포스트스크립트 글꼴의 빼기 기호에 액세스

텍스트 모드에서 포스트스크립트 글꼴의 빼기 기호에 액세스

libertine(패키지의 ) 또는 mathpazo 와 같은 포스트스크립트 글꼴에는 libertine-legacy텍스트 모드에서 액세스할 수 있는 빼기 기호가 있습니까? 내가하려는 것은 일반 대시를 빼기 기호로 대체하는 것입니다.답변데이비드 칼라일로부터.

그의 솔루션은 대부분 쉽게 액세스할 수 있는 빼기 문자가 있기 때문에 개방형 글꼴을 사용할 때 완벽하게 작동합니다.

\def\yyy{%
  \bgroup\uccode`\~\expandafter`\string-%
  \uppercase{\egroup\edef~{\noexpand\text{\char"2212\relax}}}%
  \mathcode\expandafter`\string-"8000 }

그러나 Libertine이나 Pagella와 유사한 작업을 수행하려는 나의 시도 pdfLaTeX는 소용이 없었습니다. 하이픈( \textendash) 과 같은 기호를 사용하면 완벽하게 작동합니다.

\def\yyy{%
  \bgroup\uccode`\~\expandafter`\string-%
  \uppercase{\egroup\edef~{\noexpand\text{\llap{\textendash}\relax}}}%
  \mathcode\expandafter`\string-"8000 }

하지만 정확히 내가 원하는 것은 아닙니다. 해당 글꼴의 빼기 기호에 어떻게 액세스할 수 있나요? 또는 이것이 가능하지 않은 경우 마이너스 기호를 "가짜"로 표시하기 위해 하이픈 크기를 조정할 수 있습니까?

편집하다: egreg는 아래 솔루션을 제공했습니다. 내 프레임워크에 포함된 코드는 다음과 같습니다.

\def\yyy{% Thanks to egreg
  \begingroup\uccode`~=`-
  \uppercase{\endgroup\def~}{\mathbin{\text{\llap{\textminus}}}}
  \mathcode`-="8000 }

답변1

엔 대시는 "15T1 인코딩의 위치에 있습니다.

\begingroup\uccode`~=`-
  \uppercase{\endgroup\def~}{\mathbin{\text{\char"15 }}}
\AtBeginDocument{\mathcode`-="8000 }

\textminus또는 TS1 인코딩에는 다음 이 있습니다 .

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{libertine}
\usepackage{textcomp}
\usepackage{amsmath}
\begingroup\uccode`~=`-
  \uppercase{\endgroup\def~}{\mathbin{\text{\textminus}}}
\AtBeginDocument{\mathcode`-="8000 }

\begin{document}
$-$
\end{document}

관련 정보