ご無沙汰しております。水羽です。いつもお世話になっています。
仕事柄、漢語のピンインを使用することがあります。これは漢語の
四つのアクセント記号を母音に付して示すアルファベットですが、
添付のファイルを作ってuplatex+updvipdfmxで処理しても、うま
くpdf化できません。問題はアクセント記号のあとに予期しない半
角のスペースが挿入されることにあります。なおupdvipdfmxの警告
は次のとおりです。
** WARNING ** CMap has higher supplement number than CIDFont: STSong-Light
** WARNING ** Some chracters may not be displayed or printed.
** WARNING ** CMap has higher supplement number than CIDFont: Ryumin-Light
** WARNING ** Some chracters may not be displayed or printed.
既出の問題かも知れませんが、うまく情報に出会えませんでした。
どなかたご教示いただければ、幸甚です。
みずは
upTeX はこれまで JIS 系のコードで行っていた和文の処理を Unicode で行えるように拡張したものです。なので、実は欧文に関しては Unicode では扱えません。(欧文の処理能力は昔ながらの欧文 TeX と同じ。)そして、既定では、upTeX は ASCII 文字(「普通の半角の文字」のこと)以外の全ての Unicode 文字を和文として扱います。これが正しい出力にならない原因です。
(補足:標準設定では、和文を出力するための物理フォントは全て全角の字幅をもつことが想定されます。「隙間が空く」こと自体はこれが原因です。しかし、細かい話以前に「和文として扱われて和文のフォントで出ている」時点でもう意図とは食い違っているはずです。)
up(La)TeX で UTF-8 の入力で欧文を扱うためには、(昔ながらの)欧文 (La)TeX と同じ手段を採る必要があります。これについては、「upLaTeX を使おう」の「欧文の UTF-8 入力との併用」節において述べられています。
日本語、中国語、漢語ピンインの文書の場合、妥当な設定は以下のようになります。
\documentclass[uplatex]{jsarticle}
% 下記の pxcjkcat の設定で「欧文扱い」になる文字を
% 和文として使いたい場合は前もってマクロにしておく。
%\newcommand*{\jTimes}{×}
% 必要なラテン文字のブロックを「欧文扱い」に
% 設定する(pxcjkcat パッケージ)。
% ※ prefernoncjk でもよいが、句読点類は和文扱いに
% したいのでブロックの個別指定を行う。
\usepackage{pxcjkcat}
\cjkcategory{latn1,latnA,latnB}{noncjk}
% utf8x 入力エンコーディングを指定。
\usepackage[utf8x]{inputenc}
%
\usepackage[english]{babel}
\usepackage[main=japanese]{pxbabel}
\begin{document}
\foreignlanguage{schinese}{邓小平} 鄧小平
dèng xiǎopíng
\foreignlanguage{schinese}{李大钊} 李大釗
lǐ dàzhāo
\end{document}