マクロツイーター

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

「花園明朝」で縦書きするとアレかもしれない

[2013-06-22 追記] 以下の記述は「花園明朝」の 2011-05-16 版という少し古い版についてのものでした。最新の 2013-02-22 版ではこの記事に挙げた例は正常に出力されます。

PXchfon パッケージに関する以前の記事で、「directunicode オプションは横書きのみの対応」と書いた。実は、0.7 版の改修で縦書きへの対応を行っていて(従って説明書でもそう書いている)、当該の記事を書く際にその旨を報告しようと思ったのだが、サンプルの文書を作ってみたら異常な出力になっていることが判って予定を変えたのであった。

この通り、\UTF で出力した文字(冒頭および 5 行目の〈阿〉の次)が縦方向にずれていて次の文字と重なってしまう。

「花園明朝」したから?

しかし、よく調べてみたら、この現象は「花園明朝A」だけで起こるものであって、他のフォントの場合は directunicode での縦書きは問題がない(つまり、「Unicode 直接指定でない」縦書きフォント*1と位置が揃う)ことが判明した。

\documentclass[a4paper]{jsarticle}
\usepackage{plext}\pagestyle{empty}
\usepackage{otf}
\usepackage[ipa,directunicode]{pxchfon}% IPAフォント
%\setminchofont{HanaMinA.ttf} %(*)明朝→花園明朝A
\begin{document}% IPAゴシックはJIS直接入力の文字
\parbox<t>{6zw}{\gtfamily 実に{\mcfamily\UTF{9AD9}}島屋!}
\end{document}

というより、実は、directunicode も全く関係なくて、「花園明朝A」を縦書きで使おうとすると必ず異常な出力になってしまうようである。次の例では、横書きと縦書きの各々で「IPAゴシック」と「花園明朝A」の文字を枠で囲って出力させているが、縦書きの花園明朝だけ完全にずれた位置に出力されている。*2

\documentclass[a4paper]{jsarticle}
\usepackage{plext}
\usepackage[noalphabet]{pxchfon}
\setminchofont{HanaMinA.ttf}
\setgothicfont{ipag.ttf}
\begin{document}
\setlength{\fboxsep}{0pt}
\fbox{\mcfamily} \fbox{\gtfamily} %
\parbox<t>{3zw}{\fbox{\mcfamily} \fbox{\gtfamily}}
\end{document}

手許にある他のフォントでも試してみたが、どうやら、上手くいかないのは「花園明朝A」のせいであって、directunicode の縦書き対応自体は正常に機能しているようである。

「花園明朝」したければ

しかし、この「directunicode オプション(Unicode 直接出力)」はそもそも Adobe-Japan1 にないが Unicode にはあるという珍しい和文文字を OTF パッケージで何とか扱うためのものである。とすると、どうしても「花園明朝」を使いたい、という場合は結構ありそうである。何とか縦書きの失敗を回避できないか。

実は簡単な回避策がある。全角取りの「縦中横」で出力すれば、見かけは普通の縦書きでありながら、実際には横書きとして出力しているので縦書きの不具合の影響を排除できる。全角取りの縦中横で出力するためのコードはちょうど前回の記事で登場した。(plext パッケージの \rensuji の出力を調整したものである。)これと Unicode 直接出力を組み合わせると、冒頭に挙げた例を正常に出力できる。

\documentclass[a4paper]{jsarticle}
\usepackage{plext}
\usepackage[deluxe]{otf}% OTFの設定は先の例と同じ
\usepackage[ipa,directunicode]{pxchfon}% IPAフォント
\setlightminchofont{HanaMinA.ttf}% 花園明朝A
\newcommand*{\TCY}[1]{{\setlength{\rensujiskip}{0pt}% 縦中横
  \rensuji{\raisebox{0pt}[0.88zw][0.12zw]%
  {\userelfont\selectfont#1}}}}
\newcommand*{\UHM}[1]{\TCY{\mcfamily\ltseries\UTF{#1}}}% 縦中横指定を追加
\begin{document}
\parbox<t>{6zw}{%
\UHM{618D}梵波提、賓頭盧頗羅墮、迦留陀夷、摩訶劫賓那、薄拘羅、
阿\UHM{3779}樓駄、如是等諸大弟子。}
\end{document}

*1:もっと具体的にいうと、「V」の CMap をもつ JIS 直接入力のフォント。

*2:横書きの枠の縦幅が奇妙なのは、「例の min10 のメトリック」のせいである。この例の JFM は jis であるが。