マクロツイーター

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

pxchfon の unicode オプションについてもうチョット語ってみる

(u)pLaTeX + dvipdfmx のワークフローにおいて、何らかの和文文字について、

その文字は Unicode に入っているし、
今使っているフォントにも入っているはず

なのに文字が“なぜか出力できない”、という奇妙な不具合に出会ったら、pxchfon の unicode オプションを試してみよう。

もっと丸数字したい話
% pLaTeX 文書
\documentclass[a4paper]{jsarticle}
\usepackage{otf}
\begin{document}
\ajMaru{10}\ajMaru{20}\ajMaru{30}\ajMaru{40}\ajMaru{50}%
\ajSnowman
\ajKuroMaru{10}\ajKuroMaru{20}
\end{document}
% upLaTeX 文書; UTF-8
\documentclass[uplatex,a4paper]{jsarticle}
\begin{document}
⑩⑳㉚㊵㊿☃❿⓴
\end{document}

この例では、㊵(丸40)や㊿(丸50)といった丸数字の一部および黒丸数字が出力されていない。しかし、upLaTeX 文書ソースに直接書けていることから判るように、これらの文字は Unicode に含まれている。*1ここで実際に使われているフォントは「IPAex 明朝」である(☃の字形を見れば判る)が、このフォントは先に挙げた丸数字に対応している。(これはワープロソフト等で「IPAex 明朝」を指定して当該の文字を書いてみれば判る。)

つまり、この不具合は“なぜか出力できない”の例である可能性がある。

そういうわけで、早速 unicode 付きの pxchfon を試してみることにしよう。従来通り IPAex フォントが使われてほしいので、プリセットとして ipaex を指定する。

% pLaTeX 文書
\documentclass[a4paper]{jsarticle}
\usepackage{otf}
\usepackage[ipaex,unicode]{pxchfon}
\begin{document}
\ajMaru{10}\ajMaru{20}\ajMaru{30}\ajMaru{40}\ajMaru{50}%
\ajSnowman
\ajKuroMaru{10}\ajKuroMaru{20}
\end{document}
% upLaTeX 文書; UTF-8
\documentclass[uplatex,a4paper]{jsarticle}
\usepackage[ipaex,unicode]{pxchfon}
\begin{document}
⑩⑳㉚㊵㊿☃❿⓴
\end{document}

スバラシイ。

縦組でダブルミニュートしたい話

upLaTeX + dvipdfmx の環境で、実際に使われているフォントが IPAex フォントである場合、縦組においてダブルミニュート(〝 〟)を使うと、閉じ側の文字が正常に出力されない。

% upLaTeX 文書; UTF-8
\documentclass[uplatex,tate,book,paper=a4]{jlreq}
\begin{document}
ここから判るように、静的型付けには
明らかな優位性が〝存在〟する。
(実際に存在するとは言ってない。)
\end{document}

先の例と同じく、IPAex フォント自体は縦組のダブルミニュートを正しく扱える。(ワープロソフト等で確認できる。)従って、これも“なぜか出力できない”現象だと考えられる。

というわけで、再び pxchfon + unicode を試してみると……。

% upLaTeX 文書; UTF-8
\documentclass[uplatex,tate,book,paper=a4]{jlreq}
\usepackage[ipaex,unicode]{pxchfon}
\begin{document}
ここから判るように、静的型付けには
明らかな優位性が〝存在〟する。
(実際に存在するとは言ってない。)
\end{document}

スバラシイ。

*1:Unicode には丸数字の 1〜50 と黒丸数字の 1〜20 が含まれている。