白屋書房Blog

組版・縦書きサイト「白屋書房」(https://hakuoku.github.io/agakuTeX/)のブログです

激闘TeX:引用符をめぐって

 約物類との格闘です。このへんIPAフォントとOTFパッケージとplextとupLaTeXのデフォルトが絡み合ってパズルのようでした。
 まずは知識のないころにけっこう苦戦した〝IPAにおけるダブルミニュート〟について。

縦書きしてみよう」ではこう解説されています。

このダブルミニュートは横書きと縦書きで異なります。文字コードで言うと、横書きの左側(起こし)が CID:7608 (Unicode: U+301D)、右側(受け)がCID:7609 (Unicode: U+301F) 、縦書きの上側(起こし)が CID:7956 (Unicode: U+201C)、右側(受け)がCID:7957 (Unicode: U+201D) です。
(中略)
ただし、CID 対応でない TrueType フォント等の場合、ダブルミニュート、特に縦書き・受けのダブルミニュートが収録されていません(IPA フォントはこれに該当します)のでご注意下さい。

 そして(美文書入門にも)以下が解決策として載っていました。

\CID{7956}CID{7956}CID{7957}\CID{7957}

 ところがこれを組んでみるとこうなります。

f:id:isaribisaitoh:20171114192520j:plain

 おかしいなということでUniViewで文字の情報を確認してみると、ブロックはCJK Symbols and Punctuationでした。名前は「ダブルプライム・クォーテーションマーク」になるらしい。ダブルミニュートは和製英語のようです。

f:id:isaribisaitoh:20171114204403j:plain

 三つしかない。
 縦書きにおける正しい字形は起こし側が「右下にある上から下に払ったダブルプライム」と、受け側が「左上にある下から上に払ったダブルプライム」になるはずです。どれも違う。
 仕方ないので片っ端からタイプセットしてみます。

\UTF{301D}UTFの301D、E、F\UTF{301E}\UTF{301F}
\CID{7608}CIDの7608、7609\CID{7609}
\UTF{201C}UTFの201C、D\UTF{201D}
\UTF{201E}UTFの201E、F\UTF{201F}
\CID{7956}CIDの7956、7957\CID{7957}

f:id:isaribisaitoh:20171114192559j:plain

 やった!二番目が成功だ!あとは三番目が普通にキーボードから全角ダブルクォートを入れた時と同じですね。
 じゃあCIDの7608って何だよと思ったんですが、CID番号ってWeb上で簡単に調べられないんですねorz Adobeの公式リファレンスPDFでうまいこと探せませんでした。
 というわけで美文書入門の付録で確認すると、確かに7608と09が横書き、7956と57が縦書きのダブルプライムでした。

f:id:isaribisaitoh:20171114192731j:plain

 しかし実際にちゃんと出力されるのは横書きのはずの7608と09です。ということは、IPAex明朝ではCIDの7608=Unicodeの301Dを右に90°回転させて起こしに、左に90°回転させて受けに使っているのではないかと推測しました。7957では回転させないで使える縦書き用のグリフそのものを呼んでいる(そしてIPAには収録されていない)から豆腐になるのかと。
 そう思うとこのへんの挙動が不明です……upLaTeX+utbookで縦書き文書をタイプセットした時に、“実際には”どの字が植えられているのかがよく分かりません。UnicodeにはCJK Compatibility Formsとして縦書き用の各種カッコが収められているんですが、例えばベタ書きでカギカッコを入れた時にこの縦書き専用の形を使っているのか、それとも横書き用の起こし側を90°回して使っているのかとか。

 ちなみにCID対応フォントで組んでみるともっと分からなくなります。小塚明朝ではこうなりました。

f:id:isaribisaitoh:20171114192706j:plain

 当たり前ですがCIDのグリフに忠実に組まれました。ただし今度は一番目を回転させてるように見受けられます。301Eは持ってないのか回転できなかったのか。
 201F(Double High-Reversed-9 Quotation Mark)は収録されてないっぽいですね。そもそもどういう記号なのかがわからん。201Eはドイツ語とかで使うみたいなんですが。

 分からないことだらけですがとりあえず出力できたのでよしとしましょう。サイトのほうのマクロをプリアンブルに入れておけば\〟だけで出せるようになります。