私の 3 つ星 ( ) のコードの何が問題なのでしょうか? 私のや***
と比べると、とても醜いです。**
*
\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}
答え1
星は二項演算子として扱われます。最初の 2 つのケースでは、二項演算子に十分な数学アトムがありませんが、3 番目のケースでは、最初の星が 3 番目の星と「乗算」され、2 番目の星が追加のスペースを使用して二項演算子として設定されます。星を中括弧で囲むと、この動作を回避できます。数学モードでの中括弧は、通常の数学アトムとして扱われるサブ式を作成します。
{*}{*}{*} or *{*}*
改善の余地も\textstyle
あります。おそらく、数字が通常のサイズであるのに、星が \scriptstyle で上付き文字として設定されないようにする必要があります\mathchoice
。ここで役立ちます。4 つのスタイルに対して 4 つの引数を取り、TeX は最終的にアクティブになるスタイルの引数を使用します。
\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}
追加
LaTeX を使用すると\mathpalette
定義を少し簡略化できます。
\newcommand*{\SuperScriptSameStyle}[1]{%
\ensuremath{%
\mathpalette\SuperScriptSameStyleAux{#1}%
}%
}
\newcommand*{\SuperScriptSameStyleAux}[2]{%
% #1: math style
% #2: superscript
{}^{#1#2}%
}
答え2
ここに修正方法がありますが、理由がわかりません。
\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}
答え3
別の修正:
\usepackage{mathabx}
\newcommand{\threeS}{\ensuremath{{}^{\textstyle
\asterisk\asterisk\asterisk}}}
あるいは単に
\newcommand{\threeS}{\ensuremath{^{***}}}
しかし、ハイコ・オーバーディークの修正ははるかに優れています。