Acceda al símbolo menos de la fuente postscript en modo texto

Acceda al símbolo menos de la fuente postscript en modo texto

¿Las fuentes postscript como libertine(del libertine-legacypaquete) o mathpazo tienen un signo menos al que se puede acceder en modo texto? Lo que estoy tratando de hacer es sustituir el guión normal con un símbolo menos, siguiendo estorespuestade David Carlisle.

Su solución funciona perfectamente cuando se utilizan fuentes de tipo abierto, ya que la mayoría de ellas tienen un carácter menos al que se puede acceder fácilmente:

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

Sin embargo, mis intentos de hacer algo similar con pdfLaTeXLibertine o Pagella han sido inútiles. Usar un símbolo como guión ( \textendash) funciona perfectamente:

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

Pero no es exactamente lo que quiero. ¿Cómo puedo acceder al símbolo menos de esa fuente? O, si eso no es posible, ¿es posible cambiar el tamaño del guión para "falsificar" un símbolo menos?

Editar: egreg proporcionó la solución a continuación. Integrado en mi marco, el código es:

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

Respuesta1

El guión final está en posición "15en la codificación T1:

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

Alternativamente, hay \textminusen la codificación 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}

información relacionada