もともとは MacOSX 用だったらしいですが最近 Linux に移植され Win でも 動くらしいです。最大の特徴はユニコード対応と(MacOSX の?)システムフォントを 使える,という点だと思います。 逆にいうとシステム依存な訳で根本的に TeX とは考えが違うような気もします。 Linux の場合システムフォントというより fc-list (fontconfig) で表示される フォントが使える,という状況のようです。ここでは Debian/GNU Linux での 話に限定しています。
XeTeX と LuaTeX の関係も含めまとめています。
\usepackage[xCJKecglue=true,CheckSingle=true,
AllowBreakBetweenPuncts=true]{xeCJK}
\NewDocumentCommand{\jaecglue}{}
{\hspace{0.25em plus 0.15em minus 0.05em}}
\xeCJKsetup{CJKecglue=\jaecglue}
\setCJKmainfont[BoldFont=IPAGothic]{IPAMincho}
\setCJKsansfont{IPAGothic}
\setCJKmonofont{IPAGothic}
また色々進歩、改良されてるようで以下のような状況らしい。以前の常識とかなり違ってるので注意。
平成22年3月8日(月):
日本語環境の改善
xeCJK
パッケージを用いると煩わしかった「行末の改行が空白になってしまう不具合」が
改善される。使い方は
\usepackage{xeCJK}
\setCJKmainfont[BoldFont={IPAGothic}]{IPAMincho}
のようにするだけ。
サンプル
xe-vert.tex と PDF.
数式フォントが表示されないことがある。色々あるのかも分りませんが マップファイルが原因なことがあるようです。Debian だと dvipdfmx の設定ファイルに依存してるっぽいのが気になりますが
** WARNING ** This .map file looks like a dvips format fontmap file. ** WARNING ** -- Current input buffer is: ASCII ASCIIのようなメッセージが流れるようなら多分マップファイルが原因でしょう。 デバッグするには "xetex -no-pdf myfile.tex" "xdvipdfmx -v myfile.xdv" してみるのが第一歩。
- dvipdfmx.cfg を xetex (or xdvipdfmx) が見付けられる必要があります。 もし適当なディレクトリになければ,/etc/texmf/dvipdfm/dvipdfmx.cfg があるのを確認し,例えば /usr/share/texmf/dvipdfmx/dvipdfmx.cfg などにリンクしておきます。
- dvipdfmx.cfg の下の方にあるマップファイルの設定で dvipdfm.map, cid-x.map を有効にしてある必要があるようです。 (pdftex.map, psfonts.map はコメントが良いようです。)
日本語環境の為の最低限の設定。
\usepackage{fontspec} %\setromanfont[BoldFont={Sazanami Gothic}]{Sazanami Mincho} \setromanfont[BoldFont={IPAGothic}]{IPAMincho} \XeTeXlinebreaklocale "ja" % actually, even "en" will work for default CJK breaking \XeTeXlinebreakskip = 0pt plus 1pt % allow slight stretchability for justification \renewcommand{\baselinestretch}{1.2}使えるフォントを \setromanfont で設定します。\XeTeXlinebreaklocale を設定しないと改行が全然まともにされないようです。 \XeTeXlinebreakskip と \baselinestretch は好みで適当にすれば良いのでしょう。 これでかなり普通に日本語が使えますが行末の改行が空白に変換されてしまい 日本語の場合意図しない空白がパラパラ入ってしまうので行末に % を書いておく ことになります。実用にしてるとちょっと面倒。縦組みできることが判明。ただし OTF フォントに限る。 また XeTeX 0.997 (revision 548), xdvipdfmx 0.5 (revision 108) を svn でゲットしてインストールしておく必要があります。 ここでは(一応フリー?で入手が容易な)Acrobat7 の Kozuka フォントの場合。
こんな感じで少なくとも一部を縦組みにはできる。もちろん改行,改ページなど まで考えるとそれなりに細工はいるだろうけど。 また OTF フォントにすると行末の改行が空白になってしまう不具合も 無いように見える。
- \fontspec[Mapping=tex-text,RawFeature=vertical,Script=CJK]{Kozuka Mincho Pro-VI}
- \rotatebox{-90}{縦組みにする文章}
今のところ効果が良く理解できてないのですが中国語用らしい zhspacing なるパッケージが開発されてるようです。禁則処理の類が改良されるのかも。
Debian/unstable 用の XeTeX Packages
texlive-xetex が新たにパッケージングされた(平成19年3月22日頃)ので 簡単に使えるようになりました。ただし平成19年6月時点で testing の TeXLive は壊れてるので unstable な環境が良いでしょう。
付記: 以前作成していた xetex, xdvipdfmx, xdvipdfmx-data は不要(ハッキリ言うと 邪魔 ^^;)になったので削除しました。 このサイトの非公式パッケージをインストールしてる方は安全の為 texlive-xetex をインストールする前に xetex, xdvipdfmx, xdvipdfmx-data を手動で --purge して texlive-xetex をインストールしませう。Debian/unstable 用のサンプルについて
XeTeX_doc.zip を上のページからダウンロードして展開したら得られる CJKsample.tex, Arabic.tex, Hindi.tex を(少し修正して)コンパイルして みました。オリジナルの CJKsample.tex は CJK といいながら Chinese, Japanes と Thai で何故か Korean/Hangul が無いので Ksample.tex を作ってみました。 その後 Amharic.tex, CM-test.tex, PicFileLSample.ltx, transforms.tex 追加。
- 日本語は IPA フォント,あるいは ttf-sazanami-{mincho|gothic} (ttf-kochi-{mincho|gothic} でも可能だけど既に古い)をインストールして \setromanfont[BoldFont={IPAGothic}]{IPAMincho}など。フォント名は fc-list | grep Minchoなどで確認。
- 中国語は ttf-arphic-ukai と ttf-arphic-uming をインストールして フォントに "AR PL ZenKai Uni" や "AR PL ShanHeiSun Uni" を指定するようです。
- ハングルは ttf-baekmuk をインストールして フォントに Baekmuk Batang(, Baekmuk Gulim, Baekmuk Dotum, Baekmuk Headline) を指定するようです。
- タイ語は ttf-thai-tlwg をインストールして(xfonts-thai-ttf という記述 があるようですが既に obsolete) フォントに Garuda (と Norasi) を指定する ようです。
- インド語(ヒンディ?)は ttf-devanagari-fonts をインストールしてフォント に Samanata, Chandas, Gargi_1.7 を指定するようです。 Lohit Hindi は license restriction で使えない? また Kalimati は壊れて いるのかエラーになりました。
- アラビア語は ttf-arabeyes をインストールしてフォントに Arab, AlArabiya を指定するようです。
- エチオピア語(?)には ttf-sil-abyssinica をインストールしてフォント に "Abyssinica SIL" を指定するようです。(Amharic.tex)
サンプルファイル
ソースファイル(と画像データ,スタイルファイル(?)など)をまとめて sample_linux.tar.gzみました。 必要なフォントパッケージ(Debian の場合)はファイルのコメントにあります。
- CJKsample の PDF と TeX ファイル
- Arabic の PDF (0.994a でコンパイル)と TeX ファイル 理由は不明ですが 0.995 でコンパイルできません。0.994a でコンパイルした PDF です。
- Hindi の PDF と TeX ファイル
- Ksample の PDF と TeX ファイル
- Amharic の PDF と TeX ファイル
- PicFileLSample の PDF と TeX ファイル
- CM-test の PDF と TeX ファイル
- transforms の PDF と TeX ファイル
パッケージについて(obsolete!)
XeTeX のホームページには Ubuntu 用パッケージがありますが TeXLive 環境に インストールしたかったので 8 月 22 日 update されたバージョン 0.995 のソースをゲットして TeXlive 環境な Debian/unstable にもインストールできる パッケージに変更したものを使いました。('06/08/20) /usr/locall/share から /usr/share にインストールする ように変更。また dh_installtex を利用してパッケージング。 teTeX 環境にインストールする場合,古いパッケージが使ってたらしい(?) /etc/texmf/web2c/fmtutil.cnf があるとインストールに失敗するかも。 /etc/texmf/web2c/fmtutil.cnfnon とかにして mktexlsr しておけば良いはず。
Linux 版 XeTeX はデフォルトで dvipdfmx の拡張版 xdvipdfmx を利用するので XeTeX のサイトにある Ubuntu 用を少し修正した Debian/unstable 用 xdvipdfmx パッケージもインストールします。 dvipdfmx と重複する設定ファイルがありそうなので xdvipdfmx と xdvipdfmx-data に分割してみました。xdvipdfmx に加えて dvipdfmx か xdvipdfmx-data パッケージのどちらかをインストールする必要があります。
最新の 0.995 ではサンプル(Arabic.tex)のコンパイルに失敗するようです。 何故かひとつ古い 0.994a だと問題なくコンパイルできるようです。
XeTeX のホームページには Ubuntu 用の deb があるようですが,まだまだ 洗練されてはいないようです(/usr/local にインストールされたり)。 そのうち修正するつもりです。
- should use libkpathsea, libicu dynamically
- should modify fmtutil.cnf with /etc/texmf/fmt.d/60xetex.cnf as follows;
# XeTeX formats xetex xetex - *xetex.ini xelatex xetex language.dat *xelatex.ini- unappropriate settings in texmf.cnf?
TEXINPUTS.xelatex = .;$TEXMF/tex/{latex,generic,}// TEXINPUTS.xetex = .;$TEXMF/tex/{plain,generic,}//rather, they should be (with /etc/texmf/texmf.d/44xetex.cnf?)TEXINPUTS.xelatex = .;$TEXMF/tex/{xelatex,latex,generic,}// TEXINPUTS.xetex = .;$TEXMF/tex/{xetex,plain,generic,}//
Last modified: Thu May 9 13:23:49 JST 2013