マクロツイーター

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

ipamjm パッケージでアレしてみた

ipamjm パッケージ(齋藤修三郎 氏作製)が改版されて upTeX に対応したらしい。ということで早速試してみる。

作りたいのはもちろんコレ元記事)。

\documentclass[a4paper,uplatex]{jsarticle}
\usepackage[scale=0.86]{geometry}
\usepackage{ipamjm}
\begin{document}
\begin{quote}\fontsize{43}{43}\selectfont
\MJMZM{26190}\MJMZM{26191}\MJMZM{26192}\MJMZM{26194}\MJMZM{26194}\MJMZM{26206}\MJMZM{26207}\MJMZM{58869}\MJMZM{58870}\MJMZM{60232}\\
\MJMZM{26195}\MJMZM{26196}\MJMZM{26197}\MJMZM{26199}\MJMZM{26200}\MJMZM{60235}\MJMZM{60236}\MJMZM{60237}\MJMZM{60238}\MJMZM{60248}\\
\MJMZM{26201}\MJMZM{26205}\MJMZM{26203}\MJMZM{26204}\MJMZM{26202}\MJMZM{60240}\MJMZM{60241}\MJMZM{60242}\MJMZM{60232}\MJMZM{60234}
\end{quote}
\end{document}

素晴らしい!!

でも IVS したいね

……なんだけど、これは新しい一太郎と同じ機能を実現しているのかというと、ちょっと違う。一太郎(の先の記事で謳われている機能)は IVS を使って異体字を入力するが、ipamjm パッケージでは「文字情報基盤整備事業」が定めている番号(ここでは仮に「MJ番号」と呼ぶことにする*1)で指定している。後者はそれなりの利点をもつが、*2IVS で表現できた方が都合がいい場合もあるだろう。

で、作ってみた。

これを使うと上の画像と同じものを次のように表すことができる。

% 文字コードはUTF-8
\documentclass[a4paper,uplatex]{jsarticle}
\usepackage[scale=0.86]{geometry}
\usepackage{pxipamjm}
\begin{document}
\begin{quote}\fontsize{43}{43}\selectfont
\MJI15{}\MJI25{}\MJI27{}\MJI26{}\MJI26{}\MJI16{}\MJI18{}\MJI2{2B7EA}\MJI17{}\MJI*{60232}\\
\MJI28{}\MJI29{}\MJI23{}\MJI15{}\MJI8{}\MJI20{}\MJI24{}\MJI19{}\MJI18{}\MJI16{}\\
\MJI14{}\MJI10{}\MJI12{}\MJI11{}\MJI13{}\MJI9{}\MJI0{2B7EA}\MJI1{2B7EA}\MJI*{60243}\MJI21{}
\end{quote}
\end{document}

ただし、ここでは本物の IVS の制御文字(異体字セレクタ)は用いずに、代わりに各セレクタに対応する番号(「異体字番号」と呼ぶことにする)で指定する方式をとっている。すなわち、IVS 用のセレクタ(VS17〜VS256、符号位置は U+E0100〜E01EF)に 0〜239 の番号を対応させていて、上図の左上の字形は「〈邉〉の 15 番(符号値は U+9089 U+E010F)」なので、\MJI15{邉} と表記する。((LaTeX の文法に厳密に従った \MJI[15]{邉} という書き方もできるが、異体字番号が数字で書き表されている場合は [ ] を省略できる。))IVS はプレーンテキストでも扱える(そのことに存在意義がある)のであるが、それが満足に扱える(入力できる)環境が普及しているとはまだ言い難い状況のため、一種の代替表記としてこの入力法を用意した。pxipamjm は内部で ipamjm を読み込んでいて、IPAmj明朝の字形の出力はそちらに任せている。

基底文字({ } の中)は直接漢字を書く代わりに、\MJI2{2B7EA} のように Unicode 符号値の 16 進数で指定することもできて、この方法だと pTeX でも任意の Unicode 漢字を指定できる。\MJI*{60232} のように * 付にした場合は、MJ番号を直接指定したことになる(つまり、\MJI*\MJMZM と同じ)。

「本物の IVS じゃなじゃヤダ!」という人も大丈夫で、\MJI に番号を指定せずに代わりに引数に IVS を書くことも可能である(この場合は upTeX が必要)。

% 文字コードは当然 UTF-8
\documentclass[a4paper,uplatex]{jsarticle}
\usepackage[info]{pxipamjm}
\begin{document}
渡\MJI{邉󠄏}さんとか%   { } の中は U+9089 U+E010F
渡\MJI{𫟪󠄂}さんとか。% { } の中は U+2B7EA U+E0102
\end{document}
異体字の一覧表示

\MJI?{<基底文字>} とすると、その文字に対する(IPAmj明朝でサポートされている)異体字が列挙して出力される。*3GUI のツールほど便利ではないが、最低限の入力支援にはなるだろう。

\documentclass[a4paper,dvipdfmx]{jsarticle}
% highlight オプションを付けると一覧表示が色付きになる.
% (color パッケージの読込が必要.)
\usepackage{color}
\usepackage[highlight]{pxipamjm}
\begin{document}
こんにちは、渡\MJI?{}さん。
\end{document}

*1:正式には、"MJ" の後に「MJ 番号」を 6 桁で繋げたもの(例えば「MJ026190」)が識別子であり、これは「MJ文字図形名」と呼ばれる。

*2:図に挙げた字形はほとんどが〈邉〉と〈邊〉(この 2 つは Unicode でも別の字)の何れかの異体字であるが、右上の字形は現在登録されている Unicode 漢字の何れとも統合されない「別の(未登録な)字」なので(現状では)IVS では表せない。

*3:なお、例の出力で異体字番号が 15 から始まっているのは、0〜14 は IPAmj明朝でサポートされていないからである。IVS の登録は「Adobe-Japan1」と「汎用電子」の 2 系統があり、〈邉〉では前者が 0〜14 を、後者が 15〜29 を使用している。そして、IPAmj明朝は「汎用電子」のみをサポートしている。