ユニコード入力の漢字のプリントアウトについて

ユニコード入力の漢字のプリントアウトについて

- 水羽 信男 の投稿
返信数: 7
先日、tex-qaの方へ「BXbase/PXbaseでの半角文字の扱いに
ついて」という質問でお世話になった みずは です。
その節は大変にありがとうございました。その後、快適にplatex
を使用しています。

今日はユニコードで入力した漢字のプリントアウトについて質問
させてください(tex-qaの方では本文の全角文字が少ないという
ことで書き込みができませんでした)。

質問というのは、以下のようなtest.texを platex-utf8 で処理し、
dvipdfmxでpdfにするとに文字化けするという問題です。

\documentclass{jsarticle}
\usepackage[bxutf8]{inputenc}
\usepackage{bxbase}
\usepackage[multi]{otf}
\usepackage[english]{babel}
\usepackage[main=japanese]{pxbabel}
\begin{document}
①鄧小平

②許徳珩

③張君勱
\end{document}

cid-x-local.mapの(おそらく)関連ある部分は

%%% OTF package
hminr-h H A-OTF-RyuminPr5-Light.otf
hminr-v V A-OTF-RyuminPr5-Light.otf
otf-ujmr-h UniJIS-UTF16-H A-OTF-RyuminPr5-Light.otf
otf-ujmr-v UniJIS-UTF16-V A-OTF-RyuminPr5-Light.otf
otf-cjmr-h Adobe-Japan1-6 A-OTF-RyuminPr5-Light.otf
otf-cjmr-v Identity-V A-OTF-RyuminPr5-Light.otf

です。

dvipdfmxの関係するエラーメッセージは
** NOTICE: This document contains `Preview & Print' only licensed font **

** WARNING ** No character mapping available.
CMap name: H
input str: <2d>

** WARNING ** No character mapping available.
CMap name: H
input str: <2d>

** WARNING ** No character mapping available.
CMap name: H
input str: <2d>

のようです。

よろしくお願いします。

水羽 信男 への返信

Re: ユニコード入力の漢字のプリントアウトについて

- 匿 名 の投稿
platex-utf8は、入力ファイルの文字コードがUTF-8でも処理できる“だけ”で、扱える文字の範囲はJISに限られるんじゃなかったでしょうか。JISにない文字は普通のplatexと同様、化けるのだと思います。

何と読むのかわかりませんが、目的の文字をちゃんと出力したいのであれば、OTFパッケージのコード参照で指定するか、uplatex→updvipdfmxで処理する必要があるのではないでしょうか。
水羽 信男 への返信

Re: ユニコード入力の漢字のプリントアウトについて

- KUROKI Yusuke の投稿
こちらの環境(美文書5版の Cygwin 用バイナリ相当)では,非埋込みなら問題なく処理できました.

A-OTF-RyuminPr5-Light.otf には,丸数字や当該の“難しい”(JIS X 0208 に含まれない?)文字は収録されているのですよね?
水羽 信男 への返信

Re: ユニコード入力の漢字のプリントアウトについて

- Z. R. の投稿

最新の W32TeX で試してみたら再現しました。2011/03 頃の W32TeX では正常に動作するので、pTeX の動作の変更が直接の原因ということになります。この点について、別のスレッドを立てました。

問題の性質からして、対処的処理は難しそうです。しかし、W32TeX であれば upTeX を使うのも容易なはず(フォントマップを設定するだけ)なので、upTeX の使用を試してみればいかがでしょうか。私の感覚では、「bxutf8 + otf で基本漢字外の漢字を直接入力で出す」という方法自体が、実のところ upTeX が容易に使えない環境のための次善の手段だったりします。

参考:「upLaTeX を使おう」

Z. R. への返信

Re: ユニコード入力の漢字のプリントアウトについて

- 水羽 信男 の投稿
ご教示、感謝します。ただ、先ほどからupTeXを使う試みをしていますが、どうもフォントマップがうまく作れていないようで、以下のようなエラーメッセージに苦しんでいます。既出の問題だと思いますので、調べてみたいと思います。が、先に仕上げるべき仕事もあり、少し時間がかかるかも知れません。確認できしだい、またご報告させていただきます。

なお upTeXの Version は、3.1415926-p3.1.11-u0.30 (utf8.uptex) で、こちらも挙動が所期のものと違う、最新版と同じように、
(nkf = UTF-8 = utf8)(nkf = ISO-2022-JP = jis)(nkf = ISO-2022-JP = jis)(nkf = EUC-JP = euc)
というメッセージが出ます。

取り急ぎ、確認の遅れのご連絡まで。

name = uprml-h, rootname = uprml-h, pointsize =
mktexmf: empty or non-existent rootfile!

kpathsea: Running mktexmf uprml-h.mf

The command name is c:\tex\bin\mktexmf
Cannot find uprml-h.mf .
I try ps2pk --> gsftopk --> ttf2pk --> hbf2gf.
Current font seems to be a Japanese one.
I give up to create a PK font.

** WARNING ** Couldn't open font map file "cid-x-local.map".
test.dvi -> test.pdf
[1
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 0+555/600 --dpi 555 uprml-h

The command name is c:\tex\bin\mktexpk
kpathsea: Appending font creation commands to missfont.log.

** WARNING ** Could not locate a virtual/physical font for TFM "uprml-h".
** WARNING ** >> There are no valid font mapping entry for this font.
** WARNING ** >> Font file name "uprml-h" was assumed but failed to locate that font.
** ERROR ** Cannot proceed without .vf or "physical" font for PDF output...

Output file removed.

水羽 信男 への返信

Re: ユニコード入力の漢字のプリントアウトについて

- 水羽 信男 の投稿
ここに書くのも恥ずかしいような初歩的ミスでした。以下のドキュメントを
uplatex と updvipdfmx とで処理して、所期の結果を得ることができま
した。
また角藤さんのパッケージのplatexも調整していただけるようで、嬉しく
思っています。
Z.R.さんをはじめ、皆さんのご教示に、心より感謝いたします。

---------uptest.tex-------------------
\documentclass[uplatex]{jsarticle}
\usepackage[bxutf8]{inputenc}
\usepackage{bxbase}
\usepackage[multi]{otf}
\usepackage[english]{babel}
\usepackage[main=japanese]{pxbabel}
\begin{document}
①鄧小平 --日本語

②許徳珩 --日本語

③張君勱 --日本語

④\foreignlanguage{tchinese}{蔣介石 --繁體中文}

⑤\foreignlanguage{schinese}{蒋介石 --简体中文}

⑥蒋介石 --日本語

⑦骨 --日本語

⑧\foreignlanguage{schinese}{骨 --简体中文}
\end{document}

水羽 信男 への返信

Re: ユニコード入力の漢字のプリントアウトについて

- Z. R. の投稿

ちなみに、この uptest.tex の場合、プレアンブルは

\usepackage[english]{babel}
\usepackage[main=japanese]{pxbabel}

だけで十分です。(余分なものがあっても害はないが。)

(日本語のフォントしか用いない(つまり \foreignlanguage がない場合)は上の 2 行も不要、つまり何のパッケージも要りません。)

Z. R. への返信

Re: ユニコード入力の漢字のプリントアウトについて

- 水羽 信男 の投稿
ご教示感謝します。
こうしてみるとuplatexというのは、すごいですね。
中国語を混在させてたり、多漢字を使わざるをえない(「第四水準」の漢字も多々使います)我々には、大変にありがたいものとなりそうです。