Haben Postscript-Schriftarten wie libertine
(aus dem libertine-legacy
Paket) oder mathpazo ein Minuszeichen, auf das im Textmodus zugegriffen werden kann? Ich versuche, den normalen Bindestrich durch ein Minuszeichen zu ersetzen, gefolgt vonAntwortvon David Carlisle.
Seine Lösung funktioniert perfekt bei der Verwendung von OpenType-Schriftarten, da die meisten von ihnen über ein Minuszeichen verfügen, auf das leicht zugegriffen werden kann:
\def\yyy{%
\bgroup\uccode`\~\expandafter`\string-%
\uppercase{\egroup\edef~{\noexpand\text{\char"2212\relax}}}%
\mathcode\expandafter`\string-"8000 }
Meine Versuche, etwas Ähnliches mit Libertine oder Pagella zu tun, pdfLaTeX
waren jedoch vergebens. Die Verwendung eines Symbols wie Bindestrich ( \textendash
) funktioniert perfekt:
\def\yyy{%
\bgroup\uccode`\~\expandafter`\string-%
\uppercase{\egroup\edef~{\noexpand\text{\llap{\textendash}\relax}}}%
\mathcode\expandafter`\string-"8000 }
Aber das ist nicht genau das, was ich will. Wie kann ich auf das Minuszeichen dieser Schriftart zugreifen? Oder, wenn das nicht möglich ist, ist es möglich, die Größe des Bindestrichs zu ändern, um ein Minuszeichen zu „fälschen“?
Bearbeiten: egreg hat die folgende Lösung bereitgestellt. In mein Framework eingebettet ist der Code:
\def\yyy{% Thanks to egreg
\begingroup\uccode`~=`-
\uppercase{\endgroup\def~}{\mathbin{\text{\llap{\textminus}}}}
\mathcode`-="8000 }
Antwort1
Der Halbgeviertstrich steht "15
in der T1-Kodierung an folgender Position:
\begingroup\uccode`~=`-
\uppercase{\endgroup\def~}{\mathbin{\text{\char"15 }}}
\AtBeginDocument{\mathcode`-="8000 }
Alternativ gibt es \textminus
in der TS1-Kodierung:
\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}