(\mathstyle
や \Ustack
の話の続き)
とりあえず、LaTeX で \mathstyle
を使えるようにするやつを作ってみた。
- bxluaustack パッケージ (Gist/zr-tex8r)
このパッケージを読みこむと次の処理が行われる。
- amsmath パッケージを(まだなら)読み込む。
- LaTeX 標準の
\frac
命令、および amsmath の汎化分数の命令(\genfrac
、\binom
等)について\Ustack
を付けるように修正する。 - amsmath パッケージでは、ユーザが汎化分数の TeX プリミティブを直接使うことを禁止していて、もし使うと警告が表示される。この処置をさらに強化して、エラー扱いにしてしまう。
- 汎化分数の TeX プリミティブを利用いているパッケージは amsmath の他にも存在する。そのうちの幾つか*1について、「エラーも警告も出さず、しかも
\Ustack
を付ける」ようにパッチを当てる。
これにより、汎化分数の記述(常に“LaTeX の命令”で行われる)の中で \mathstyle
が正しい値を返すようになるはずである。実際に試してみよう。
\documentclass[a4paper]{article} \usepackage{bxluaustack} \input{showms.def}% \showMS 定義 \newcommand*{\X}{X\showMS} \begin{document} $\X = \frac{\X^{\X}}{\X^{\X}}\quad %==> T S SS S' SS' \binom{\X}{\X}\quad %==> S S' \dbinom{\X}{\X}\quad %==> T T' \genfrac{\{}{\}}{0pt}{}{\X}{\X}$ %==> S S' \end{document}
※showms.def は以前の記事に掲載したものと同じ。
コンパイルの際に端末に以下のように出力される。
T S SS S' SS' S S' T T' S S'
正しい結果が得られていることがわかる。
*1:schemata、oz、permute、mafr の各パッケージ、および slides クラス。