XeLaTeX覚書:多言語環境で部分的に日本語を使おう!

多言語環境でTeXを使える、XeTeXというものがあります。
XeTeX - Wikipedia

下の写真を見てもらえばわかると思うのですが、多言語環境を一つのPDFで実現できる中々のスグレモノです。
f:id:jagging:20140514210739p:plain

今回、僕の目的はギリシャ語・日本語混じり文をTeXで生成することなので、『部分的に』日本語であればOKです。

upLaTeXとかいうpTeXの進化系を使ってもギリシャ語TeXは出来るらしいのですが、設定がゴチャゴチャしていて面倒そうだったので、
(少なくともUbuntu上では)設定のスッキリしているXeLaTeXを用いることにしました。

XeTeX - Wikipedia
Wikipedia上にあるサンプルコードを回してみます(↓)

\documentclass[11pt]{article}
\usepackage{fontspec}
\setmainfont[Ligatures=TeX]{Linux Libertine O}
\begin{document}
\section{Unicode support}
 
\subsection{English}
All human beings are born free and equal in dignity and rights.
 
\subsection{Íslenska}
Hver maður er borinn frjáls og jafn öðrum að virðingu og réttindum.
 
\subsection{Русский}  
Все люди рождаются свободными и равными в своем достоинстве и 
правах.
 
\subsection{Tiếng Việt}
Tất cả mọi người sinh ra đều được tự do và bình đẳng về nhân phẩm và 
quyền lợi.
 
\subsection{Ελληνικά} 
Ὅλοι οἱ ἄνθρωποι γεννιοῦνται ἐλεύθεροι καὶ ἴσοι στὴν ἀξιοπρέπεια 
καὶ τὰ δικαιώματα.
 
\section{Legacy syntax}
When he goes---``Hello World!''\\
She replies—“Hello dear!”
 
\section{Ligatures}
\fontspec[Ligatures={Common, Historical}]{Linux Libertine O Italic}
Questo è strano assai!

\section{Numerals}
\fontspec[Numbers={OldStyle}]{Linux Libertine O}Old style: 1234567\\
\fontspec[Numbers={Lining}]{Linux Libertine O}Lining: 1234567
 
\end{document}

"Linux Libertine O"というフォントが必要そうだったので、
Ubuntu – Package Search Results -- linux-libertine
から必要なフォントを確認し、インストール

 $ sudo apt-get install fonts-linuxlibertine

XeLaTeXを走らせると、一気にpdfファイルまで作ってくれます。

 $ xelatex hoge.tex
 $ evince hoge.pdf

f:id:jagging:20140514204829p:plain

出来てます。


では、今度は日本語の項目も追加してXeLaTeXを走らせてみます。
f:id:jagging:20140514204550p:plain
日本語部分が文字化け、表示されません。。。

今回は部分的に日本語が使えればOKなので、\newfontfamilyで日本語フォント(Ubuntuに入ってたもの)を定義してやります。
もっと簡単に出来るらしい(追記参考)

...
\usepackage{fontspec} \setmainfont[Ligatures=TeX]{Linux Libertine O}
\newfontfamily\ja{IPAPMincho} % ここに一行追加した
\begin{document}
...
% 使うときは {\ja 〜文章〜 }のようにして使う
{\ja
ああああ
        \section{{\ja 日本語}}
すべての人類は尊厳と権利において、生まれながらにして平等かつ自由である。
}
...

f:id:jagging:20140514205555p:plain


これで日本語が部分的に使えるようになりました。

追記

どうやらXeLaTeX で日本語を使うなら、zxjatype.sty
ZXjatype パッケージ ~XeLaTeX でまともな日本語組版を~ [電脳世界の奥底にて]
を使うと良いらしい。

早速試したところ、プリアンプルに

\usepackage{zxjatype}
\setjamainfont{IPA明朝}

を加えるだけで日本語が自由に使えるようになった。