「はじめてのLaTeX」: MiKTeXでXeTeXで日本語を
工学社刊「はじめてのLaTeX」の著者によるサポートページの、関連トピックです。最新のMiKTeXは、「CJK」パッケージを入れただけでは、うまく日本語が入力できません。最も簡単な解決法は、「XeTeX」を使う方法。そして「XeTeX」は最新のMiKTeXだからこそすぐに使えるという、ラッキーなのかアンラッキーなのかわからない話です。 清水 美樹
最近のMiKTeXでは、本書の通りでの日本語での文書作成ができなくなりました
本書で、インストールの簡単なWindows用LaTeX環境として御紹介した「MiKTeX」ですが、最近のバージョンでは、本書の方法で日本語の文書を作成することができなくなりました。理由は、フォントファイルが揃っていないことです。
このことについては、同プロジェクトのヘルプフォーラムでも意見が交わされておりますが、開発者側では、フォントファイルを揃えるより、フォントファイルに依存しない「XeTeX」の使用を推奨する姿勢のようです。
この「XeTeX」は最近のMiKTeXで、最初からパッケージとしてインストールされるようになりました。
そこで、ここでは、MiKTeXでXeTexを使用する方法について、本書の実践にギリギリ必要な内容を、紹介したいと思います。
ただし、本書の内容を今すぐ実践されるのであれば、申し訳ありませんがMiKTeXではなく、本書28ページからの「日本語LaTeX環境の構築」を実践していただきたいと思います。
なお、その「日本語LaTeX環境」として御紹介した「W32TeX」の最新の環境を構築する方法を、別ページで御紹介しています。本書に述べた内容とあまり変わりありませんが、ファイルをみなさんでダウンロードすることになります。
「W32TeX」の「32」とは、32bit環境を示しますが、64bitOS上でも特に問題なく動きます。
XeTeXで日本語を使用するには
XeTeXとは
XeTeXとは、「TeX」という最も基本的な文書作成システムに、「パッケージ」や「コマンド」を追加して、我々がTeXファイルを書きやすいようにしてくれたシステムです。
コマンドプロンプトに「tex」とか「latex 」と入力してもわかってくれないTeXファイルの内容が、「xelatex(xetexではなくxelatexなので気をつけましょう)」と入力することによって、用意してあるコマンドを解釈し、パッケージから作業内容を読み取って、文書を作ってくれるのです。
なぜフォントファイルに依存しないのか
すみません。「フォントファイルに依存しない」というのは実はウソです。いえ、真っ赤なウソではなくて、「OSのフォント情報を使用する」のです。日本語の解説書を頼りに、日本語を使用したいと思う方は、たいていはWindowsも日本語版をお使いでしょう。とすれば、Windowsの日本語フォントファイルがあるはずです。
Windowsでフォントの情報を見るには、「c:\Windows\Fonts」フォルダを開けます。
図1 Windowsの「フォント」フォルダ
ただし、これは普通のフォルダではありません。開くのは「コントロールパネル」の「フォント」です。とはいえ、あとで行うように、フォントファイルをドラッグドロップして操作できます。仮想フォルダ、と言ったところでしょうか。
図2 開くのは「コントロールパネル」のフォント」
とにかく、それを利用するので、「MiKTeXさん、日本語のフォントパッケージをレポジトリに置いてください」と御願いするよりも、自分でどこかからフォントを持って来てCJKの設定ファイルを書き直すよりも、ずっと簡単です。
これまでのLaTeXの書き方を全部修正か?
その必要はありません。実は、XeTeXにはフォント以外にもいろいろ便利な独自のコマンドがあるので、それを余さず利用しようとすれば、全修正にもなりかねません。でも、このページでは、フォントの部分だけXeTeXの独自システムを使います。他は、本書で書いたコマンドを「LaTeX」と共通の作業で処理してくれます。
ファイルはUTF-8で保存する
ひとつ注意があります。本書で御紹介した「CJKパッケージ」を使う場合は、TeXファイルは「EUC-JP」で保存するのが最も素直な道でした。今度は「UTF-8」で保存するのが、最も素直な道です。
そもそもMiKTeXをインストールするには
最新のMiKTeXをインストールする方法は、こちらを御覧下さい。。
では、さっそくXeTeX用のTeXファイルを書いて行きましょう。
最も簡単な日本語文書「hellojp」
作業環境と作業方法
本書47ページ第2-9節にもある「hellojp.tex」です・・・とだけ書いても不親切ですから、まずどのように文書作成環境を整えるかを簡単に説明しましょう。
たとえば、「latexwork」という作業フォルダを作成します。コマンドプロンプトから移動し易いように、ホームフォルダのすぐ下に作るのがよいと思います。
そこに、さらに「hellojp」というフォルダを作成します。
その中に、「hellojp.tex」というファイルを作成します。「新規テキスト.txt」みたいなファイルを作成しておいて、名前も拡張子も変更してしまえばいいのです。
コマンドプロンプトを起動しますと、ホームフォルダで作業する設定になっていますから、実行例1のコマンドで、「hellojp」フォルダまで移動します。
実行例1 「hellojp」フォルダへ移動
では、コマンドプロンプトウィンドウはそのままにして、ファイルを編集します。
XeTeX用の「hellojp.tex」の書き方
単刀直入に、リスト1が、最も簡単な書き方です。
リスト1 hellojp.tex
\documentclass{article}
\usepackage{fontspec}
\begin{document}
\fontspec{MS Gothic}
では皆様 \LaTeX と参りましょうか
\end{document}
ブラウザによっては、「¥(円マーク)」が「\(バックスラッシュ)」に見えているかも知れません。半角でしたら、どちらでも構いません。
以下の部分は通常のLaTeXと同じ
リスト2の部分は、本書でも解説している「通常のLaTeX」用の書き方と同じです。
リスト2 通常のLaTeXと変わらない書き方
\documentclass{article}
\begin{document}
では皆様 \LaTeX と参りましょうか
\end{document}
「\documentclass{article}」で、これが文書であることを定義します。そして、「\begin{document}」と「\end{document}」で、表示したい内容を挟みます。
「\LaTeX」と書くと、この部分は、「LaTeX」のロゴマークになります。ただし、前後は半角スペースを入れないとエラーになるので気をつけましょう。
「fontspec」パッケージを使う
XeTeX用のパッケージである「fontspec」を用いる宣言を書きます。それが、「\usepackage{fontspec}」です。このfontspecパッケージは必須というのではありませんが、導入しないとフォントの指定は大変面倒になります。
フォント名を指定する
「\fontspec{MS Gothic}」で、フォント名「MS Gothic」を指定しています。Windowsのフォント「MSゴシック」です。
「MS ゴシック」の名前を「MS Gothic」と書く根拠はどこにあるのか、実はこれ、筆者も長い事探しているのですが、図2に示したフォントフォルダの中の、ファイルの情報を見ても探せません。こう書くとうまくいくので、書いています。
実は、「MSゴシック」のファイルは、図3のようなアイコンです。「仮想」ファイルなので、システムでは拡張子を表示させる設定にしていても、ここでは表示されません。
図3 「MS ゴシック」という、フォントの「仮想ファイル」
ここに「MS ゴシック」と書いてありますから、これをそっくり書いても有効です。ただし、MもSも間の空白も、全角です。「\fontspec{MS ゴシック}」になります。
なお、「\fontspec{...}」は、「\begin{document}」の「後」に、表示する文書と一緒に書き込まないと、フォントの指定を読み取ってくれないようです。
書き出してみよう
実行例1で、「hellojp」フォルダに移動済みの状態で、実行例2を打ちます。
実行例2 「xelatex」で文書作成
必要なパッケージを自動インストール
まず、図4のように、「This is XeTeX...」と応答が来ます。
図4 実行例1, 実行例2を打って、応答が来た所
そのあと処理の結果が次々に出力されますが、途中で図5のようなウィンドウが現れます。これは、必要なファイルがないので、それを含むパッケージを自動インストールしてあげましょうかという確認ウィンドウです。「Install」を選びます。
図5 追加パッケージをインストールするかときかれる
このような追加インストールは、図5を含めて、表1のように3回です。
必要なファイル | パッケージ |
tex\latex\l3kernel\expl3.sty | l3kernel |
tex\latex\l3packages\xparse\xparse.sty | xparse |
tex\latex\tipa\t3enc.def | l3packages |
最後はPDFに書き出す
MiKTeXのXeTeXは、結果をPDFに書き出します。図6のようなメッセージが出たら、とにかく書き出しは成功です。
図6 とにかくPDFに書き出した
「DVIファイルでないとダメ」・・・という場合は困りますが、最近は書類もPDFで出してくださいというところが多いので、まあこれで我慢です。
書き出した結果は
「hellojp」フォルダを見てみましょう。「hellojp.tex」フォルダに加えて、いくつかの中間生成物やログファイル、そして「hellojp.pdf」ができています。これを開いてみましょう。
図7 「hellojp.tex」ファイルと同じ場所にできた生成物
図8 ゴシック体で日本語が表示された。そしてLaTeXのロゴも
明朝体で出力するには
なぜか壊れている「MS明朝」
ゴシック体もいいですが、明朝のほうがいい場合もありますね。しかし、なぜかMS明朝のフォントは、きちんと表示されず文字化けしてしまいます。
そこで、他の明朝フォントを入手しましょう。明朝とゴシックでフォントファミリーが異なるのも変ですから、ゴシックも一緒に入手しましょう。
オープンソースの「IPAフォント」をもらいに行こう
もちろん、オープンソース。セキュリティ情報でおなじみの「IPA(独立行政法人 情報処理推進機構)」がオープンソース・ライセンスで提供してくれている「IPAフォント」です。
「IPAライセンス」という独自のライセンスですが、「個人のパソコンの中で、学習目的で使う」だけなら、問題ないと思われます。
IPAフォントの入手
「IPAフォント」の入手は、「オープンソース情報データベース」の以下のダウンロードサイトで可能です。
http://ossipedia.ipa.go.jp/ipafont/index.html
図10 「IPAフォント」のダウンロードサイトの外観
画面を下にスクロールすると、まず「IPAフォントのライセンス」への同意を求められます。上記のように、「自分で学習目的で使う」ということですから了解します。
ページが移動しますので、「IPAフォント(ver.003...かアップデート次第で、それ以降)ダウンロード」という欄を探します。
ダウンロードできるのは、「TTC」及び「TTF」形式のというファイルです。ここでは、Windowsがシステムのフォントに採用している形式の、「TTC」ファイルを使うことにしましょう。
図11「TTC」のほうを選択する
図11でダウンロードするのは、「IPAMTTC....zip」及び「IPAGTTC....zip」というファイルです。「...」にはバージョン番号が入ります。
図12 ダウンロードされたZip形式のファイル
フォントのインストール
図12のZipファイルをそれぞれ展開して、フォルダの中から「ipag.ttc」「ipam.ttc」というファイルを探します。
図13 Zipファイルを展開して得られる「TTC」ファイル
これを右クリックして「インストール」を選ぶのが最も確実でしょう。
図14 右クリックで「インストール」
図15 「インストール」されたIPAフォント
ファイルは二つしかインストールしていないのに、図5では「フォント」の仮想フォルダに4つのファイルが見えます。これは、「TTC」ファイルだからです。「TTC」とは複数の「TTF」ファイル(に書かれている情報)をまとめてひとつのファイルにしたものだからです。
別のファイルを作ろう
では、明朝体で出力するファイルを作りましょう。ただし、「hellojp.tex」はせっかく作った成功ファイルですから、別に作りましょう。
「hellojp」フォルダを、同じ位置にコピーします。フォルダ名を、「hellomincho」に変えます。
フォルダの中の「hellojp.tex」以外のファイルを全て削除し、残った「hellojp.tex」の名前を「hellomincho.tex」に変えます。
フォントをIPA明朝に指定
変更するのは、リスト1中の「\fontspec{...}」の中身だけです。でも全部表示しますとリスト2のようになります。フォント名は「IPA Mincho」ではダメでした(フォントがないという応答)。図15に書いてある「フォント名」の通りに入れるのがよいようです。
リスト2 hellomincho.tex
\documentclass{article}
\usepackage{fontspec}
\begin{document}
\fontspec{IPA明朝}
では皆様 \LaTeX と参りましょうか
\end{document}
TeXファイルのあるフォルダに移動してから出力
「hellomincho」フォルダに移動してから、出力してみましょう。
実行例3は、「hellojp」フォルダから、同じ階層の「hellomincho」フォルダに移動するため「../」で一度親フォルダにぬけています。
リスト2 hellomincho.tex
cd ../hellomincho
xelatex hellomincho
「hellomincho.tex」は図16のように出力されます。
図16 明朝体で出力された
数学表現も大丈夫
フォントの指定はXeTeX独特ですが、同じ文書の中に、本書でも書いた数学表現を書きこめば、ちゃんと表示されます。リスト3を出力してみましょう。変数「a」はローマンのイタリック、単位「cm」はローマンの直立体で表示されます。
リスト3 hellomath.tex
\documentclass{article}
\usepackage{fontspec}
\begin{document}
\fontspec{IPA明朝}
一辺の長さを $a\mathrm{cm}$ とします
\end{document}
図17 数式表現も反映される
最後の難関「フリガナ」
すごい人がいるものです
最後に、心配なのは「フリガナはふれるのか」です。本書でも紹介しましたように、「CJKパッケージ」には「ruby(ルビ、フリガナ)」というサブパッケージがついています。XeTeXではそのようなパッケージはあるのでしょうか?
実は、「CJKのrubyパッケージを、XeTeX用に書き直してしまう」という方法を教えてくれている人がいるのです。すごいものです。「TeXユーザーグループ」のメーリングリストにある、以下のやりとりです。
http://tug.org/pipermail/xetex/2006-July/004538.html
どのようにするかを、日本語で解説しましょう。
「CJK」パッケージをダウンロードする
MiKTeXの「パッケージマネージャ」を使って、「CJK」パッケージをダウンロードします。ちょうど、「最新版MiKTeXのインストールと使用」で、「CJK」パッケージの導入を例に「パッケージマネージャ」の使用方を説明してありますので、そちらを参照してください。インストールするのは、「cjk」という名前のパッケージのみで結構です。「cjkfont」は要りません。
図18 パッケージマネージャで「cjk」をインストール
「ruby」パッケージの「ruby.sty」を見つける
インストールが終わったら、「MiKTeX」をインストールしたフォルダを開きます。「最新版MiKTeXのインストールと使用」の解説では、自分のホームフォルダのすぐ下に「MiKTeX」という名前でインストールすることになっています。これから行うような作業は、自分のホームフォルダの中のものに対して行った方がやりやすいでしょう。
「MiKTeX」を開けたら、「tex」「latex」とフォルダを開いて行きます。文字の出力に関するパッケージはほとんど、そこに入っていると考えてよいでしょう。
図19 「MiKTeX」-「tex」と開いて「latex」フォルダを見つける
図20 「latex」フォルダを開いた所
図20では、赤い枠で囲んだ「ruby.sty」と、青い枠で囲んだ「CJK.sty」にも注目してください。あとで、その内容を利用します。
「ruby.sty」を複製して「xeruby.sty」にする
見つけた「ruby.sty」を複製して、名前を新しくします。たとえば「xeruby.sty」にしましょう。場所は、今の所「ruby.sty」 と同じ場所にしておきます。あとで移動します。
「xeruby.sty」を、テキストエディタで開きます。
パッケージの名前を変える
まず、最初のほうにあるリスト4の「ruby」というパッケージ名定義を「xeruby」に変更します。
リスト4 パッケージ名が「ruby」となっているので「xeruby」に変更
\ProvidesPackage{ruby}....
->
\ProvidesPackage{xeruby}....
図21 最初のほうに書かれている「パッケージ名」を変更
CJKを読み込まないようにする
このパッケージは、このままでは「CJK」を読みに行きますから、リスト5の部分を削除します。もとの「ruby.sty」がありますから、物理的に消してしまって構いません。場所は、リスト4のすぐ下です。
リスト5 これを削除して、「CJK」を読みに行かないようにする
\RequirePackage{CJK}....
図22 「パッケージ名(まだ直していない)」の記述のすぐ下にある
CJK.styに書いてある機能をコピーする
「ruby.sty」は「CJK.sty」の内容を読んで機能しますが、「xeruby.sty」で必要とする機能はそこに書かれている中の一カ所だけです。そこで、それを「CJK.sty」からコピーして、「xeruby.sty」に直接書き込んでしまえば、「xeruby.sty」単体でフリガナの機能を発揮することができます。
図20で場所をチェックしておいた「CJK.sty」を開きます。そして、リスト6の場所を探します。
リスト6 「CJK.sty」の中から見つける
%CJKglue defines the strechability of CJK characters.
\newcommand{\CJKblue}{\hskip \z@ \@plus .08\baselineskip}
リスト6の最初の行は機能に関与しない「コメント」ですが、一緒にコピーするとあとでわかりやすいでしょう。「CJKglue」という設定だ、と覚えておきます。
図23 「CJK.sty」にある「CJKglue」に関する記述
「xeruby.sty」のどこにコピーしても構いませんが、「\newcommand」で始まる記述が固まっているところに置いた方が整理しやすいでしょう。
図24 「xeruby.sty」の「\newcommand」の固まっているところにコピー
フリガナのふり位置を調整
実は、今の設定では、フリガナが少し本文に近づきすぎると筆者は思います。フリガナと本文の位置関係を調整するのは、「ruby.sty」内の、リスト7の記述です。
図24をコピーした近くの、「\newcommand」の固まっているところの一つです。「rubysep」という「コマンド」だと覚えておくとよいでしょう。
リスト7 フリガナと本文の位置を調整する記述
\newcommand{\rubysep}{-0.5ex}
図25 「\newcommand」の固まっている中の「rubysep」
リスト7の「-0.5ex」を「-0.2ex」くらいに、「絶対値を小さく」しておくとよいと思います。
これで「ruby.sty」の編集は終わりです。
「専用フォルダ」を作って、「ruby.sty」を置く
「xeruby.sty」を、「パッケージ」としてMiKTeXに読み込ませるには、まず「読み込ませるパッケージ専用のフォルダ」を作ります。
ホームフォルダに「MiKTeXLocal」などの名前でフォルダを作ります。「MiKTeX」の中に作ったら見た目は綺麗かも知れませんが、システムがもともと読み込む場所に余計なフォルダやファイルを作らないほうがよいようです。
図26 「MiKTeX」フォルダと同位置に作成した「MiKTeXLocal」
この「MiKTeXLocal」フォルダの中に、さらに「tex」-「latex」-「misc」というフォルダを作ります。「MiKTeX」フォルダの中身と同じ構成を、局所的に作るのです。そこに、今作成した「xeruby.sty」ファイルを移動します。
「専用フォルダ」の場所をMiKTeXに登録する
この「MiKTeXLocal」フォルダの場所を、MiKTeXに登録します。それには、スタートメニューで、「MiKTeX2.9」のさらに「Maintenance」を開きます。「Update」や「Package Manager」に並んで「Setting」という項目がありますのでクリックします。
図27 スタートメニューで「Settings」を選ぶ
図28のような「MiKTeX Options」ウィンドウが現れますので、「Roots」タブをクリックします。最初は何も登録されていないでしょう。「Add...」ボタンをクリックします。
図28 「Roots」タブの画面
フォルダ選択画面で、「MiKTeXLocal」を探して選択します。
図29 「MiKTeXLocal」フォルダを選択
図30 「Roots」に登録された
図30のように登録が完了したら、「OK」ボタンでウィンドウを閉じます。
フリガナを出力させてみよう
リスト8のような「ruby.tex」から、PDFを出力させてみましょう。
リスト8 「ruby.tex」
\documentclass{article}
\usepackage{fontspec}
\usepackage{xeruby}
\begin{document}
\fontspec{IPA明朝}
では\ruby{皆様}{みなさま} \LaTeX と\ruby{参}{まい}りましょうか
\end{document}
リスト8では、「\usepackage」コマンドが二つに増えています。増えたのは、「\usepackage{xeruby}」です。ルビをふるためのコマンド「\ruby」は、本書でも御紹介した「CJK」でのコマンドと同じです。
図31 フリガナが出力された
XeTeXを使えば、日本語がかなりいい感じで出力されることがわかりました。まだ本書の全てをXeTeXで試してはいませんが、追加情報がありましたら更新します。
MiKTeX2.9のインストールと使用法
W32TeXの最新の環境を整える
本書のサポートページへ
このサイトのトップへ