
Новичок, у меня есть ситуация, которую нужно решить, с двумя разными вариантами поведения тильды. Первый выглядит нормально, в обычном тексте, что-то вроде:
... some text $\sim$A then some text ...
но в режиме уравнения (или даже внутри знаков доллара уравнения в тексте) между тильдой и буквой есть пробел (см. скриншот ниже):
... some text $\sim{A}$ then some text ...
Есть ли способ устранить это пространство в режиме уравнения?
Мне это нужно для режима уравнений:
\[ \sim{A} = ... \]
Если это уместно, в преамбуле я использую пакет lmodern
для использования шрифта CM10, а также некоторые другие, связанные с уравнениями: mathptmx, amssymb, amsmath, mathspec
и анализирую текст с помощью xelatex.
решение1
По умолчанию "математический тип" для \sim
— mathrel
, т. е. тип оператора отношения. (Другой пример оператора типа mathrel
— =
.) По умолчанию математический тип буквы A
— mathord
("math usual"). Как вы "обнаружили", TeX автоматически вставляет пробелы — в количестве \thickmuskip
— между элементами типов mathrel
и mathord
, соответственно.
Если ты это сделаешьнетхотите получить пробел между \sim
и A
, просто напишите
{\sim}A
Эта настройка изменяет математический тип на \sim
, mathord
и TeX делает этонетвставить дополнительные пробелы между элементами типа mathord
.
решение2
Обычно \sim
это отношение типа =
. Поэтому требуется пространство:
\documentclass{article}
\usepackage{lmodern}
\usepackage{amsmath}
\begin{document}
\[ A = B \]
\[ A \sim B \]
\end{document}
Но его можно определить и как обычный символ:
\documentclass{article}
\usepackage{lmodern}
\usepackage{amsmath}
\mathchardef\simsym"0218
\begin{document}
\[ A \sim B \]
\[ A \simsym B \]
\end{document}
Более подробную информацию о занятиях по математике см., например, здесь:TeX по темераздел 38.3 и 23.3.
Вместо использования \mathchardef
вы также можете использовать
\newcommand*{\simsym}{\mathord\sim}
определить \simsym
как обычный вариант символа \sim
:
\documentclass{article}
\usepackage{lmodern}
\usepackage{amsmath}
\newcommand*{\simsym}{\mathord\sim}
\begin{document}
\[ A \sim B \]
\[ A \simsym B \]
\end{document}
Результат точно такой же, как и выше, и будет таким же, как и в случае с
\documentclass{article}
\usepackage{lmodern}
\usepackage{amsmath}
\newcommand*{\simsym}{{\sim}}% note the extra {…}
\begin{document}
\[ A \sim B \]
\[ A \simsym B \]
\end{document}