Hatena::ブログ(Diary)

マクロツイーター このページをアンテナに追加 RSSフィード Twitter

2011-02-20

フォントにない文字を別のフォントで補う〜xeCJKの場合〜

以前に「フォントにない文字を別のフォントで補う」の機能を xeCJK パッケージ(または ZXjatype パッケージ)上で実現するパッケージを作ってみた。以前の記事で挙げた方法は xeCJK の処理とはかなり相性が悪いので、全く別の方法を使っている。でも、多少強引なことをやっているので、どこかで失敗するかも知れない。

以下は zxjafbfont パッケージを zxjatype とともに用いた例。

% 文字コードUTF-8
\documentclass[a4paper]{article}
\usepackage{zxjatype}
\usepackage{zxjafbfont}
\setjamainfont{IPA明朝} % メインのファミリ
\setjafamilyfont{hanamin}{花園明朝} % 代替に使うCJKファミリを宣言
\begin{document}
我的气垫船充满了鳝鱼!\par
\setCJKfallbackfamily{hanamin} % これ以降は「花園明朝」で代替する
我的气垫船充满了鳝鱼!\par
\unsetCJKfallbackfamily % これ以降は代替を行わない
我的气垫船充满了鳝鱼!\par
\end{document}

f:id:zrbabbler:20110220225446p:image

K.OkadaK.Okada 2011/03/01 17:21 使ってみました。

xetex, uplatex, otf の結果を,

http://okd.look.in/exam/center/fontcomplement.zip

に置いてあります。

いままで,むしろuptex の全角約物が気になっていたので,こちらの方が素直です。

あと,字間の調整だけで,センター試験程度ならいけそうですね。

ありがとうございました。

zrbabblerzrbabbler 2011/03/04 00:57 最初に謝っておきます。本文では、「適当な例がすくに思いつかなかった」ので、中国語の文を用いましたが、こういう使い方をすると、明らかに中国語の文字が日本語のフォント(つまり日本語用の字体)で出力されてしまうので不適切でした。申し訳ありません。字体問題は「骨」とかが有名ですが、これほどでなくても、示して頂いた XeTeX のサンプルでも微妙ですが中国語では不自然な字形が混ざっています。

この試験問題程のまとまった中国語のテキストが対象ならば、結局は「中国語用の設定」に切り替えるのが筋だと思います。それならば、その「中国語用の設定」の中にフォントの明示的な切替を含ませるのはいたって容易な訳で、それ故、このような場合にフォント補完は役に立たないと考えます。「Unicode が漢字統合しなければよかったのに」と考える人もいるでしょうが、私は少なくとも LaTeX に関する限りはその考えに与するつもりはありません。

ところで upTeX および OTF パッケージは全て中国語用の字体になっているようです。upTeX はよいとして、OTF の方はどう記述したのでしょうか。全て \UTFC で書いた……?

XeTeX で最初の行の丸括弧の空きが不釣り合いになっている件について。これは、XeTeX で日本語用の設定を施して、ヒラギノ等の高品位 OpenType フォントをプロポーショナル幅の状態で用いた場合に起こる現象です。この文書でプロポーショナル組が適切かは措いておくにしても、zxjatype の提供する日本語用句読点スタイルは等幅フォントの使用が前提になっているので、その点に注意してください。

>いままで,むしろuptex の全角約物が気になっていたので,こちらの方が素直です。
upLaTeX の既定設定は日本語に適したものなので、中国語には必ずしも適切ではないと思います。この点は zxjatype の日本語用スタイルも同じです。中国語の組版規則については何の知識も持ち合わせていないのですが、zxjatype を使っているのならば、中国語の部分では xeCJK が提供する本来の(中国語用の)句読点スタイルに戻すという方法が有用だと思います。また暇があれば解説しようと思います。

K.OkadaK.Okada 2011/03/04 16:09 う〜ん,XeTeX で異体字ですか。

おそらく,TeXをもちこんだ連中が在米留学生ということもあって,いまのところ,わたしが関わる場所では「おたがいさま」でとおっています。

もちろん,先のことはわかりません。

>全て \UTFC で書いた

そうです。

齋藤さんは,中国語を書くためのものでないと明言しておられますが,わたしは当初からその禁を破っている。

実際問題としては,規格外フォントが多いのでttfgidにもずいぶんお世話になりました。(現在も)

これだけならエディターのマクロでなんとかなります。


一時期 beamerを乗せるために pdfTeX の一方を中国語にしていたことをおもえば,XeTeX の自由度は大変魅力です。

門外漢の身勝手な思い込みで,さぞご迷惑でしょうが,今後ともこちらの作品には期待しております。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証