Есть ли у шрифтов postscript, таких как libertine
(из libertine-legacy
пакета) или mathpazo, знак минуса, к которому можно получить доступ в текстовом режиме? Я пытаюсь заменить обычное тире на символ минуса, следуя этомуотвечатьот Дэвида Карлайла.
Его решение отлично работает при использовании шрифтов открытого типа, поскольку большинство из них имеют символ минуса, к которому можно легко получить доступ:
\def\yyy{%
\bgroup\uccode`\~\expandafter`\string-%
\uppercase{\egroup\edef~{\noexpand\text{\char"2212\relax}}}%
\mathcode\expandafter`\string-"8000 }
Однако мои попытки сделать что-то подобное с pdfLaTeX
Libertine или 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}