Abstand um mathematische Operatoren in Tief-/Hochstellung

Abstand um mathematische Operatoren in Tief-/Hochstellung

Folgendes berücksichtigen:

\documentclass{article}

\begin{document}

What I have:
\[x^{1+1}\]

What I would like:
\[x^{1\,+\,1}\]

That is, I will like to have spacing around the operator as in `$1+1$'.\\[\baselineskip]
\textsf{Question:} How do I get the above throughout my document without having to add \verb|\,| on each side of the operator every time?

\end{document}

Ausgabe

Antwort1

Bildbeschreibung hier eingeben

Luatex verfügt über Grundelemente, um den zwischen den einzelnen Klassen in den einzelnen Mathematikstilen eingefügten Abstand zu steuern, beispielsweise um den Abstand zwischen einem Mathord und einem Mathbin im Skriptstil zu steuern:

\documentclass{article}

\begin{document}
$a+b x^{a+b}$

\Umathordbinspacing\scriptstyle=10mu
\Umathbinordspacing\scriptstyle=10mu

$a+b x^{a+b}$

\end{document}

Für klassische TeX-Engines können Sie

Bildbeschreibung hier eingeben

\documentclass{article}
\DeclareMathSymbol{\realplus}{\mathbin}{operators}{"2B}
\begin{document}
$a+b x^{a+b} +cx^{+c}$

%\Umathordbinspacing\scriptstyle=10mu
%\Umathbinordspacing\scriptstyle=10mu


\def\z{{\mskip\medmuskip{\realplus}\mskip\medmuskip}}

$a\z b x^{a \z b} \z  cx^{\z c}$

\catcode`\+\active\let+\z
\catcode`\+12
\mathcode`\+="8000

$a+b x^{a+b} +cx^{+c}$

\end{document}

Aber es ist nicht so gut, es fügt immer das Leerzeichen hinzu, funktioniert also nur, wenn +es als binärer Operator zwischen zwei Mathord-Atomen verwendet wird. Beachten Sie, dass das letzte Präfix +cim letzten Term das breite Leerzeichen erhält, was nicht wirklich das ist, was Sie wollen, Sie benötigen einen separaten Befehl, um auf ein Präfix zuzugreifen +.

Ich habe in einer über Kommentare verlinkten Antwort eine Konstruktion vorgeschlagen, \nonscriptdie komplizierter aussieht, aber meiner Meinung nach denselben Fehler aufweist.

Die von egreg vorgeschlagene Version \texterzielt den richtigen Abstand, erfordert aber mehr Markup als nur das Hinzufügen des Leerzeichens (obwohl Sie natürlich Ihren eigenen Variantenbefehl definieren könnten, \spder mit dieser Konstruktion hochgestellte Zeichen erstellt).

Antwort2

Nein, das wollen Sie nicht. Die Regeln für mathematische Räume wurden von Knuth untersucht, indem er mehrere Dokumente mit mathematischem Inhalt untersuchte, die über einen langen Zeitraum hinweg erstellt wurden.

Vielleicht sieht eine nationale typografische Tradition vor, dass Operations- und Beziehungssymbole auch in hochgestellten und tiefgestellten Zeichen platziert werden. Das heißt aber nicht, dass das gut ist: enge Abstände dortIstgut, im Allgemeinen. Manches Missgeschick kann man mit der Hand beheben: Wenn man ein schönes Dokument haben will, muss man daran arbeiten. Michelangelo hat nicht nur Hammer und Meißel verwendet, um sein berühmtesPietà.

Dies ist ein Bild aus einem Buch von Karl Weierstraß, „Theorie der Abel'schen Functionen: Erstes Heft“, 1856 (siehe bei Google Books)

Bildbeschreibung hier eingeben

Man erkennt, dass die Summen in hochgestellten Ziffern eng gesetzt sind, was bei den Summen in Normalschrift nicht der Fall ist.


Hier ist ein Trick, an den Barbara Beeton sich, soweit ich mich erinnere, erinnert:

\documentclass{article}
\usepackage{amsmath}

\catcode`^=12
\catcode`_=12

\begingroup\lccode`~=`^\lowercase{\endgroup\def~}{\SPACED\sp}
\begingroup\lccode`~=`_\lowercase{\endgroup\def~}{\SPACED\sb}
\AtBeginDocument{\mathcode`^="8000 \mathcode`_="8000 }

\makeatletter
\def\SPACED#1#2{#1{\text{$\m@th#2$}}}
\makeatother

\begin{document}
$\displaystyle x^{1+1}+\sum_{1\le k\le n}k^2$

The original: {\catcode`^=7 \catcode`_=8
  $\displaystyle x^{1+1}+\sum_{1\le k\le n}k^2$}
\end{document}

Dies \displaystyledient nur als Beispiel.

Bildbeschreibung hier eingeben

Ich habe keine Zweifel, welche Version ich wählen würde.

verwandte Informationen