XeTeX で 16 種類を超える数学記号フォントを使用するにはどうすればよいでしょうか?

XeTeX で 16 種類を超える数学記号フォントを使用するにはどうすればよいでしょうか?

大まかに言えば、XeTeX(およびLuaTeX)は数式フォントの数を16から256に拡張しますが、現在(texlive 2019)latex2eは数式アルファベットを0~255の全範囲でのみ許可し、記号フォントを0~15に制限しています(このコミット(2015年)

XeTeX ユーザーとして、0 ~ 255 のシンボル フォントをすべて使用するにはどうすればよいですか?


関連情報:

16 を超えるシンボル フォントへの拡張には、\mathchardef \mathaccent \radicaletc のすべての使用をバージョンに置き換える、より広範な変更が必要です\U...

デビッド・カーライル 2015年3月12日このコメント

おそらく、 のセクション 2.3\U...に記載されているプリミティブの使用法を学ぶ必要があるでしょう。texdoc xetex

答え1

16 を超える数を使用することで発生する問題は、コア xetex サポート コード内で変更する必要のあるものではありませんが、\newfam 割り当てを 16 を超える数にすると、ファミリ番号が\mathchardef15 を超えるとエラーが発生するため、すべての「通常の」数学フォント パッケージが機能しなくなります。

ただし、割り当てられたファミリを低く抑える場合は、通常の割り当てでは決して到達できないことがわかっている「安全な」ファミリ、たとえば 100 を選択して、次のように使用できます。

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

\documentclass{article}

% abc from dunhill in family 100

\font\cmdx =cmdunh10
\font\cmdvii =cmdunh10 at 7pt
\font\cmdv =cmdunh10 at 5pt
\textfont 100 = \cmdx
\scriptfont 100 = \cmdvii
\scriptscriptfont 100 = \cmdv
\Umathchardef \da 0 100 `a
\Umathchardef \db 0 100 `b
\Umathchardef \dc 0 100 `c

\begin{document}

$abc\da\db\dc$

\end{document}

関連情報