
Existe uma macro global disponível para adicionar espaço automaticamente antes de cada sobrescrito e subscrito em matemática presente em um documento inteiro.
Responder1
Não. Há controle do espaço depois, mas não do espaço antes, ele está sempre preso diretamente na base.
Responder2
Eu sou o autor do pacotealtsubsupque fornece formatos alternativos para subscritos e sobrescritos quando usados com colchetes, como _[...]
ou ^[...]
.
Você pode definir seu próprio comando e configurá-lo com
\newcommand*{\mysubsupformat}[1]{\,#1}% add a thin space
\SetAltSubSupCommands{\mysubsupformat}
Então todos os subscritos e sobrescritos escritos entre colchetes serão formatados com o comando \mysubsupformat
.
Exemplo completo
\documentclass{article}
\usepackage{amsmath}% for align*
\usepackage{altsubsup}
\newcommand*{\mysubsupformat}[1]{\,#1}% add a thin space
\SetAltSubSupCommands{\mysubsupformat}
\begin{document}
\begin{align*}
x_a & & x^b & & x_a^b \\
x_[a] & & x^[b] & & x_[a]^[b]
\end{align*}
\end{document}
Mas talvez você não queira reescrever todo o documento. Desde oaltsubsuppacote salva as definições originais de ^
e _
em \altsbsp@standardsub
e \altsbsp@standardsup
, você pode tentar hackeá-las ( \AtBeginDocument
porque elas são criadas lá, e com \maketatletter
e \makeatother
para manipular o caractere @
em nomes de macro):
\makeatletter
\AtBeginDocument{%
\let\rampsmart@standardsub\altsbsp@standardsub
\def\altsbsp@standardsub#1{\rampsmart@standardsub{\,#1}}% add a thin space
\let\rampsmart@standardsup\altsbsp@standardsup
\def\altsbsp@standardsup#1{\rampsmart@standardsup{\,#1}}% add a thin space
}
\makeatother
Exemplo completo:
\documentclass{article}
\usepackage{amsmath}% for align*
\usepackage{altsubsup}
\makeatletter
\AtBeginDocument{%
\let\rampsmart@standardsub\altsbsp@standardsub
\def\altsbsp@standardsub#1{\rampsmart@standardsub{\,#1}}% add a thin space
\let\rampsmart@standardsup\altsbsp@standardsup
\def\altsbsp@standardsup#1{\rampsmart@standardsup{\,#1}}% add a thin space
}
\makeatother
\begin{document}
\begin{align*}
x_a & & x^b & & x_a^b
\end{align*}
\end{document}
Obviamente, não use formas quadradas neste caso, elas estão quebradas.