Acesse o símbolo de menos da fonte postscript no modo de texto

Acesse o símbolo de menos da fonte postscript no modo de texto

As fontes postscript como libertine(do libertine-legacypacote) ou mathpazo possuem um sinal de menos que pode ser acessado no modo de texto? O que estou tentando fazer é substituir o traço normal por um símbolo de menos, seguindo esteresponderde David Carlisle.

Sua solução funciona perfeitamente ao usar fontes de tipo aberto, pois a maioria delas possui um caractere de menos que pode ser facilmente acessado:

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

No entanto, minhas tentativas de fazer algo semelhante com pdfLaTeXLibertine ou Pagella foram inúteis. Usar um símbolo como hífen ( \textendash) funciona perfeitamente:

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

Mas não é exatamente o que eu quero. Como posso acessar o símbolo de menos dessa fonte? Ou, se isso não for possível, é possível redimensionar o hífen para “falsificar” um símbolo de menos?

Editar: egreg forneceu a solução abaixo. Incorporado em minha estrutura, o código é:

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

Responder1

O travessão está em posição "15na codificação T1:

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

Alternativamente, existe \textminusna codificação 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}

informação relacionada