*LaTeX [#q7391e7f] LaTeX は Leslie Lamport によって開発された文書処理システムです. [[TeX]] のマクロパッケージとして構築されています. ---- #contents ---- **TeX と LaTeX の違い [#b9485cfe] 単に「TeX」と言った場合,それが LaTeX のことを指している場合も多いのですが,TeX と LaTeX は本来区別されるべきものです. TeX は Donald E. Knuth によって開発された組版エンジン,言語処理系です. 言語処理系だけでは実際の組版を行うのは大変で,プログラミング言語でいうライブラリにあたるものが必要になります. そこで,まず Knuth が自身の著書を書くための plain TeX というマクロパッケージが作成されました((現在でも,tex, ptex, pdftex などのコマンドで plain TeX を使うことができます.)). しかし,plain TeX では組版に最低限必要となる程度の機能しか提供されていなかったため,思い通りの出力を得るにはある程度の熟練が必要であり,もっと簡単に論文やレポート作成に活用できるようにしたいという要望がありました. この要望に応えたのが Leslie Lamport による LaTeX です. LaTeX では,クラスファイルと呼ばれるものによってどのように文書が組版されるべきかを指定し,あとは \section などのコマンドや環境と呼ばれるものを用いることで文書の構造を記述(マークアップ)すれば,組版の細部については気にしなくても適切な出力が得られるようにマクロが整備されました. また,パッケージ(スタイルファイル)と呼ばれるものを読み込むことで,容易に機能拡張ができるようになっています. パッケージは各ユーザが作成することもでき,こうしたパッケージを集めたサイトが [[CTAN]] です. そして,CTAN に投稿されたパッケージを各種 TeX エンジンのバイナリなどと一緒に配布するものが TeX ディストリビューションであり,国内では [[TeX Live]] や [[W32TeX]] がよく利用されています. 現在では TeX で組版を行う場合には LaTeX を使うことが圧倒的に多いため((他に,TeX の上に構築された文書処理システムとして [[ConTeXt]] があります.)),冒頭に述べたような「TeX」で LaTeX を指すような混同が生じています. **公式サイト [#efac9d0e] 現在の開発,保守は LaTeX3 project によって行われています. -http://www.latex-project.org/ **チュートリアル [#m2e439ef] LaTeX のチュートリアルが [[TeX入門]]にあります.こちらをお読み下さい. エラーや警告が出た場合は,以下でメッセージへの対処法が説明されていますので,参考にして下さい. -[[LaTeX のエラーメッセージ]] -[[LaTeX の警告メッセージ]] -[[LaTeX コマンドの誤用例]] **LaTeX2e [#db98cc0c] LaTeX のバージョン2が出た後に,次期バージョンである LaTeX3 の開発が進められましたが,これが難航したために,LaTeX3 リリースまでの「つなぎ」として The New Standard LaTeX (LaTeX2e) というバージョンが1994年にリリースされました. その後も LaTeX3 の開発は続けられていますが,現在でも LaTeX2e が最新版という状態が続いています. ***TeX Live 2015 以降での変更点 [#s8024647] これまで,LaTeX2e では互換性を壊すような修正や改善は本体(カーネル)には直接取り込まず,fixltx2e というパッケージを読み込むことで反映されるようにするという方針がとられてきました. しかし,TeX Live 2015 からはこの方針が転換され,こうした変更点もカーネルに取り込み,もしそれで過去の文書の組版に問題が出るようならば latexrelease パッケージを読み込めば過去のバージョンの動作をするようになりました. -[[LaTeX News, Issue 22:http://latex-project.org/ltnews/ltnews22.pdf]] -kernel の大量の変更点:[[forum:1558]] % 要追記. **LaTeX3 [#f2915fa5] LaTeX の次期バージョンです. 「まずは LaTeX を記述するためのプログラミング言語を作ろう」として動き出したものの,この段階での試行錯誤が長年に渡って続いている状態にあります. 最近では,LaTeX2e の上でも expl3 パッケージを読み込めば開発中のこのプログラミング言語を試すことができるようになっています. いくつかの新しい LaTeX2e 用のパッケージはこの言語を用いて書かれています. ***注意点 [#t6u982n7] 新しい LaTeX2e 用のパッケージのうち,LaTeX3 の構文で記述されているものとして以下があげられます. -例:[[media9]], [[siunitx]] など これらは expl3 を内部で読み込むようになっています. ただし,expl3 は pTeX や upTeX というエンジンを知らないため,これらを pdfTeX であると誤判定します(2015/03/01 現在の expl3 でも確認). このことが直接影響することは少ないと思われますが,例えば media9 パッケージを使う場合に問題になることが確認されています. -例:[[日本語の文書に media9 パッケージでマルチメディア埋め込み:http://acetaminophen.hatenablog.com/entry/2014/11/28/002341]] 対処法として,ZR さんによる [[bxexpl3ptex.sty:https://gist.github.com/zr-tex8r/2adc6f1e62cb591a1204]] を用いることができます. ちなみに,pTeX で expl3 がサポートされたのは [[qa:55490]](→ [[qa:55523]] でバグ修正)以降ですので,こうしたパッケージはそれ以前では利用できないことにご注意ください. **LaTeX2.09 [#lb5604b4] LaTeX2e の一つ前の版であり,一昔前には広く使われていました. 冒頭が \documentclass ではなく \documentstyle になっているものはこのバージョン向けに書かれた文書です.