
このコード
\documentclass{article}
\usepackage{fouriernc}
\begin{document}
$a_1$
$a_{\!1}$
\end{document}
次の出力が生成されます:
下の方の間隔の方がずっと気に入っています。
毎回入力しなくても済むように、すべての下付き文字に自動的に使用する方法はありますか\!
? これがこの間隔を実現するための最適な方法でない場合は、もちろん、もっと良い方法を知りたいと思っています。
答え1
コマンドを再定義できます_
。そのため、標識の catcode を変更する必要があります。例の再定義は、プリアンブルで行う必要があります。動作を示すために、ドキュメント本体で再定義しました。
\documentclass{article}
\usepackage{fouriernc}
\begin{document}
$a_1$
$a_{\!1}$
\catcode`\_\active
\def_#1{\sb{\!#1}}
$a_{1}$
\end{document}
アンダースコアのグローバルを変更する代わりに、トークンの mathcode を設定して再定義することができます (David Carlisle が提案し、egreg が改良しました)。
\documentclass{article}
\usepackage{fouriernc}
\begin{document}
$a_1$
$a_{\!1}$
\catcode`\_=12
\mathcode`\_="8000
\begingroup\lccode`\~=`\_
\lowercase{\endgroup\def~#1}{\sb{\!#1}}
$a_{1}$
\begin{equation}
1+1=1\label{eq_1}
\end{equation}
Text \ref{eq_1} Text$_1$
\end{document}
_
ただし、ラベルでは避けるのが最善です。