
Допустим, я хочу уменьшить расстояние между двумя буквами в математическом режиме на 2/18 quad. Действуя по принципу Die Hard 3, я складываю 2 -3/18 quad \!
и добавляю 4/18 quad с \:
. Проблема в том, что, по-видимому, положительное пространство сжимается в соответствии с межсловным интервалом текущей строки, а отрицательное — нет. Поэтому в крайних случаях я получаю -6/18 quad, что выглядит неудовлетворительно в моем MWE и в реальном мире:
\documentclass[a5paper]{article}
\newcommand{\md}{\ensuremath{M\!\!\:D}}
\begin{document}
a a a a a a a a a a a a a a a a a a a a a a $\md$ a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaa $\md$ aaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaaaa aaaaaaaaaaaaa aaaaaaaa
\end{document}
Так почему же встроенная математика подвергается обычной корректировке интервалов между словами и как ее отключить? (Я могу себе представить, что это приводит к проблемным результатам во многих формулах, даже если не выполнять такие странные арифметические операции с интервалами, как я.)
решение1
В есть немного клея \:
, но нет в \!
: первый использует \medmuskip
, который есть 4.0mu plus 2.0mu minus 4.0mu
, второй \thinmuskip
, который есть 3.0mu
. Чтобы избежать клея, используйте только \!
или, проще говоря, просто \mkern
:
\documentclass[a5paper]{article}
\newcommand{\md}{\ensuremath{M\mkern-9mu D}}
\begin{document}
a a a a a a a a a a a a a a a a a a a a a a $\md$ a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a
aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaa $\md$ aaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaa aaaaaaaaaa aaaaaaaaaaa aaaaaaaaaaaaa aaaaaaaaaaaaa
aaaaaaaa
\clearpage
\hbox{aa aa $\md$ aa aa}
\hbox spread 10pt{aa aa $\md$ aa aa}
\hbox spread 20pt{aa aa $\md$ aa aa}
\end{document}
Поскольку 18mu = 1em
это гораздо более близкое расстояние, чем вы просили, используйте -2mu
вместо этого .
Цифры в моих утверждениях выше взяты из:
\documentclass{article}
\begin{document}
\( \show\!\show\: \)
\showthe\thinmuskip
\showthe\medmuskip
\end{document}
который выводит следующую информацию в файл журнала:
> \!=macro:
->\mskip -\thinmuskip .
l.10 \( \show\!
\show\: \)
> \:=macro:
->\mskip \medmuskip .
l.10 \( \show\!\show\:
\)
> 3.0mu.
l.11 \showthe\thinmuskip
> 4.0mu plus 2.0mu minus 4.0mu.
l.12 \showthe\medmuskip
Насколько я могу судить, в стандартном латексе склеенные пропуски \medmuskip
и \thickmuskip
используются только вокруг двоичных и реляционных символов, а также в определении \bmod
.
решение2
Просто скажите TeX добавить -2/18 em. Если команда должна использоваться в тексте, сделайте
\newcommand{\md}{\textit{M\kern-0.11111em D}}
Керн никогда не растянется и не сожмется.
Загрузите также amsmath
, чтобы использовать его как в тексте, так и в математике:
\documentclass{article}
\usepackage{amsmath}
\newcommand{\md}{\textit{M\kern-0.11111em D}}
\begin{document}
a a a a a a \md{} a a a a a
a a a a a a $\md$ a a a a a
\end{document}
Небольшая разница объясняется тем, что исправление курсива применяется в текстовом режиме, но не в математическом.