Доступ к символу минус шрифта PostScript в текстовом режиме

Доступ к символу минус шрифта PostScript в текстовом режиме

Есть ли у шрифтов postscript, таких как libertine(из libertine-legacyпакета) или mathpazo, знак минуса, к которому можно получить доступ в текстовом режиме? Я пытаюсь заменить обычное тире на символ минуса, следуя этомуотвечатьот Дэвида Карлайла.

Его решение отлично работает при использовании шрифтов открытого типа, поскольку большинство из них имеют символ минуса, к которому можно легко получить доступ:

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

Однако мои попытки сделать что-то подобное с pdfLaTeXLibertine или Pagella оказались тщетными. Использование символа типа дефиса ( \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

"15В кодировке T1 короткое тире находится на своем месте :

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

Связанный контент