Como adicionar automaticamente \! em subscritos?

Como adicionar automaticamente \! em subscritos?

Este código

\documentclass{article}
\usepackage{fouriernc}

\begin{document}
$a_1$

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

produz esta saída:

Espaçamento

Gosto muito mais do espaçamento na parte inferior.

Existe uma maneira de usar automaticamente \!todos os subscritos para que eu não precise digitá-los todas as vezes? Se esta não for a maneira ideal de conseguir esse espaçamento, estou ansioso para aprender uma maneira melhor, é claro.

Responder1

Você pode redefinir o comando _. Para isso você deve alterar o catcode da placa. A redefinição no exemplo deve ser feita no preâmbulo. Fiz isso no corpo do documento para demonstrar o comportamento.

\documentclass{article}
\usepackage{fouriernc}

\begin{document}
$a_1$

$a_{\!1}$

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

$a_{1}$
\end{document}

insira a descrição da imagem aqui


Em vez de alterar o sublinhado global, você pode definir o código matemático do token para redefinir (sugerido por David Carlisle e melhorado por 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}

Porém o melhor é evitar _nos rótulos.

informação relacionada