platexをやめてxelatexを使おう

以前、platexUTF-8コードで使うための記事 UTF8でLaTeX(pLaTeX)を使う方法 - ラシウラ出張所 - coders を書いたけど、これからはxetexのxelatexを使うようにします。xelatexだと、フォント設定だけで欧文のスタイル上でUTF-8日本語文章からPDFを生成できるようになっています。

xetexのインストール

  • Windows: platexの"TeXインストーラ3"を使っていれば自動で入ります
  • Windows: 欧文ベースのMiKTeX(2.9)でもxelatexが入っていて、インストールした状態のままで日本語も扱えます。こちらは欧米スタンダードなtex構成であり、外部ツールの対応も充実してオススメです。が、逆にascmac.styのような日本でよく使われるパッケージがないので、別の違和感があるかも。
  • ubuntu: 標準の texlive-xetex パッケージを追加します。

メイリオやMS明朝などのプラットフォーム固有のフォントが使えますが、texソースのプラットフォーム依存をなくすようにIPAフォントを使うほうがいいかもしれません。

Windowsは上記リンクから4種入りzipを取ってきてコントロールパネルのフォントからインストールすることでxetexからも使えるようになります。ubuntuはttf-ipafont-gothicとttf-ipafont-minchoパッケージが標準にあるので、それを追加します。

使い方

xelatexコマンドを使います。texファイルをxelatexコマンドに食わせると、(dviやpsではなく)直接PDFファイルが出来上がります

xelatex hello.tex

texソースはUTF-8で書き、欧文と同じスタイルを使います。ただし、和文フォントの設定が必要です。以下一番シンプルな例。

\documentclass{article}

\usepackage{xltxtra}
\setmainfont{IPAPMincho}
\setsansfont{IPAPGothic}
\setmonofont{IPAGothic}
\XeTeXlinebreaklocale "ja"

\begin{document}
こんにちは世界
\end{document}

\XeTeXlinebreaklocale "ja"がないと、空白がなければ長い文章を途中で折り返してくれなくなります。

和文書類向けのカスタマイズ

欧文文書のスタイルの上での日本語文章が乗るので、少し違和感があるかもしれません。たとえばjarticleなどと比べると余白が大きく感じてしまいます。
以下のように余白を調整すると、若干違和感も薄れるかも。

\documentclass[12pt,a4]{article}

\setlength{\textwidth}{17cm}
\setlength{\textheight}{24cm}
\setlength{\leftmargin}{-1cm}
\setlength{\topmargin}{-2cm}
\setlength{\oddsidemargin}{0cm}
\setlength{\evensidemargin}{0cm}

こういう応急処置ではなく、XeLaTeX で日本語する件について [電脳世界の奥底にて]の"よりよい日本語組版を目指して"のパッケージ群を使えば、日本語として見栄えのよい書類が出来るようです。