![Как создать устойчивый математический символ в шрифте пишущей машинки?](https://rvso.com/image/475714/%D0%9A%D0%B0%D0%BA%20%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D1%82%D1%8C%20%D1%83%D1%81%D1%82%D0%BE%D0%B9%D1%87%D0%B8%D0%B2%D1%8B%D0%B9%20%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9%20%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%20%D0%B2%20%D1%88%D1%80%D0%B8%D1%84%D1%82%D0%B5%20%D0%BF%D0%B8%D1%88%D1%83%D1%89%D0%B5%D0%B9%20%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D0%BA%D0%B8%3F.png)
Сначала рассмотрим минимальный рабочий образец.
\documentclass{article}
\newcommand*\ttand{\mathord{\texttt{\&}}}
\begin{document}
$\ttand$
\itshape$\ttand$
\end{document}
Как видите, я определил математический символ & в шрифте пишущей машинки. Но он нестабилен, так как на него может повлиять \itshape
, \bfseries
и так далее. Более того, он не работает при замене \texttt
на , \mathtt
так как \mathtt
не работает на &. Тогдакак создать устойчивый математический символ в шрифте пишущей машинки?
решение1
Вы можете рассмотреть возможность обернуть амперсанд вокруг \textnormal
, а затем изменить шрифт на моноширинный внутри, чтобы предотвратить помехи от других команд шрифтов внутри той же области. Это гарантирует, что амперсанд всегда будет набран как средний, прямой и моноширинный.
\documentclass{article}
\newcommand*{\ttand}{\mathord{\textnormal{\ttfamily\&}}}
\begin{document}
\itshape $\ttand$ % shape
\bfseries$\ttand$ % weight
\sffamily$\ttand$ % family
\sffamily\scshape\bfseries$\ttand$ % or even all three!
\end{document}
решение2
Я бы использовал \mathtt
.
\documentclass{article}
\newcommand*\ttand{\mathtt{\mathchar\inteval{"7000+`\&}}}
\begin{document}
text $\ttand$ text
\textit{text $\ttand$ text}
\end{document}
Объяснение: мы хотим получить символ, который уважает текущую математическую группу, поэтому его математический код должен быть "70xx
, где "xx
— ASCII-код &
. Поскольку мне лень искать последний, я использую простую арифметику.