CJKパッケージとCyberbitフォントを用いた文書の作成

Main menu

CJKパッケージのインストールにおいて,既にCJKパッケージについて簡単に説明しました.ここでは,UTF-8エンコーディングされた日中韓混在の文書を,Cyberbitフォントを用いて組版する方法を見てみましょう.

既にTeX/LaTeXの基本システムがインストールされているものとします.CJKパッケージに関し,日本語で読むことのできる情報としてはTeX Wikiの記事があります.特にフォント設定を自前で行なう方法が記述されており,有用です.

以前に書いた,CJKパッケージで多言語を使うTeXで朝鮮語を使う+PDFの作成などの内容を元に,さらに改訂を加えてあります.今後はこの文書を参照ください.

フォントのダウンロード

CyberbitフォントはBitstream社のフォントですが,Bitstream社のサイトからはダウンロードすることができません.こちらのFTPサイトより入手してください.3つのファイル(Cyberbit.ZIP,CyberCJK.Zip,Cyberbase.Zip)がありますが,Cyberbit.ZIPだけでかまいません.

圧縮されているので展開し,出てきたCyberbit.ttfというフォントをWindowsの上でインストールしておきます.

▲ top

ttf2pkのインストール

CJKパッケージからCyberbitフォントを利用するために,ttf2pkというコマンドをインストールする必要があります.これはTrueTypeフォントをPKという形式に変換するものです.

なお,ttf2pkの使用方法などについては,ttf2pkと補助漢字が参考になります.上述のページでUnicodeの文字をmsminchoを使って表示する方法が示されていますが,私のページでも,同様な方法を用いて,中期朝鮮語のTeX文書を作成します.

LaTeXの基本システムをインストールする際に,「標準インストール」までのファイルをインストールしたと思われます.ttf2pkは「フルインストール」に入っていますので,それだけダウンロードしてください.ダウンロードしたら,先にLaTeXをインストールしたときと同じディレクトリに展開します.例えば,C:\usr\localにインストールした場合は,同じディレクトリに展開すればOKです.

TFMファイルの作成

今度は,TrueTypeフォントからTFM(フォントメトリックファイル)を作成します.まずは$TEXMF\fonts\map\ttf2pkにあるttfonts.mapの記述を確認します.ttfonts.mapに以下の記述があるか確認し,ない場合には追加しておいてください.

cyberb@Unicode@ cyberbit.ttf

次に,ttf2tfmを用いてCyberbitフォントのTFMファイルを作成します.$TEXMFまたは$TEXMF-LOCALfonts\tfm\ttf2pk以下にCyberbit(名前は何でもかまいません)というディレクトリを作り,そのディレクトリで以下を実行します.

> ttf2tfm cyberbit.ttf -q cyberb@Unicode@

しばらくたって処理が終了すると,Cyberbitディレクトリにcyberb??.tfmといった大量のファイルが作成されているはずです(??は00からffまでの16進数).

また,dvipdfm(x)などでフォントを利用するための準備をしておきます.$TEXMF\fonts\map\dvipdfm\baseにあるcid-x.mapを探し,末尾に以下の記述があれば行頭のコメントを外し,なければ記述を加えます.

cyberb@Unicode@	unicode	cyberbit

ここまで済んだら,mktexlsrを実行しておきます.

もし$TEXMF-LOCALなど別の場所にファイルを置いている場合には,dvioutでプレビューする際の設定もしておく必要があるでしょう.例えば,Optionのうち,Fontの設定でTEXROOTに$TEXMF-LOCALへのパスを加えておきます.

▲ top

例題の準備と処理

次に,TeXソースファイルを準備します.とりあえず,次のようなファイルを作り,UTF-8エンコーディングで保存しましょう.ファイル名はcjk.texとします.EmEditorなどで作成する場合には,保存するときに「Unicodeサイン(BOM)を付ける」のチェックを外してください.

\documentclass{article}
\usepackage{CJK}

\begin{document}
\begin{CJK}{UTF8}{}
こんにちは.

안녕하세요?

你好吗?
\end{CJK}
\end{document}

上の例では日中韓の言語をUTF-8エンコーディングで処理するため,\begin{CJK}{UTF8}{}というような環境の記述になっています.このファイルをLaTeXで処理します.

$ latex cjk.tex 
This is TeX, Version 3.141592 (Web2C 7.5.5)
(./cjk.tex
LaTeX2e <2003/12/01>
Babel  and hyphenation patterns for english, usenglishmax, ukenglish, ba
sque, bulgarian, coptic, welsh, czech, slovak, german, ngerman, danish, spanish
, catalan, estonian, finnish, french, irish, polygreek, monogreek, ancientgreek
, croatian, hungarian, interlingua, ibycus, bahasa, icelandic, italian, latin, 
mongolian, dutch, norsk, polish, portuguese, pinyin, romanian, russian, samin, 
slovene, usorbian, serbian, swedish, turkish, ukrainian, dumylang, nohyphenatio
n, loaded.
(f:/cygwin/usr/local/share/texmf/tex/latex/base/article.cls
Document Class: article 2004/02/16 v1.4f Standard LaTeX document class
(f:/cygwin/usr/local/share/texmf/tex/latex/base/size10.clo))
(f:/cygwin/usr/local/share/texmf-local/tex/latex/cjk/CJK.sty
(f:/cygwin/usr/local/share/texmf-local/tex/latex/cjk/mule/MULEenc.sty)
(f:/cygwin/usr/local/share/texmf-local/tex/latex/cjk/CJK.enc)) (./cjk.aux)
(f:/cygwin/usr/local/share/texmf-local/tex/latex/cjk/utf8/UTF8.bdg)
(f:/cygwin/usr/local/share/texmf-local/tex/latex/cjk/utf8/UTF8.enc)
(f:/cygwin/usr/local/share/texmf-local/tex/latex/cjk/utf8/UTF8.chr)
(f:/cygwin/usr/local/share/texmf-local/tex/latex/cjk/utf8/c70song.fd) [1]
(./cjk.aux) )
Output written on cjk.dvi (1 page, 740 bytes).
Transcript written on cjk.log.

できあがったdviファイルを,dvioutでプレビューできたでしょうか?問題がなければ,dvipdfmxを使ってPDFにしてみましょう.

CJK demo右の図のように,Cyberbitフォントが埋め込まれたPDFができたはずです.

▲ top

まとめ

Cyberbitフォントを用いてUTF-8エンコーディングの文書を処理すれば,単一のフォントによって統一のとれた文書ができあがります.それぞれのエンコーディングについて環境を記述する必要がないので,手間がかかりません.

しかし,これではCyberbitフォントに含まれていない文字,例えば古語のハングルなどを処理することができず,また文字によっては字形がいまいちだったりする,というような問題点があります.文書全体としてはCyberbitを用いるが,ある言語,ある部分だけは別のフォントを用いたいということもあるでしょう.部分的にフォントを変えたい,というような場合は中期朝鮮語PDFの作成を参考にしてください.

次は,個別の言語ごとにCJKパッケージで組版する方法を見てみます.

▲ top

Miscellaneous

Valid HTML 4.01!

Contact

Please e-mail to wigyo at Hotmail dot com