Estrelas de significância estatística

Estrelas de significância estatística

O que há de errado com meu código de três estrelas ( ***)? É tão feio comparado ao meu **e *.

\documentclass{article}
\newcommand{\oneS}{\ensuremath{{}^{\textstyle *}}}
\newcommand{\twoS}{\ensuremath{{}^{\textstyle **}}}
\newcommand{\threeS}{\ensuremath{{}^{\textstyle ***}}}

\begin{document}

0.11\oneS \newline

0.11\twoS \newline

0.11\threeS

\end{document}

Responder1

A estrela é tratada como operador binário. Nos dois primeiros casos, não há átomos matemáticos suficientes para um operador binário, mas no terceiro caso, a primeira estrela é "multiplicada" pela terceira estrela e a segunda estrela é definida como operador binário com espaços adicionais. Você pode se livrar desse comportamento colocando a estrela entre colchetes. Chaves no modo matemático formam uma subfórmula que é tratada como um átomo matemático comum:

{*}{*}{*} or *{*}*

Também \textstylepode ser melhorado. Provavelmente deve-se evitar que a estrela seja colocada em \scriptstyle como sobrescrito enquanto o número tem tamanho normal. \mathchoiceajuda aqui. São necessários quatro argumentos para os quatro estilos e o TeX usa o argumento para o estilo que está finalmente ativo.

\documentclass{article}
\newcommand*{\SuperScriptSameStyle}[1]{%
  \ensuremath{%
    \mathchoice
      {{}^{\displaystyle #1}}%
      {{}^{\textstyle #1}}%
      {{}^{\scriptstyle #1}}%
      {{}^{\scriptscriptstyle #1}}%
  }%
}

\newcommand*{\oneS}{\SuperScriptSameStyle{*}}
\newcommand*{\twoS}{\SuperScriptSameStyle{**}}
\newcommand*{\threeS}{\SuperScriptSameStyle{*{*}*}}

\begin{document}

0.11\oneS

0.11\twoS

0.11\threeS

$\frac{0.11\oneS}{0.11\twoS_{0.11\threeS}}$

\end{document}

Resultado

Adição

Usando LaTeX \mathpalettea definição pode ser um pouco simplificada:

\newcommand*{\SuperScriptSameStyle}[1]{%
  \ensuremath{%
    \mathpalette\SuperScriptSameStyleAux{#1}%
  }%
}
\newcommand*{\SuperScriptSameStyleAux}[2]{%
  % #1: math style
  % #2: superscript
  {}^{#1#2}%
}

Responder2

Aqui está uma solução, mas não sei por quê?

\documentclass{article}
\newcommand{\oneS}{\ensuremath{{}^{\textstyle *}}}
\newcommand{\twoS}{\ensuremath{{}^{\textstyle **}}}
\newcommand{\threeS}{\ensuremath{{}^{\textstyle **}\oneS}}
\begin{document}
0.11\oneS \par
0.11\twoS \par
0.11\threeS
\end{document}

Responder3

Outra correção:

\usepackage{mathabx}
\newcommand{\threeS}{\ensuremath{{}^{\textstyle 
  \asterisk\asterisk\asterisk}}}

Ou simplesmente

\newcommand{\threeS}{\ensuremath{^{***}}}

Mas a dose de Heiko Oberdiek é muito melhor.

informação relacionada