いつも uplatatex + dvipdfmx でドキュメントを作っていますが、
中国語の文字が表示されない障害に出くわしあれこれ試行錯誤しています。
dvipdfmx で対象のグリフガない云々のメッセージを元にそのコードを \UTF にあたえると表示できるのがわかりました。
それで、uplatex で表示できない文字はどんなものかと思い、源ノ角フォントで表示できる文字をもとに調べました。
おおよそ 27,000 超の文字のうち 17,000超の文字がそのままでは表示できませんでした。源ノ角の情報とdvipdfmx の警告メッセージを元に sed/perl で変更するスクリプトも考えたのですが、1M 弱で 5分 もかかるので、いろいろ検討した ところこのフォーラム関連で韓国語で実施されていた DeclareUnicodeCharacter を使うのが良さそうだと思い、変換テーブルを作成してみたのですが、uplatex だと効果が現れません。文末に添付したソースの documentclass のオプションを取り除いて platex で実施すると思い通りの結果になりました。
前置きが長くなりましたが、質問です。
「uplatex で DeclareUnicodeCharacter を利用する方法はありますか?」
\documentclass[uplatex]{jsbook}
\usepackage[utf8]{inputenc}
\usepackage[multi]{otf}%
\usepackage[T1]{fontenc}%
\DeclareUnicodeCharacter{C544}{\UTFM{C544}}%아
\DeclareUnicodeCharacter{C774}{\UTFM{C774}}%이
\DeclareUnicodeCharacter{3400}{\UTFM{3400}}%㐀
\DeclareUnicodeCharacter{3401}{\UTFM{3401}}%㐁
\begin{document}
\fbox{아} (u+c544\UTFM{c544})\par
\fbox{이} (u+c774\UTFM{c774})\par
\fbox{㐀} (u+3400\UTFM{3400})\par
\fbox{㐁} (u+3401\UTFM{3401})\par
\end{document}
\usepackage[utf8]{inputenc}
\usepackage[multi]{otf}%
\usepackage[T1]{fontenc}%
\DeclareUnicodeCharacter{C544}{\UTFM{C544}}%아
\DeclareUnicodeCharacter{C774}{\UTFM{C774}}%이
\DeclareUnicodeCharacter{3400}{\UTFM{3400}}%㐀
\DeclareUnicodeCharacter{3401}{\UTFM{3401}}%㐁
\begin{document}
\fbox{아} (u+c544\UTFM{c544})\par
\fbox{이} (u+c774\UTFM{c774})\par
\fbox{㐀} (u+3400\UTFM{3400})\par
\fbox{㐁} (u+3401\UTFM{3401})\par
\end{document}
# 実行環境 OS X 10.10.4 / CentOS 7 / TeXLive 2014 と 2015