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 \textstyle
pode ser melhorado. Provavelmente deve-se evitar que a estrela seja colocada em \scriptstyle como sobrescrito enquanto o número tem tamanho normal. \mathchoice
ajuda 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}
Adição
Usando LaTeX \mathpalette
a 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.