Что делает символ тильды (~) в математическом режиме?

Что делает символ тильды (~) в математическом режиме?

Какой эффект имеет символ тильды ~в математическом режиме? Это тот же неразрывный пробел, что и в текстовом режиме? Является ли его использование ~в математическом режиме плохим стилем? Я видел, как он использовался в некоторых примерах, но не видел его объяснения ни в одном из обычных справочников LaTeX.

решение1

Использование ~or \⍽(пробел, просто для ясности) в математическом режиме не эквивалентно, как показывает следующий пример:

\documentclass{article}
\begin{document}

$a=\ =b$

$a=~=b$

\end{document}

Это производит

введите описание изображения здесь

~Почему это так ? Потому что определение

1299 \DeclareRobustCommand{\nobreakspace}{%
1300    \leavevmode\nobreak\ }
1301 \catcode `\~=13
1302 \def~{\nobreakspace{}}

(номера строк те же, что и в latex.ltx). Таким образом, ~также добавляется {}группа, которая значима в математическом режиме, и объясняется разница в выводе: в первой строке мы имеем (Ордобозначает атом класса «обычный»,Отн.для атома класса «бинарное отношение»)

Орд Отн. <skip> Отн. Орд

и TeX игнорирует явные пропуски при принятии решения о том, какой математический интервал вставить. Поэтому по правилу он вставляет толстый пробел междуОрдиОтн.и междуОтн.иОрд, но нет пробела междуОтн.иОтн.. При преобразовании математического списка в горизонтальный блок вставляется обратное <skip>значение .\⍽

Во втором случае имеем

Орд Отн. <skip> Орд Отн. Орд

потому что в математическом режиме {}считаетсяОрдатом. Толстые пробелы будут вставлены по обе стороны от пустогоОрдатом.

Таким образом, лучше использовать \⍽вместо ~, чтобы избежать сюрпризов. Однако использование должно быть ограничено разделением частей формулы, которые необходимо рассматривать как слова, как правило, в дисплеях. Нет никакой разницы между

\[
\sin\pi = 0\ \text{and}\ \cos\pi = -1
\]

и

\[
\sin\pi = 0 \text{ and } \cos\pi = -1
\]

Просто вопрос личных предпочтений, потому что любой из них будет использовать межсловное пространство относительно текущего шрифта вне математики, без растяжения или сжатия. Для пробелов между математическими символами лучше всего использовать \mkernили \mskip(возможно, последний, для которого amsmathпредусмотрен \mspaceинтерфейс, аналогичный \hspace).

Обратите внимание, что в режиме встроенной математики \⍽\text{and}\⍽и \text{⍽and⍽}отличаются, так как первый вставляет пробелы, которые могут участвовать в растяжении и сжатии, тогда как последний вставляет «замороженные» пробелы. Однако, что-то вроде

the set $N_n(R)=\{\,x\in R: x^{n-1}\ne 0\ \text{and}\ x^{n}=0\,\}$

правильнее записать как

the set $N_n(R)=\{\,x\in R: x^{n-1}\ne 0$ and~$x^{n}=0\,\}$

чтобы дать TeX больше шансов правильно разорвать строку.

Связанный контент