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

----

''目次''
#contents


* 最初の例 [#cb71c504]

まずはうんと簡単な例からやってみましょう。
// ここではあえて統合環境を用いない場合の例を示すことで
// LaTeX とはどういうものかを意識してもらうことにします。
// また、最近は upLaTeX を推奨する動きもありますが、ここでは
// あくまで入門ですので「古い TeX 環境」をお使いの方にも共通する内容を示します。

**ファイルの作成 [#a37eebd1]

次のファイルを作ってみましょう。

 \documentclass{jsarticle}
 \begin{document}
 
 吾輩は猫である。名前はまだ無い。
 
 どこで生れたかとんと見当がつかぬ。
 何でも薄暗いじめじめした所で
 ニャーニャー泣いていた事だけは記憶している。
 吾輩はここで始めて人間というものを見た。
 
 \end{document}

この文章をテキストエディタ((Windows では「メモ帳」「[[Emacs]]」「[[Vim]]」「[[Atom]]」「[[Brackets]]」「[[Light Table]]」「[[Notepad++]]」「[[サクラエディタ]]」など。OS X, Linux では「[[Emacs]]」「[[Vim]]」「[[Atom]]」「[[Brackets]]」「[[Light Table]]」などがあります。))に記述します。
コピー&ペーストしても OK です。
ファイルに ex1.tex という名前を付けて保存します。
ファイル名は何でもかまいませんが、最後に .tex を付けます。 

**pLaTeX の実行 [#a6b25776]

作成した TeX ファイルを pLaTeX で処理してみましょう。

-[[Windows PowerShell]] または[[コマンド プロンプト>Command Prompt]](Windows の場合)
-ターミナル(OS X, Linux の場合)

を開いて、さきほど ex1.tex を保存したディレクトリ(フォルダー)に移動し、次のように打ち込みます。

 platex ex1

すると、たとえば次のような表示が画面に出ます。
表示は TeX ディストリビューションによって微妙に異なります。

 This is e-pTeX, Version 3.14159265-p3.6-141210-2.6 (sjis) (TeX Live 2015/W32TeX) (preloaded format=platex)
  restricted \write18 enabled.
 entering extended mode
 (./ex1.tex(guessed encoding: UTF-8 = utf8)
 pLaTeX2e <2006/11/10> (based on LaTeX2e <2014/05/01> patch level 0)
 Babel <3.9l> and hyphenation patterns for 79 languages loaded.
 (c:/w32tex/share/texmf-dist/tex/platex/jsclasses/jsarticle.cls(guessed encoding: ISO-2022-JP = jis)
 Document Class: jsarticle 2014/02/07 okumura
 ) (./ex1.aux) [1] (./ex1.aux) )
 Output written on ex1.dvi (1 page, 548 bytes).
 Transcript written on ex1.log.

これで ex1.dvi という組版結果のファイルが生成されます((この ex.dvi は [[dviout]](Windows の場合)や [[xdvi]](OS X, Linux の場合)でプレビューすることができます。しかし、通常は最終的に PDF ファイルを得たい場合が多いので、次の dvipdfmx の実行まで行ってから PDF をプレビューした方が確実でしょう。))。
もしエラーが起こった場合はエラーメッセージが表示されているはずですので、ex1.tex
の内容が間違っていないか、再度確認してください。

また、以下のファイルも生成しているはずです。

-処理の様子を書き込んだログファイル ex1.log
-補助ファイル ex1.aux (上の例の場合は特に意味のないファイルですが、のちのち相互参照で重要な役割を果たすファイルです)

**dvipdfmx の実行 [#r1e1daab]

人に渡す場合は、DVI ファイルを PDF ファイルに変換しましょう。
先ほど生成した ex1.dvi を dvipdfmx で処理します。

 dvipdfmx ex1

ex1.pdf というファイルができていることを確かめてください。
ex1.pdf を

-[[Adobe Reader]], [[SumatraPDF]] (Windows の場合)
-Preview, [[Adobe Reader]], [[Skim]] (OS X の場合)
-Adobe Acrobat Reader DC, [[SumatraPDF]] (Windows の場合)
-Preview, Adobe Acrobat Reader DC, [[Skim]] (OS X の場合)
-[[Evince]], [[Okular]], [[zathura]], [[qpdfview]] (Linux の場合)

で開くと、きれいに組版された文章が画面に現れます。
// 通常「TeX 用のエディタ付き統合環境」として紹介されるものは、ここでは排除しました。
もちろん PDF ファイルは印刷することができます。

**ptex2pdf の実行 [#k492ffcb]

上では pLaTeX と dvipdfmx を別々に実行しましたが、これを一発で行うために便利なのが
[[ptex2pdf]] です。

 ptex2pdf -l ex1

とすれば、pLaTeX と dvipdfmx が順に実行されて ex1.pdf が得られます。


* 統合環境の利用 [#o7fa03d8]

上の例では

>
「テキストエディタで LaTeX ソースファイルを作成」し、その後「コマンドを入力して pLaTeX と dvipdfmx で処理」
<

という作業を行いました。
もしあなたがコマンド操作に慣れていない場合は、いちいち手動で処理を行うのが面倒だと感じるかもしれません。
このような場合に役に立つのが、''[[TeX 用の統合環境やエディタ>TeX用エディタ]]''です。

TeX 用の統合環境の多くは「ソースを編集するエディタ」と「その後の処理をボタン一発で行う機能」を持っています。
また、LaTeX の命令をハイライトしたり、入力を補完するなどして支援してくれる統合環境もあります。
もちろん LaTeX ソース編集にはどんなテキストエディタでも用いることができますので、すでにお気に入りのエディタがある場合は、LaTeX 用のマクロがあるか探してみるとよいでしょう。

特にエディタにこだわりのない方は、初めてなら [[TeXworks]] がお勧めです。
OS X をお使いの場合は [[TeXShop]] も人気があります。

TeXworks を使用する場合、[[最初の例>TeX入門/最初の例#cb71c504]]に示したのと同じ処理を以下のようにして簡単に行うことができます。

+エディタ画面に上の例のソースを入力します。
+タイプセットメニューで pLaTeX (ptex2pdf) または pdfpLaTeX を指定してタイプセットします。

これで pLaTeX と dvipdfmx が実行され、ex1.pdf が出力されます。

統合環境を利用すると手軽に LaTeX 文書を作成できる反面、何か問題が生じたときに原因がどこにあるのか分かりにくくなることがあります。
原因の分からない問題が発生した場合は、一度''統合環境を離れてコマンドを実行''してみてください。
統合環境の不具合または設定の誤りが原因なのか、はたまた
TeX の不具合やインストール失敗が原因なのか、問題を分離できるかもしれません。


* 解説 [#md8c2330]

最初の2行と最後の1行は、決まり文句だと思って結構です。
この間に、出力(印刷)したい文章を書きます。

\documentclass{jsarticle} とは「jsarticle というドキュメントクラスに従って
pLaTeX で組版する」ことを指図する命令です。
ドキュメントクラスは HTML のスタイルシートに対応するものです。

文章は適当に改行してもかまいません(改行は、出力には影響しません)。
ただし、空の行は段落の切れ目を表します。

組版結果は出力装置(%%%''d''%%%e%%%''v''%%%ice)に依存しない(%%%''i''%%%ndependent)ことから DVI ファイルと呼ばれます。
DVI ファイルは [[dvipdfmx]] を実行すると PDF ファイルに変換されます。
[[PDF]] ファイルは異なった環境でも同じように閲覧できる文書形式 (%%%''P''%%%ortable %%%''D''%%%ocument %%%''F''%%%ormat) です。

* 間違いやすいこと [#o075508f]

**拡張子 [#ka2ad20a]

Windows のメモ帳で保存すると、ex1.tex としたつもりでも ex1.tex.txt というファイル名にされてしまうことがあります(メモ帳のおせっかい)。
この場合は、保存してから名前を変えてください。

**入力モード(半角/全角) [#m0f2be64]

\ 印で始まる英語のような単語は TeX へのいろいろな指示を表すコマンドです。
すべて半角文字(Windows では直接入力)で入力してください。
// “オマジナイ”という語は、事情に通じている人の間のしゃれですよね。
// 初学者を相手にするときは使わないべきと考えます。


* エラーメッセージ [#z764b56f]

コマンドのつづりを間違えていたりすると、エラーメッセージが出ます。
たとえば、上記のファイルの2行目にある \begin というところを誤って \bigin と打ち込んでしまった場合なら、次のようなエラーメッセージが出ます。

 This is e-pTeX, Version 3.14159265-p3.6-141210-2.6 (sjis) (TeX Live 2015/W32TeX) (preloaded format=platex)
  restricted \write18 enabled.
 entering extended mode
 (./ex1.tex(guessed encoding: UTF-8 = utf8)
 pLaTeX2e <2006/11/10> (based on LaTeX2e <2014/05/01> patch level 0)
 Babel <3.9l> and hyphenation patterns for 79 languages loaded.
 (c:/w32tex/share/texmf-dist/tex/platex/jsclasses/jsarticle.cls(guessed encoding: ISO-2022-JP = jis)
 Document Class: jsarticle 2014/02/07 okumura
 )
 ! Undefined control sequence.
 <recently read> \bigin
 
 l.2 \bigin
           {document}
 ?

エラーメッセージの下の方に“l.2 \bigin”という行があります。
これは入力ファイル2行目の \bigin という部分を読み込んだところでエラーが発生したことを示しています。

“l.2 \bigin”のそのすぐ上のところにある“! Undefined control sequence.”という行が発生したエラーの種類を示しています。
この場合は“定義されていないコントロールシークエンスである(=こんなコマンドはないですよ)”というエラーです。

エラーが発生すると TeX は処理を一時停止して待機します。
エラーメッセージを見てもどこが悪かったのかわからない場合には、この待機中に“h”を入力するともう少し詳しい状況説明と対処方法が表示されることもあります。

 ? h
 The control sequence at the end of the top line
 of your error message was never \def'ed. If you have
 misspelled it (e.g., `\hobx'), type `I' and the correct
 spelling (e.g., `I\hbox'). Otherwise just continue,
 and I'll forget about whatever was undefined.
 
 ?

上記のエラーの場合は“I\begin”を入力すると ex1.dvi が作成されます。

 ? I\begin
 (./ex1.aux) [1] (./ex1.aux) )
 Output written on ex1.dvi (1 page, 548 bytes).
 Transcript written on ex1.log.

“I\begin”を入力せずに“x”を入力すると TeX はここで処理を終了します。

 ? x
 No pages of output.
 Transcript written on ex1.log.

エラーメッセージからどこを直すべきかわかった場合にはその箇所を修正してやり直してください。
どこを直すべきかわからなかった場合にはエラーが起きた箇所の近辺を精査して間違った箇所を探し出したうえで入力ファイルを修正してやり直してください。
// このようになってしまったときは、Enter キーを押すと、そのエラーを無視して処理を続行します。
// // ↑
// // 初心者には使いこなせない機能です。
// エラーメッセージが表示されなくても、いつまでも TeX の処理が終わらないような場合は、 Ctrl キーを押さえながら C キーをたたいてみてください。
// //↑
// // ほとんど起こりません。

各種エラーメッセージについては、[[LaTeX のエラーメッセージ]]、[[TeX のエラーメッセージ]]も参照してください。


* 新しい TeX システムを使っている場合 [#q6b5d096]

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

先ほどの最初の例では、古い TeX システムを利用している場合にも共通して使えるように
pLaTeX で処理する手順を説明しましたが、''新しい TeX システムを使っている場合''はぜひ
''upLaTeX'' を使ってみてください。

**upLaTeX を使うメリット [#q9e98ef6]

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

**upLaTeX を使う際に注意すべき点 [#w10e0d8a]

pLaTeX の場合から変更する必要があるのは、以下の点です。

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

**upLaTeX の利用例 [#r049bff2]

例えば、以下のようなソースを考えます。

 \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}
 \begin{document}
 
 ①②③④㋐㋑㋒㋓
 
 森鷗外、内田百閒、鄧小平、李承燁
 
 \end{document}

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


* もっと古い TeX システムの場合 [#m304e480]

古いシステムの場合、[[奥村先生による jsarticle ドキュメントクラス:http://oku.edu.mie-u.ac.jp/~okumura/jsclasses/]]がインストールされていない場合があります。

この場合は \documentclass{jsarticle} を \documentclass{jarticle}
に変えると、jarticle という古いドキュメントクラスに従って pLaTeX で組版できます。
ただし、jarticle ドキュメントクラスには
JIS の組版規則に従っていない不都合な点がありますので、新しい
jsarticle ドキュメントクラスがインストールされている場合は必ず
''JIS の規則に従った jsarticle'' を使用してください。