(a place holder --- not yet completed)
* [[The CJK package for LaTeX:http://cjk.ffii.org/]] [#ue7194c1]
日本語を処理できる TeX としては、
国内ではアスキー社による日本語 pTeX が広く使われていますが、
TeX コンパイラ・DVI ウェア共に独自拡張を施しています。
このため、ツールによっては dvipng のように日本語に対応してないものがあります。

ここでは、コンパイラ等には手を加えず、
マクロで日中韓文字を処理する CJK LaTeX を紹介します。
漢字等がビットマップになることにさえ我慢できれば(?)、
周辺ツールも含めてオリジナルの TeX 環境がそのまま使えます。
縦書や日本語の禁則処理等は苦手ですが、
UTF8 等を用いて中国韓国文字も処理できます。
海外では、英文中にほんの少し漢字を書きたい場合によく使われているようです。
// CJK LaTeX に詳しくない者が書き加えました。間違ってたらすいません。
// CJK は主に台湾で使われています。

CJKパッケージはinputencパッケージなどと同じく、8bitの立った文字のカテゴリー
コードを変更して、多バイト文字のTeXソースを標準的な8bit版のLaTeXでコンパイル
可能にするマクロ集です。当然、pLaTeXでは使用できません。基本的な使い方は
>\usepackage{CJK}~
...~
\begin{CJK}{encoding}{family}~
...~
\end{CJK}

です。エンコーディングにはBig5, CNS11643, GB2312, EUC-JP, Shift-JIS, EUC-KR, 
UTF8などさまざまなものが使えます。以下は代表的なものです。
|名前|ユーザーコード|TFMエンコーディング|
|Big5|Bg5|c00|
|GB2312|GB|c10|
|EUC-JP|JIS|c40|
|Shift JIS|SJIS|c40|
|JISX0212(EUC)|JIS2|c50|
|EUC-KR|KS|c60|
|UTF8|UTF8|c70|
ユーザーコードはTeXのソースコードのencodingに書き込む文字列、
TFMエンコーディングはfdファイルの作成に必要です。
この説明から見当がつくと思いますが、TeXのソースコードに
様々なエンコーディングが混じっていても、問題なくコンパイルできます。
しかし、編集の手間を考えると、複数のエンコーディングを用いて
原稿を用意する時は別ファイルにしておいて、\inputするのが良いでしょう。
特に、Big5とShift JISは2バイト目に'\', '{', '}'と言ったLaTeXにとって
特別な意味を持つ文字が使われることがあるので、プリプロセッサーを
かける必要があるため、別ファイルにするメリットが大きいです。
>\begin{CJK}{JIS}{}~
\input{euc-jp-text1}%~
\CJKenc{Bg5}%~
\ifx\VTeXversion\undefined%~
\immediate\write18{bg5conv < big5-text.raw > big5-text.tex}%~
\fi\input{big5-text}%~
\input{euc-jp-text2}~
\end{CJK}

一方、ファミリーはフォントの指定です。
ここを空白にしておくと、デフォルトのsong(宋體)が使われます。
デフォルトを変更するには\CJKfamilyや\CJKencfamilyを使います。
実際にTeXがアクセスするフォントは
NFSSに従い "(TFMエンコーディング)(ファミリー名).fd" で
指定します。つまり、様々なエンコーディングに対して、ファミリーは共通に
songであっても、UTF8の文書はc70song.fdで指定されたcyberbXX.tfmが、
EUC-JPの文書はc40song.fdで指定されたjsso12XX.tfmが、等々のフォントが使われます。
*インストール [#fb6c9457]
**TeX [#a7fe5a5f]
まず、LaTeXが動作する環境が必要です。その他に
[[CTAN:languages/japanese/CJK/4_6.0/texinput]]
配下のマクロファイルと、更にはTFMファイル(フォントメトリック)がいります。
TFMファイルはTTFフォントがあれば、ttf2tfmで簡単に作成できます。
もし、全角文字しか使わないのであれば、既存のTFMファイルを名前を変えて
コピーすることでもしのげます。
(以下のサンプルに同梱のTFMファイルは事実そのようにして作ったもので、
これを使って、アルファベットの類をタイプセットすると悲惨な結果を招きます。)
自分で作ったTFMファイルを使うにはfdファイルを書く必要もあります。

Shift JISとBig5の原稿を処理するにはプリプロセッサーsjisconv, bg5convも
インストールしなければなりません。
**DVIドライバー [#u7a0009a]
近い将来pdflatexでも正式にCJKパッケージがサポートされる模様ですが、現時点で
CJKパッケージを使って、まともなPDFを作成するにはVTeX(商用)とdvipdfmxだけしか
選択肢がありませんので、ここではdvipdfmxについてのみ扱います。
設定する必要があるのはDVIファイル内のTFMと
PDFファイル内のフォントとの対応だけです。
>背景を説明しておくと、DVIファイルには文字の形に関する情報は
何も入っていません。大きさと位置、そして、それがどのTFMに由来するか
の情報だけしか入っていません。DVIドライバーの仕事はその大きさと位置に
フォントから取得した文字の形に関する情報を当てはめていくことにあります。
従って、TFMとフォントとの対応が必要になってくる訳です。
この対応が与えられていない場合、大抵のDVIドライバーはビットマップフォントを
生成して、それを利用しようとします。
現在のpTeXの場合、ここでビットマップフォントの生成に失敗してエラーで
止まってしまうので、誰でもインストールの失敗に気がつきます。
ところが、CJKパッケージをフルインストールしているとデフォルトの
フォントに対してはビットマップフォントの生成に成功してしまうため、
インストールの失敗に気がつかずに、使い続けてしまうケースが多いようです。
以下のサンプルではいずれも新たなフォント(TFM)を定義して使っていますので、
実フォントの対応についても方法を例示しています。

dvipdfmxでTFMとPDFファイル内のフォントとの対応を指定するファイル(map file)は
多数ありますが、その大部分はdvipdfmと共有なので、dvipdfmでも理解できる
8-bitフォントしか扱えません。そこで、この対応はdvipdfmx専用のマップファイルである
cid-x.mapに書きます。(Details will be added later.)
***実在しないOpenType(CFF, CID-keyed)フォントの場合 [#ef120abe]
dvipdfmxは以下のフォントを「知って」います。
|言語|文字集合|フォント名|
|繁体中文|Adobe-CNS1|MHei-Medium-Acro|
|~|~|MSung-Light-Acro|
|~|~|AdobeMingStd-Light-Acro|
|簡化字中文|Adobe-GB1|STSong-Light-Acro|
|~|~|AdobeSongStd-Light-Acro|
|日本語|Adobe-Japan1|HeiseiMin-W3-Acro|
|~|~|HeiseiKakuGo-W5-Acro|
|~|~|Ryumin-Light|
|~|~|GothicBBB-Medium|
|~|~|KozMinPro-Regular-Acro|
|~|~|KozGoPro-Medium-Acro|
|朝鮮語|Adobe-Korea1|HYGoThic-Medium-Acro|
|~|~|HYSMyeongJo-Medium-Acro|
|~|~|AdobeMyungjoStd-Medium-Acro|

// 「知って」いるフォントのうち,中韓の Adobe... のフォントは,Adobe が付かない部分だけでは ?

***実在するOpenType(CFF, CID-keyed)フォントの場合 [#zc736617]
***TrueTypeフォントによるOpenType(CFF, CID-keyed)偽装 [#odc3338f]
***TrueTypeフォントの場合 [#q2b385eb]
>
 -wオプション
TrueTypeフォントを縦書きフォントとして使う時に使います。

>
 -pオプション
UnicodeのBMP (Basic Multilingual Plane)に入っていないコードポイントを持つ文字に
アクセスするために使用します。
*サンプル [#f920d8cd]
以下のサンプルをコンパイルするには[[CTAN:languages/japanese/CJK/4_6.0/texinput]]
配下のファイルが必要です。サンプルはインストールして使用することも可能なように
アーカイヴされていますが、インストールせずに試してみるには空の作業用ディレクトリ
(フォルダー)を用意し、すべてのファイルをそこにコピーします。更にサンプル内の
dvipdfm/config/cid-x.map-add.*を、インストールせずに試してみるにはcid-x.mapに
改名、インストールして使用する場合はその内容をシステムのcid-x.mapに追加します。

+ &ref(http://oku.edu.mie-u.ac.jp/~okumura/texfaq/archive/CJK-LaTeX-UTF8-noembed.tar.bz2,,,UTF8で書かれたTeXファイルでCJKの各漢字字形を使い分ける。);
+ &ref(http://oku.edu.mie-u.ac.jp/~okumura/texfaq/archive/CJK-LaTeX-localEncoding-vertical.tar.bz2,,,縦書き);
+ &ref(http://oku.edu.mie-u.ac.jp/~okumura/texfaq/archive/CJK-LaTeX-SIP.tar.bz2,,,Supplementary Ideographic Planeの使用);このサンプルからPDFファイルを作るには、最新版のdvipdfmxと商用フォントが必要です。&ref(http://oku.edu.mie-u.ac.jp/~okumura/texfaq/archive/CJK-LaTeX-SIP.pdf,,,作成済みPDF);も置いておきます。

他にどのようなサンプルを作れば分かり易いか、アイデアをお寄せ下さい。