Re: タイ語とCJKパッケージ / PC-UNIX版(Re: ThaiLaTeX について)

名前: 安田
日時: 2005-12-16 02:19:37
IPアドレス: 210.159.229.*

\begin{CJK}{UTF8}{tcmi}% リョービ明朝 >>39906 栗山さん、こんばんは。 CJK タイ語の単語分割の問題と、書体変更のカスタマイズについて その後いろいろ試してみました状況をまとめますね。 ●タイ語単語分割不正の件 39789 で書きました、CJK タイ語の問題: >>(1)CJK パッケージを使う方法(utf-8) >... >しかし以下問題があり、タイ語の正格な組版には向かないと考えます。 >- タイ語は swath で挿入したブレークで改行されない場合がある。 > (Cyberbit フォントの問題?) 原因がわかりましたので報告します。 (1)原因 CJK 環境でタイ語を記述すると、 \CJKglue という コントロールシーケンスで、要するにグルーが文字ごとに 挿入される仕様になっています。 このためどの文字のあとでもペナルティ値によっては改行 されてしまう結果になっていたようです。 (2)対策 \CJKglue を無効化すればよいということになります。 すると \wbr のタイ語単語分割協会の定義が有効になります。 日本語を記述するときは \CJKglue はもとの定義で必要です。 {\selectlanguage{thaicjk}% \def\CJKglue{\relax}% 無効化 \def\wbr{\hskip0pt plus0.6pt minus0.6pt\relax}% タイ語{\wbr}タイ語... ...} ●CJK パッケージの日中韓書体の問題の件 (Cyberbitでしか組まれない) UTF8 で記述する場合でも、中国語に関しては、フォント ファミリーを指定すれば Arphic フォントで組めることが 分かりました。 韓国語はまだ悩んでいます。 \begin{CJK}{UTF8}{gbsn}% 簡体字ノーマル ... \begin{CJK}{UTF8}{gkai}% 簡体字階書体 ... \begin{CJK}{UTF8}{bsmi}% 繁体字ノーマル ... \begin{CJK}{UTF8}{bkai}% 繁体字階書体 ... ●日本語フォントについて 新たに ttf 和文フォントを追加してみました。 fd ファイルを新しく定義し、ttfonts.map、cid-x.map に そのフォントを指定するわけです。 ttf2pk で PK に変換する方法です。 Cyberbit 以外に、好みの和文の明朝とゴシックを使い分け できるようになります。 私は手元にあるリョービの明朝(tchomil.ttc)とゴシック (tcgothb.ttc)の TrueType フォントを追加してみました。 このフォントは大昔購入した FreeBSD の商用パッケージに 含まれていたものです。 同じような考え方で追加できると思います。 簡単にレシピを書いておきます。 1.フォントを TeX パスに格納します。 # mkdir -p $TEXDIR/fonts/truetype/ryobi # cp tchomil.ttc tcgothb.ttc $TEXDIR/fonts/truetype/ryobi 2.フォントのエンコーディングを調べる。 freetype1 に付属する ftdump コマンドでフォントの エンコーディングを調べます。 この情報は ttfonts.map、cid-x.map 指定で必要です。 % ftdump tchomil.ttc ... character map encodings -----------------------------------------.... There are 2 encodings: encoding 0: Apple Roman encoding 1: Windows Unicode となって Unicode であると知れます。 3.fd ファイルを準備します。 例(リョービ明朝): c70tcmi.fd \def\fileversion{4.6.0} \def\filedate{2005/12/15} \ProvidesFile{c70tcmi.fd}[\filedate\space\fileversion] % character set: Unicode U+0080 - U+FFFD % font encoding: Unicode \DeclareFontFamily{C70}{tcmi}{\hyphenchar \font\m@ne} \DeclareFontShape{C70}{tcmi}{m}{n}{<-> CJK * tcmi}{} \DeclareFontShape{C70}{tcmi}{bx}{n}{<-> CJKb * tcmi}{\CJKbold} \endinput C70 は UTF8 のときに選択されるエンコーディングです。 tcmi は適当に一意の名前で付けます。 同じようにリョービゴシック用 c70tcgo.ffd も作ります。 できたら CJK パッケージのディレクトリにでも格納します。 mktexlsr を忘れずに。 4.ttfonts.map に追加登録 Unicode なので @Unicode@ を付けます。 tcmi@Unicode@ tchomil.ttc tcgo@Unicode@ tcgothb.ttc 5.cid-x.map に追加登録 tcmi unicode tchomil.ttc tcgo unicode tcgothb.ttc 6.TFM を作成します。 # mkdir -p $TEXDIR/fonts/tfm/ryobi # cd $TEXDIR/fonts/tfm/ryobi # ttf2tfm tchomil.ttc -q tcmi@Unicode@ # ttf2tfm tcgothb.ttc -q tcgo@Unicode@ # mktexlsr 7.フォントマップを更新します。 # updmap 以上で環境はできあがりです。 使うときは \begin{CJK}{UTF8}{tcmi}% リョービ明朝 ... \begin{CJK}{UTF8}{tcgo}% リョービゴシック ... で組めます。 プリアンブルで \newcommand{\tcjp}[2][tcmi]% {\begin{CJK}{UTF8}{#1}#2\end{CJK}\relax}% とでもしておくと、 \tcjp[tcgo]{ここはゴシックで} みたいにラクに入力できると思います。 それでは。

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)