[[LaTeX入門]] /
[[最初の例>LaTeX入門/最初の例]] /
[[簡単な数式 (1)>LaTeX入門/簡単な数式(1)]] /
[[簡単な数式 (2)>LaTeX入門/簡単な数式(2)]] /
[[各種パッケージの利用>LaTeX入門/各種パッケージの利用]] /
[[レポート>LaTeX入門/レポート]] /
[[HTML と LaTeX の比較>LaTeX入門/HTMLとLaTeXの比較]] /
[[複雑な数式>LaTeX入門/複雑な数式]] /
[[図表>LaTeX入門/図表]] /
[[図表の配置>LaTeX入門/図表の配置]] /
[[相互参照とリンク>LaTeX入門/相互参照とリンク]] /
[[文献引用]] /
[[索引作成]] /
[[LaTeX マクロの作成>LaTeX入門/LaTeXマクロの作成]] /
[[スライドの作り方(jsarticle 編)>LaTeX入門/スライドの作り方(jsarticle編)]] /
[[応用的な使い方>LaTeX入門/応用的な使い方]] /
発展編

----


* 発展編:最近の LaTeX の動向 [#q6b5d096]

LaTeX 入門では全体をとおして新しい TeX 環境ではもちろん,古い TeX 環境でも幅広く共通して使える pLaTeX で処理する手順を説明しましたが,新しい TeX 環境ではより機能拡張が施された LaTeX エンジンを使えるようになりました。

// LaTeX 入門は全体をとおして,当面の間は pLaTeX で固定し,ほかの説明は省く。
// 各所で雑多な情報が出回っているので,ここで位置づけをはっきりさせておこうというのが趣旨です。
// 発展編なので“超初心者”は読まない前提,ただし知りたい人にはここを参照するように導く。
// あまり TeX Wiki のなかに説明がないので… -- アセトアミノフェン (2015-08-31)

#contents

** upLaTeX [#deabb3ce]

最近の TeX をインストールした場合は((正確には W32TeX [2007/08/04] 以降,あるいは TeX Live 2012 以降です。)),[[upLaTeX>upTeX,upLaTeX]] という Unicode 対応の日本語用 LaTeX エンジンが収録されています。
upLaTeX の主なメリットは以下のとおりです:

-環境依存文字(丸数字や特殊記号など)をそのままソースに使える
-漢字が JIS 第一・第二水準に入っているか否かを意識せずに済む

LaTeX 入門で pLaTeX のソースを示してきましたが,pLaTeX から upLaTeX に切り替える場合に変更するのは以下の点です:

-ソースを作成するとき,文字コードは UTF-8 に指定する(ほかの文字コードは不可)
-\documentclass{jsarticle} の代わりに \documentclass[uplatex]{jsarticle} を使用

*** upLaTeX ソース例 [#z9f16bc7]

LaTeX 入門で示した例は特に upLaTeX でないと処理できないソースを含んでいませんでした。
しかし,例えば以下のような JIS 外の漢字や丸数字などを含むソースを考えましょう。

 \documentclass[uplatex]{jsarticle}
 \begin{document}
 
 ①②③④㋐㋑㋒㋓
 
 森鷗外,内田百閒,鄧小平,李承燁
 
 \end{document}

これを ex1.tex という名前で文字コードを UTF-8 にして保存し,以下のコマンドを実行します。

 uplatex ex1
 dvipdfmx ex1

すると,ex1.pdf が出力されます。
[[ptex2pdf]] を使う場合は

 ptex2pdf -u -l ex1

とすれば,upLaTeX と dvipdfmx が順に実行されて ex1.pdf が得られます。
もし仮に

 \documentclass{jsarticle}

として pLaTeX で処理してしまうと,丸記号や JIS 外の漢字が抜け落ちてしまいます。
pLaTeX の場合は,使いたい文字が扱えるかどうかいちいち考える必要がありますが,upLaTeX ではその必要がありません。
補足として:

-[[図表>LaTeX入門/図表]]の取り扱い等については upLaTeX + dvipdfmx でも pLaTeX の場合と同様です。
-[[文献引用]]については,pBibTeX の代わりに upLaTeX と同様に Unicode に対応した upBibTeX を使うとよいでしょう。
-[[索引作成]]については,W32TeX [2015/01/27] 以降に限り Unicode に対応した upmendex が入っていますので,mendex の代わりに使うと便利かもしれません。
-[[索引作成]]については,mendex を実行する際に
 mendex -U hoge
のように UTF-8 モードを指定すれば,JIS 外の漢字も正しく索引に入れることができます(参考:[[forum:1253]])。
なお,W32TeX [2015/01/27] 以降に限り Unicode に対応した upmendex が入っていますので,
 upmendex hoge
とするとより幅広い Unicode 文字を扱えます。
mendex -U とほぼ似た動きをしますが,mendex は読みデータが EUC であるのに対し,upmendex は読みデータは Unicode になっています。
ソーティングは ICU を利用しているので,ソート順が異なることがあります(参考:[[forum:1308]],[[forum:1637]])。

*** upLaTeX を使える場合・使えない場合 [#p69fabd3]

upLaTeX を使うための大前提として,お使いの OS が Unicode (UTF-8) に対応している必要があります。
そのうえで,TeX 環境に upLaTeX が入っているかどうかの目安は以下のとおりです:

-TeX をお使いのコンピュータにインストールしてある場合
--W32TeX [2007/08/04] 以降,あるいは TeX Live 2012 以降であれば upLaTeX が入っています。
--これより古い環境(TeX Live 2011 など)では使えません。
-クラウドで TeX を利用している場合
--Cloud LaTeX には TeX Live 2013 の pLaTeX が入っていますが,upLaTeX は入っていません(2015-08-31 現在)。

なお,主要な論文誌のスタイルファイルの中には,upLaTeX に未対応のものもあります。
たとえば,[[IPSJ]] のような日本語ジャーナルのクラスファイルは未だ pLaTeX ベースです。

** LuaLaTeX [#mb665da8]

日本では pLaTeX や upLaTeX と dvipdfmx を組み合わせて「LaTeX ソースから DVI 経由で PDF を作る」ケースが圧倒的に多いのが現状です。
しかし海外に目を向けてみると,[[pdfLaTeX>pdfTeX]] を使って「LaTeX ソースから PDF を直接出力する」ケースが主流です。
この pdfTeX を拡張して Lua という軽量スクリプト言語を利用できるようにしたのが [[LuaTeX]] です。
LuaTeX は,いまのところ pdfTeX の後継として位置づけられています。

2015 年現在 LuaTeX のバージョンは beta-0.80.0 で,まだ正式リリースには至っていませんが,すでに pdfTeX に近い機能拡張を利用できるほか,以下のような優れた機能もあります:

-Unicode に対応
-フォントの設定が簡単(OpenType/TrueType フォントを直接扱える)

LuaLaTeX を使って日本語を組版するための [[LuaTeX-ja]] というパッケージも活発に開発されています。
LaTeX 入門で示した pLaTeX のソースから LuaLaTeX (LuaTeX-ja) に切り替える場合,現在は以下のようにすればよいようです:

-ソースを作成するとき,文字コードは UTF-8 に指定する(ほかの文字コードは不可)
-\documentclass{jsarticle} の代わりに \documentclass{ltjsarticle} を使用

このように ltjsarticle クラスにすれば自動的に luatexja パッケージが読み込まれます。

*** LuaTeX-ja ソース例 [#t7eebe4c]

[[LuaTeX-ja の使い方:https://osdn.jp/projects/luatex-ja/wiki/LuaTeX-ja%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9]]に例が挙げられています。

 \documentclass{ltjsarticle}
 \begin{document}
 
 \section{はじめてのLua\TeX-ja}
 ちゃんと日本語が出るかな?
 \subsection{出たかな?}
 長い文章を入力するとちゃんと右端のところで折り返されるかな?
 大丈夫そうな気がするけど.ちょっと不安だけど何事も挑戦だよね.
 
 \end{document}

これを ex2.tex という名前で文字コードを UTF-8 にして保存し,以下のコマンドを実行します。

 lualatex ex2

すると,ex2.pdf が出力されます(初回のタイプセットではキャッシュが存在しないので,長い場合は数分程度かかるかもしれません)。
このとき,デフォルトでは標準和文フォントは IPAex フォントが埋め込まれます。
OS X でヒラギノフォントを利用できる場合は

 \usepackage[hiragino-pron]{luatexja-preset}

をプリアンブルに追加すれば,システムにインストールされているヒラギノフォントが認識されて埋め込まれるようになります。
このように,LuaTeX の大きな特徴は「システムにインストールされた OpenType フォントや TrueType フォントを直接扱える」ことだったりします。

なお,[[図表>LaTeX入門/図表]]の取り扱い等については,pLaTeX のときのような [dvipdfmx] オプションが不要になります(これは pdfLaTeX と同様で,自動的に適切なドライバを検出します)。

まだ Lua(La)TeX,LuaTeX-ja ともにベータ版で仕様は流動的であることを気に留めておいてください。