JISX0213 の全部の漢字を出力

JISX0213 の全部の漢字を出力

- 和田 勇 の投稿
返信数: 11
和田と申します。いつも有益な情報ありがとうございます。

さて、TeXLive 2014  の uplatex を使ってJISX0213の漢字約一万文字が処理できるか試してみました。
otf パッケージを jis2004 オプション付きで取り込むと  (区点:1-84-50 / SJIS:0xEAD0 / UCS:U+609E)という一つの文字だけが Glyph missing in font. (CID=21558, code=0x65df) という警告メッセージがでます。画像もグリフなしを示す四角い箱にバッテンになります。その他は、問題ありませんでした。

JISX0213 全部 unicode で記述できるようになったので otf パッケージを使う頻度は少なくなりますが、それでも必要なときは ipamj明朝用パッケージ pxipamjm で  \MJI*{011606} などで逃げることはできるので、問題はないのですが、仕様の範囲なのかわからないのですが報告しておきます。サンプルは以下のものを使って試しました。

\documentclass[uplatex]{jsarticle}
\usepackage[uplatex]{otf}
%\usepackage[uplatex,jis2004]{otf}
\begin{document}
\end{document}
和田 勇 への返信

Re: JISX0213 の全部の漢字を出力

- 北川 弘典 の投稿
> otf パッケージを jis2004 オプション付きで取り込むと 悞 (区点:1-84-50 / SJIS:0xEAD0 / UCS:U+609E)という一つの文字だけが Glyph missing in font. (CID=21558, code=0x65df) という警告メッセージがでます。

手元で確かめてみたところ,和文フォントとして IPA フォントや
IPAex フォントを使った時に,同じメッセージが出力されました.

小塚明朝 Pr6N だと正常に出力されました.
北川 弘典 への返信

Re: JISX0213 の全部の漢字を出力

- 北川 弘典 の投稿
$ dvipdfmx -f otf-up-ipa.map -v a

を実行させると
(-f otf-up-ipa.map は,IPAフォントを用いるための設定)

(cmr10.pfb[Type1])(CID:ipam.ttf[CIDFontType2](CMap:Adobe-Japan1-UCS2)
dvipdfmx:warning: Glyph missing in font. (CID=21558, code=0x65df)

というメッセージが出ました.

そこで,Adobe-Japan1-UCS2 を覗いてみると

<5436> <65df>
% 16:34 ↑が消えてしまっていたので修正

という行がありました.これは CID 0x5436 (=21558) が
U+65DF (旟) に対応することを表しているようですが,
実際の字形を見ると,CID 21558 は U+65DF とは全く違います.
(ちなみに,IPAフォントには U+65DF のグリフはありません)

なので,Adobe-Japan1-UCS2 の誤記のような気がしています.
北川 弘典 への返信

Re: JISX0213 の全部の漢字を出力

- 和田 勇 の投稿
dvipdfmx -vv していたのに(CMap:Adobe-Japan1-UCS2)に気がつきませんでした。 勉強になります、北川様。

当初の投稿で忘れていた情報をおしらせします。

和田の環境は、OS X 10.10 で TeXLive 2014 をネットワークインストールし、投稿にあたり TeXLive アップデート後テストもしています。

なお、人名漢字などを \CID \UTF  変換せずにそのまま処理できるか検証しているため IPA mj 明朝フォントに関する設定情報を /usr/local/texlive/texmf-local 以下に配置しています。その影響がを及ぼさないよう、投稿にあたっては TEXMF-LOCAL 以下を TeXLive 2014 インストール状態と同じ空っぽにしてテストしています。

北川 弘典 への返信

Re: JISX0213 の全部の漢字を出力

- Akira Kakuto の投稿
UniJIS-UTF16-H
において
<609e> 14541
であったものが
UniJIS2004-UTF16-H
では
<609e> 21558
に変更されているにも関わらず,両者について共通の
Adobe-Japan1-UCS2
が TrueType の場合には参照されるのが原因ではないかと思います。
OpenType であれば,Adobe-Japan1-UCS2 が要らないので

\documentclass[uplatex]{jsarticle}
\usepackage[uplatex]{otf}
%\usepackage[uplatex,jis2004]{otf}
\begin{document}
悞\CID{14541}
\end{document}



\documentclass[uplatex]{jsarticle}
%\usepackage[uplatex]{otf}
\usepackage[uplatex,jis2004]{otf}
\begin{document}
悞\CID{21558}
\end{document}

は同じ出力となるようです。
Akira Kakuto への返信

Re: JISX0213 の全部の漢字を出力

- 和田 勇 の投稿
kakuto 様、ご検討いただきありがとうございます。

私の当初の目標は、「原稿に \UTF \CID などを直接書かずに unicodeのまま」で処理できればいいなでした。

otf with jis2004 で処理したろころ漢字だけですが 10050 文字のうち一 文字を除いてそのまま pdf イメージにとすることができました。が、欲張りな気が勝り、なぜなのだろうと試行錯誤した結果、 otf パッケージのオプションに突き当たった次第です。なお otf パッケージがないと歯抜け状態なので otf パッケージは必須。

jis2009 で CID{14541} は確認しました

ちなみに pxchfon を取り込んでの IPAmj 明朝も同様でした。

お二人の書き込みを参考に小塚フォントを入れてみたのですが、まだ表示?というか取り込めていないようです :- ( 引き続き検証します。(OSX 使用ですが adobe reader とか入れていないし、最終ターゲットは CentOS 環境なので)

何れにしても、現状では「全て unicode ってわけにいかないかも」ってことも想定しているので、kakutou さんの回避策も含めて「前処理」で切り抜けようかなと方針をやや変えつつあります。

というのも .... この後、非漢字や異体字なども検証してみようと思っています。

異体字の方は、unicode.org の異体字対応情報を ruby に取り込んで \IVD{} のようなマクロ対応変換を前処理する方法はできているので、何れにしても前処理は必要になるので。

北川 弘典 への返信

Re: JISX0213 の全部の漢字を出力

- Akira Kakuto の投稿
> Adobe-Japan1-UCS2 の誤記のような気がしています

<65df> は
UniJIS-UTF16-H,
UniJIS2004-UTF16-H
の両者で
<65df> 19435      (<4beb>)
となっており,
Adobe-Japan1-UCS2 でも
<4beb> <65df>
となっているようです。
... ...

<5436> <609e>
が正しい表記に一票です。
Akira Kakuto への返信

Re: JISX0213 の全部の漢字を出力

- 和田 勇 の投稿

先日ダウンロードした Adobe フォントのアーカイブ AdobeReader_jpn-8.1.7-1.i486.tar.bz2 を調べてみました。


%  grep -r '<5436>' Adobe
 ...<snip>...
Adobe/Reader8/Resource/CMap/Adobe-Japan1-UCS2:<5436> <65df>
...<snip>...

となっていて、大元の Adobe でこのように配布していたようにおもえます。


ちなみに TeXlive 2014 の Adobe-Japan1-UCS2 との違いはコピーライトの文言が入っている他は、バージョン情報の変更だけでした。

-/CMapVersion 8.001 def
+/CMapVersion 8.002 def

上が Adobe 下がTeXlive に同梱していたものです。
Akira Kakuto への返信

Re: JISX0213 の全部の漢字を出力

- 和田 勇 の投稿

Adobe-Japan1-UCS2 を直接書き換えてやってみたところ Missing 云々と文句言われなくなり、表示もできました。

ううむ。。。正解はどれかしら?
和田 勇 への返信

Re: JISX0213 の全部の漢字を出力

- Akira Kakuto の投稿
Adobe 正規配布の Adobe-Japan1-UCS2
では
<5436> <65df>
となっていますが,一方同じ Adobe の
http://www.adobe.com/devnet/font.html#ckf
で入手した
5078.Adobe-Japan1-6.pdf
で確認すると,21558 のグリフは U+609E
のように見えます。

なお,Adobe-Japan1-UCS2 では
19435(0x4beb), 21558 (0x5436), 21694 (0x54be)
に U+65DF をあてているようですが,
5078.Adobe-Japan1-6.pdf
で見ると
19435, と 21694 は (殆ど?) おなじです。
21558 は上述のように U+609E に見えます。
北川 弘典 への返信

Re: JISX0213 の全部の漢字を出力

- Akira Kakuto の投稿
私のところでもやってみると,
IPA
dvipdfmx -f ipa.map test

IPAex
dvipdfmx -f ipaex.map test

両方とも正常に出力されるようです。