Как автоматически добавлять \! в нижние индексы?

Как автоматически добавлять \! в нижние индексы?

Этот код

\documentclass{article}
\usepackage{fouriernc}

\begin{document}
$a_1$

$a_{\!1}$
\end{document}

выдает следующий результат:

Интервал

Мне гораздо больше нравится расстояние в нижнем ряду.

Есть ли способ автоматически использовать \!на всех индексах, чтобы мне не приходилось печатать его каждый раз? Если это не оптимальный способ достижения этого интервала, я, конечно, с удовольствием изучу лучший способ.

решение1

Вы можете переопределить команду _. Для этого вам необходимо изменить catcode знака. Переопределение в примере должно быть сделано в преамбуле. Я сделал это в теле документа, чтобы продемонстрировать поведение.

\documentclass{article}
\usepackage{fouriernc}

\begin{document}
$a_1$

$a_{\!1}$

 \catcode`\_\active
 \def_#1{\sb{\!#1}}

$a_{1}$
\end{document}

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


Вместо того, чтобы изменять глобальное подчеркивание, вы можете задать математический код токена для переопределения (предложено Дэвидом Карлайлом и улучшено egreg):

\documentclass{article}
\usepackage{fouriernc}

\begin{document}
$a_1$

$a_{\!1}$

\catcode`\_=12
\mathcode`\_="8000
\begingroup\lccode`\~=`\_
\lowercase{\endgroup\def~#1}{\sb{\!#1}}

$a_{1}$
\begin{equation}
1+1=1\label{eq_1}
\end{equation}
Text \ref{eq_1} Text$_1$
\end{document}

Однако лучше всего избегать указаний _на этикетках.

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