
¿Existe una macro global disponible para agregar espacio automáticamente antes de cada superíndice y subíndice matemático presente en un documento completo?
Respuesta1
No. Hay control sobre el espacio después, pero no sobre el espacio antes, siempre está unido directamente a la base.
Respuesta2
Soy el autor del paquete.altsubsupque proporciona formatos alternativos para subíndices y superíndices cuando se usan con corchetes, como _[...]
o ^[...]
.
Puede definir su propio comando y configurarlo con
\newcommand*{\mysubsupformat}[1]{\,#1}% add a thin space
\SetAltSubSupCommands{\mysubsupformat}
Luego, todos los subíndices y superíndices escritos entre corchetes se formatearán con el comando \mysubsupformat
.
Ejemplo 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}
Pero tal vez no quieras reescribir todo el documento. desde elaltsubsuppaquete guarde las definiciones originales de ^
y _
en \altsbsp@standardsub
y \altsbsp@standardsup
, puede intentar piratearlas (en \AtBeginDocument
porque se crean allí, y con \maketatletter
y \makeatother
para manejar el carácter @
en los nombres de las macros):
\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
Ejemplo 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, no uses formas cuadradas en este caso, están rotas.