
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}
Aber vielleicht möchten Sie nicht Ihr gesamtes Dokument neu schreiben. Da diealtsubsupPaket speichert die ursprünglichen Definitionen von ^
und _
in \altsbsp@standardsub
und \altsbsp@standardsup
. Sie können versuchen, sie zu hacken (in , \AtBeginDocument
weil sie dort erstellt werden, und mit \maketatletter
und \makeatother
um 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.