マクロツイーター

はてダから移行した記事の表示が崩れてますが、そのうちに直せればいいのに(えっ)

LaTeX で \mathstyle したい話(bxluaustack パッケージ)

\mathstyle\Ustack の話の続き)

とりあえず、LaTeX\mathstyle を使えるようにするやつを作ってみた。

このパッケージを読みこむと次の処理が行われる。

  • 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 クラス。