Leerzeichen vor hochgestellten und tiefgestellten Zeichen

Leerzeichen vor hochgestellten und tiefgestellten Zeichen

Gibt es ein globales Makro, um in einem gesamten Dokument automatisch vor jedem hochgestellten und tiefgestellten Zeichen in mathematischen Zahlen ein Leerzeichen einzufügen?

Antwort1

Nein. Es besteht eine Kontrolle über den Raum danach, jedoch nicht über den Raum davor. Er ist immer direkt an die Basis angeschlossen.

Antwort2

Ich bin der Autor des PaketsaltsubsupDas bietet alternative Formate für tiefgestellte und hochgestellte Zeichen, wenn sie mit eckigen Klammern verwendet werden, wie _[...]oder ^[...].

Sie können Ihren eigenen Befehl definieren und mit

\newcommand*{\mysubsupformat}[1]{\,#1}% add a thin space
\SetAltSubSupCommands{\mysubsupformat}

Anschließend werden alle mit eckigen Klammern geschriebenen tiefgestellten und hochgestellten Zeichen mit dem Befehl formatiert \mysubsupformat.

Vollständiges Beispiel

\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}

mit altsubsup alternativen Befehlen

Aber vielleicht möchten Sie nicht Ihr gesamtes Dokument neu schreiben. Da diealtsubsupPaket speichert die ursprünglichen Definitionen von ^und _in \altsbsp@standardsubund \altsbsp@standardsup. Sie können versuchen, sie zu hacken (in , \AtBeginDocumentweil sie dort erstellt werden, und mit \maketatletterund \makeatotherum das Zeichen @in Makronamen zu verarbeiten):

\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

Vollständiges Beispiel:

\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}

Verwenden Sie in diesem Fall natürlich keine quadratischen Formen, da diese nicht funktionieren.

verwandte Informationen