Espaçamento em torno do operador matemático em sub/sobrescrito

Espaçamento em torno do operador matemático em sub/sobrescrito

Considere o seguinte:

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

saída

Responder1

insira a descrição da imagem aqui

Luatex possui primitivas para controlar o espaço adicionado entre cada classe em cada estilo matemático, portanto para controlar o espaço entre um mathord e um mathbin no estilo script:

\documentclass{article}

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

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

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

\end{document}

Para motores TeX clássicos, você pode fazer

insira a descrição da imagem aqui

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

Mas não é tão bom, sempre adiciona espaço, então só funciona se +for usado como um operador binário entre átomos matemáticos. Observe que o prefixo final +cno último termo obtém o espaço amplo, o que não é realmente o que você deseja, você precisaria de um comando separado para acessar a prefix +.

Em uma resposta vinculada por meio de comentários, sugeri uma construção \nonscriptque parece mais complicada, mas na verdade acho que tem a mesma falha.

A versão sugerida por egreg using \textobtém o espaçamento correto, mas requer mais marcação do que apenas adicionar o espaço (embora, é claro, você possa definir seu próprio \spcomando variante que cria sobrescritos usando esta construção).

Responder2

Não, você não quer isso. As regras para espaços matemáticos foram estudadas por Knuth através do exame de diversos documentos com conteúdos matemáticos produzidos durante um amplo período de tempo.

Talvez alguma tradição tipográfica nacional espace símbolos de operação e relação também em sobrescritos e subscritos. Isso não significa que seja bom: espaço apertado aliébom, em geral. Alguns contratempos ocasionais podem ser resolvidos manualmente: se você quiser um documento bonito, terá que trabalhar nele. Michelangelo não usou apenas martelo e cinzel para fazer seu famosoPietá.

Esta é uma imagem de um livro de Karl Weierstraß, “Theorie der Abel'schen Functionen: Erstes Heft”, 1856 (veja no Google Livros)

insira a descrição da imagem aqui

Você pode ver que as somas sobrescritas estão bem definidas, o que não é o caso das somas no tipo normal.


Aqui está um truque que me lembro de ter sido usado por Barbara Beeton:

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

Isso \displaystyleé apenas a título de exemplo.

insira a descrição da imagem aqui

Não tenho dúvidas sobre qual versão eu escolheria.

informação relacionada