Plain TeX で数字記号をタイプセットするにはどうすればいいですか?

Plain TeX で数字記号をタイプセットするにはどうすればいいですか?

数字記号 № を Plain TeX でタイプセットしたいです。

私の最初の推測は、

\def\numero{$\rm N^{\underline o}$}

しかし、o の下の線が長すぎるため、ボックスを短くするために任意の長さの値をいじりたくありません。

そして

\def\numero{$\rm N^{\b o}$}

通常サイズの o が生成されますが、これは私が望んでいるものではありません。

何かアイデアはありますか? o が上付き文字でもベースラインでも問題ありません。

答え1

カーニングを使用することもできます。

\def\numero{%
  \leavevmode
  \hbox{%
    $\rm N^{\mkern0.8mu\underline{\mkern-0.8mu o\mkern-0.8mu}\mkern0.8mu}$%
  }%
}

\numero 1

\bye

ここに画像の説明を入力してください

おそらく、アクセントの下にバーを付けて、小さめの「o」を上げる方が良いでしょう。

\def\numero{%
  {\rm N}%
  \raise1.05ex\hbox{\fiverm \b{o}}%
}

\numero 1

\bye

ここに画像の説明を入力してください

上げる量を推測して を使用したくない場合はpdftex、 を使用できます\fontcharht(または、 N の高さを測定して計算するという難しい方法を使用することもできます)。

\def\numero{%
  {\rm N}%
  \begingroup
  \setbox0=\hbox{\fiverm o}%
  \raise\dimexpr\fontcharht\font`N-\ht0\hbox{\fiverm \b{o}}%
  \endgroup
}

\numero 1

ここに画像の説明を入力してください

答え2

Unicode エンジン (xetex または luatex) を使用している場合は、Unicode フォントをロードして № を直接使用できます。例:

\input lmfonts

№1

\bye

(この例は luatex または xetex で処理します)。

関連情報