Espaço antes do sobrescrito e do subscrito

Espaço antes do sobrescrito e do subscrito

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}

com comandos alternativos altsubsup

Mas talvez você não queira reescrever todo o documento. Desde oaltsubsuppacote salva as definições originais de ^e _em \altsbsp@standardsube \altsbsp@standardsup, você pode tentar hackeá-las ( \AtBeginDocumentporque elas são criadas lá, e com \maketatlettere \makeatotherpara 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.

informação relacionada