[[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入門/応用的な使い方]] /
[[発展編>LaTeX入門/発展編]]

----


* 最初の例 [#cb71c504]

まずはうんと簡単な例からやってみましょう。
// 以下では,日本で現在主に使われているあらゆる TeX 環境で利用可能な「pLaTeX2e」を使って日本語の LaTeX 文書を作成できるようになることを目的に説明します。
// この方法は既に確立されていて,新たに TeX をインストールした場合だけでなく少々(5 年ほど)古い TeX 環境を使っている場合にも対応しています。

// 2015-08-31 現在,Cloud LaTeX には
// - TeX Live 2013 の pLaTeX / XeLaTeX / pdfLaTeX
// - TeX Live 2014 の pdfLaTeX
// が入っています。また,[[IPSJ]] のような主要な日本語ジャーナルも未だ pLaTeX ベースです。
// よって,upLaTeX を「入門」で示してしまうのはまだ時期尚早です。
// ちなみに upmendex はまだ TeX Live 2015 にも入っておらず,
// W32TeX [2015/01/27] 以降しか入っていないのでこれまた急進的すぎます。
// この「LaTeX 入門」の想定読者は大学で LaTeX を使わないといけなくなったばかりの人も含むので
// - 新規に TeX をインストールしたばかり(よって最新環境を使える)
// - 大学の PC 室で数年前に導入された TeX を使い始めた(TL2011 とかもまだ現役)
// - 最近の潮流であるクラウドを使っている(Cloud LaTeX など)
// - 最新の TeX 環境を使っているが,学会スタイルの指定で pLaTeX を使わざるを得ない
// などいろいろ考慮する必要があります。[[forum:1645]] も参照してください。
// よって当面の間 pLaTeX から変更する予定はありません。 -- アセトアミノフェン (2015-08-31)

#contents

// ここではあえて統合環境を用いない場合の例を示すことで
// LaTeX とはどういうものかを意識してもらうことにします。
// また,最近は upLaTeX を推奨する動きもありますが,ここでは
// あくまで入門ですので「古い TeX 環境」をお使いの方にも共通する内容を示します。
// ↑ということなので,platexでコンパイルするように直します.

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

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

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

この文章をテキストエディタ((Windows ではメモ帳のほかに [[Emacs]],[[Vim]],[[Atom]],[[Brackets]],[[Light Table]],[[Notepad++]],[[サクラエディタ]]など。OS X, Linux では [[Emacs]],[[Vim]],[[Atom]],[[Brackets]],[[Light Table]] などがあります。))に記述します。
この文章を [[Visual Studio Code]] などのテキストエディタに記述します。
コピー&ペーストしても OK です。
ファイルに ex1.tex という名前を付けて保存します。
ファイル名は何でもかまいませんが,最後に .tex を付けます。 
ファイルに ex1.tex という名前を付けて文字コードを UTF-8 にして保存します。
(どのディレクトリ(フォルダー)に保存すべきか迷った場合は,取りあえずデスクトップにしてください。)

**pLaTeX の実行 [#a6b25776]
**LuaLaTeX の実行 [#a6b25776]

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

-Windows PowerShell またはコマンド プロンプト(Windows の場合)
-ターミナル(OS X, Linux の場合)
ターミナルを開き(以下「コマンドラインから…を実行します」と書いたら,これらの画面から実行することを意味します),次のようにしてさきほど ex1.tex を保存したディレクトリ(フォルダー)に移動しましょう。

を開いて,さきほど ex1.tex を保存したディレクトリ(フォルダー)に移動し,次のように打ち込みます。
コマンドラインからプログラムを実行するとき,カレントディレクトリすなわち「今どのディレクトリ(フォルダー)で作業しているか」を意識する必要があります。
通常は,コマンドラインを起動すると以下のようなホームディレクトリがカレントディレクトリになっています:

 platex ex1
-C:\Users\ユーザ名 (Windows の場合)
-/Users/ユーザ名 (macOS, Linux の場合;単に ~ とも表記する)

すると,たとえば次のような表示が画面に出ます。
ファイルをデスクトップに保存した場合は,cd というコマンドでカレントディレクトリを変更します。

 cd Desktop

これでカレントディレクトリがデスクトップすなわち

-C:\Users\ユーザ名\Desktop (Windows の場合)
-/Users/ユーザ名/Desktop (macOS, Linux の場合)

に変更されました。
これで,デスクトップに置かれたファイルに対して処理できるようになります。

この状態から ex1.tex を LuaLaTeX で処理するには,次のように打ち込みます。

 lualatex 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 <2015/01/01> patch level 0)
 Babel <3.9l> and hyphenation patterns for 79 languages loaded.
 (c:/texlive/2015/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).
 This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)
  restricted system commands enabled.
 (./ex1.tex
 LaTeX2e <2023-11-01> patch level 1
 L3 programming layer <2024-02-20>
  (c:/texlive/2024/texmf-dist/tex/latex/jlreq/jlreq.cls
 Document Class: jlreq 2024/02/16 jlreq
 (c:/texlive/2024/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
 (c:/texlive/2024/texmf-dist/tex/latex/l3kernel/expl3.sty
 (c:/texlive/2024/texmf-dist/tex/latex/l3backend/l3backend-luatex.def)))
 (c:/texlive/2024/texmf-dist/tex/latex/etoolbox/etoolbox.sty)
 (c:/texlive/2024/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty)
 jlreq guessed engine: lualatex
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/luatexja.sty
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/luatexja-core.sty
 (c:/texlive/2024/texmf-dist/tex/generic/infwarerr/infwarerr.sty)
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexbase/luatexbase.sty
 (c:/texlive/2024/texmf-dist/tex/luatex/ctablestack/ctablestack.sty))
 (c:/texlive/2024/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty)
 (c:/texlive/2024/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
 (c:/texlive/2024/texmf-dist/tex/generic/iftex/iftex.sty))
 (c:/texlive/2024/texmf-dist/tex/latex/xkeyval/xkeyval.sty
 (c:/texlive/2024/texmf-dist/tex/generic/xkeyval/xkeyval.tex
 (c:/texlive/2024/texmf-dist/tex/generic/xkeyval/xkvutils.tex
 (c:/texlive/2024/texmf-dist/tex/generic/xkeyval/keyval.tex))))
 (c:/texlive/2024/texmf-dist/tex/latex/everyhook/everyhook.sty
 (c:/texlive/2024/texmf-dist/tex/latex/svn-prov/svn-prov.sty))
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/ltj-base.sty)
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/ltj-kinsoku.tex)
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/ltj-latex.sty
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty
 (c:/texlive/2024/texmf-dist/tex/latex/base/tuenc.def))
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty
 luaotfload | db : Font names database not found, generating new one.
 luaotfload | db : This can take several minutes; please be patient.
 (c:/texlive/2024/texmf-dist/tex/luatex/jlreq/jfm-jlreqv.lua)
 (c:/texlive/2024/texmf-dist/tex/luatex/jlreq/jfm-jlreq.lua))
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty)
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/patches/lltjp-atbegshi.sty)
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/patches/lltjp-geometry.sty
 (c:/texlive/2024/texmf-dist/tex/generic/iftex/ifluatex.sty))))
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/luatexja-compat.sty))
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/addons/luatexja-adjust.sty)
 (c:/texlive/2024/texmf-dist/tex/latex/lm/lmodern.sty)
 (c:/texlive/2024/texmf-dist/tex/latex/sttools/stfloats.sty)
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/patches/lltjp-stfloats.sty)
 (c:/texlive/2024/texmf-dist/tex/latex/jlreq/jlreq-complements.sty
 (c:/texlive/2024/texmf-dist/tex/latex/filehook/filehook.sty
 (c:/texlive/2024/texmf-dist/tex/latex/filehook/filehook-2020.sty)))) (./ex1.aux
 ) (c:/texlive/2024/texmf-dist/tex/latex/base/ts1cmr.fd) [1{c:/texlive/2024/texm
 f-var/fonts/map/pdftex/updmap/pdftex.map}] (./ex1.aux))
  879 words of node memory still in use:
    8 hlist, 1 vlist, 5 rule, 2 glue, 3 kern, 2 glyph, 164 attribute, 45 glue_sp
 ec, 24 attribute_list, 1 write, 10 user_defined nodes
    avail lists: 1:5,2:4247,3:48,4:21,5:34,6:4,7:408,8:1,9:202,10:7
 <c:/texlive/2024/texmf-dist/fonts/opentype/public/lm/lmroman9-regular.otf><c:/t
 exlive/2024/texmf-dist/fonts/opentype/public/haranoaji/HaranoAjiMincho-Regular.
 otf>
 Output written on ex1.pdf (1 page, 16349 bytes).
 Transcript written on ex1.log.

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

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

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

**dvipdfmx の実行 [#r1e1daab]
**PDF ファイルの表示 [#r1e1daab]

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

 dvipdfmx ex1

ex1.pdf というファイルができていることを確かめてください。
つぎに,PDF ファイルを表示しましょう。
ex1.pdf を

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

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

**ptex2pdf の実行 [#k492ffcb]

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

 ptex2pdf -l ex1

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

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

上の例では

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

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

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

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

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

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

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

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


* LaTeX ソースと出力ファイルの解説 [#md8c2330]

ここで,上で示した ex1.tex という LaTeX ソースファイルの中身を解説しましょう。
LaTeX ソースファイルは,この例のように「地の文」と「LaTeX に対する命令」(コントロールシークエンスともいう)からなっています。
「LaTeX に対する命令」は \ から始まります。

-最初の2行と最後の1行は,決まり文句だと思って結構です。この間に,出力(印刷)したい文章を書きます。
-\documentclass{jlreq} とは「jlreq というドキュメントクラスに従って組版する」ことを指図する命令です。ドキュメントクラスとは,その文書の見た目などを指定するもので,HTML のスタイルシートに対応します。

-\documentclass{jsarticle} とは「[[jsarticle>jsclasses]] というドキュメントクラスに従って pLaTeX で組版する」ことを指図する命令です。ドキュメントクラスは HTML のスタイルシートに対応するものです。
-\begin{document} は「文書の開始」を指示する命令です。同様に \end{document} は「文書の終わり」を指示します。この文書に対する設定など(例えばドキュメントクラスの指定)は \begin{document} の前に書かれます。文書自身の中身は \begin{document} から \end{document} の間に書きます。

-文章は適当に改行してもかまいません(改行は,出力には影響しません)。ただし,空の行は段落の切れ目を表します。
-原則として(和文のみの場合は)改行を好きな場所で入れることができます。ただし,空の行は段落の切れ目を表します。(段落の先頭には全角分の空きが自動的に入ります。)また,欧文の場合は単語の切れ目でのみ改行を入れることができます。

組版結果は出力装置(%%%''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 というファイル名にされてしまうことがあります(メモ帳のおせっかい)。
この場合は,保存してから名前を変えてください。

あらかじめ Windows で拡張子を常に表示するように設定を変更しておくと,このような間違いに気づきやすくなります。
設定方法は[[ファイルの拡張子を表示するには?:https://support.microsoft.com/en-us/kb/978449/ja?wa=wsignin1.0]]を参照してください。
設定方法は[[Microsoft Windows/基礎知識#拡張子の表示>Microsoft Windows/基礎知識#extension]]を参照してください。

**入力モード(半角/全角) [#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 <2015/01/01> patch level 0)
 Babel <3.9l> and hyphenation patterns for 79 languages loaded.
 (c:/texlive/2015/texmf-dist/tex/platex/jsclasses/jsarticle.cls(guessed encoding: ISO-2022-JP = jis)
 Document Class: jsarticle 2014/02/07 okumura
 )
 This is LuaHBTeX, Version 1.18.0 (TeX Live 2024)
  restricted system commands enabled.
 (./ex1.tex
 LaTeX2e <2023-11-01> patch level 1
 L3 programming layer <2024-02-20>
  (c:/texlive/2024/texmf-dist/tex/latex/jlreq/jlreq.cls
 Document Class: jlreq 2024/02/16 jlreq
 (c:/texlive/2024/texmf-dist/tex/latex/l3packages/l3keys2e/l3keys2e.sty
 (c:/texlive/2024/texmf-dist/tex/latex/l3kernel/expl3.sty
 (c:/texlive/2024/texmf-dist/tex/latex/l3backend/l3backend-luatex.def)))
 (c:/texlive/2024/texmf-dist/tex/latex/etoolbox/etoolbox.sty)
 (c:/texlive/2024/texmf-dist/tex/latex/jlreq/jlreq-helpers.sty)
 jlreq guessed engine: lualatex
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/luatexja.sty
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/luatexja-core.sty
 (c:/texlive/2024/texmf-dist/tex/generic/infwarerr/infwarerr.sty)
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexbase/luatexbase.sty
 (c:/texlive/2024/texmf-dist/tex/luatex/ctablestack/ctablestack.sty))
 (c:/texlive/2024/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty)
 (c:/texlive/2024/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
 (c:/texlive/2024/texmf-dist/tex/generic/iftex/iftex.sty))
 (c:/texlive/2024/texmf-dist/tex/latex/xkeyval/xkeyval.sty
 (c:/texlive/2024/texmf-dist/tex/generic/xkeyval/xkeyval.tex
 (c:/texlive/2024/texmf-dist/tex/generic/xkeyval/xkvutils.tex
 (c:/texlive/2024/texmf-dist/tex/generic/xkeyval/keyval.tex))))
 (c:/texlive/2024/texmf-dist/tex/latex/everyhook/everyhook.sty
 (c:/texlive/2024/texmf-dist/tex/latex/svn-prov/svn-prov.sty))
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/ltj-base.sty)
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/ltj-kinsoku.tex)
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/ltj-latex.sty
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/patches/lltjfont.sty
 (c:/texlive/2024/texmf-dist/tex/latex/base/tuenc.def))
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/patches/lltjdefs.sty
 (c:/texlive/2024/texmf-dist/tex/luatex/jlreq/jfm-jlreqv.lua)
 (c:/texlive/2024/texmf-dist/tex/luatex/jlreq/jfm-jlreq.lua))
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/patches/lltjcore.sty)
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/patches/lltjp-atbegshi.sty)
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/patches/lltjp-geometry.sty
 (c:/texlive/2024/texmf-dist/tex/generic/iftex/ifluatex.sty))))
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/luatexja-compat.sty))
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/addons/luatexja-adjust.sty)
 (c:/texlive/2024/texmf-dist/tex/latex/lm/lmodern.sty)
 (c:/texlive/2024/texmf-dist/tex/latex/sttools/stfloats.sty)
 (c:/texlive/2024/texmf-dist/tex/luatex/luatexja/patches/lltjp-stfloats.sty)
 (c:/texlive/2024/texmf-dist/tex/latex/jlreq/jlreq-complements.sty
 (c:/texlive/2024/texmf-dist/tex/latex/filehook/filehook.sty
 (c:/texlive/2024/texmf-dist/tex/latex/filehook/filehook-2020.sty))))
 ! 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.pdf が作成されます。

 ? I\begin
 (./ex1.aux) [1] (./ex1.aux) )
 Output written on ex1.dvi (1 page, 548 bytes).
 (./ex1.aux) (c:/texlive/2024/texmf-dist/tex/latex/base/ts1cmr.fd) [1{c:/texlive
 /2024/texmf-var/fonts/map/pdftex/updmap/pdftex.map}] (./ex1.aux))
  879 words of node memory still in use:
    8 hlist, 1 vlist, 5 rule, 2 glue, 3 kern, 2 glyph, 164 attribute, 45 glue_sp
 ec, 24 attribute_list, 1 write, 10 user_defined nodes
    avail lists: 1:5,2:4247,3:48,4:21,5:34,6:4,7:408,8:1,9:202,10:7
 <c:/texlive/2024/texmf-dist/fonts/opentype/public/lm/lmroman9-regular.otf><c:/t
 exlive/2024/texmf-dist/fonts/opentype/public/haranoaji/HaranoAjiMincho-Regular.
 otf>
 Output written on ex1.pdf (1 page, 16349 bytes).
 Transcript written on ex1.log.

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

 ? x
 No pages of output.
  818 words of node memory still in use:
    7 hlist, 5 rule, 1 dir, 3 kern, 2 glyph, 151 attribute, 45 glue_spec, 22 att
 ribute_list, 1 write, 9 user_defined nodes
    avail lists: 1:6,2:276,3:3,4:6,5:8,7:17,8:1,9:8
 
 warning  (pdf backend): no pages of output.
 Transcript written on ex1.log.

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

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

// ↓とりあえず全てコメントアウトしておきます.
// // なんか最初に書いたときと違ってちぐはぐな改変がされていて
// // 使い物にならないので,消しておきます。 -- アセトアミノフェン
// // …とはいったものの,一部だけ「pLaTeX で jarticle」の話だけ置いておきます。

* 新しい TeX システムを使っている場合 [#q6b5d096]
//* 注意:もっと古い TeX システムの場合 [#m304e480]
//
//古いシステムの場合,[[奥村先生による jsarticle ドキュメントクラス>jsclasses]]がインストールされていない場合があります。
//この場合は \documentclass{jsarticle} を \documentclass{jarticle} に変えると,jarticle という古いドキュメントクラスに従って pLaTeX で組版できます。
//ただし,jarticle ドキュメントクラスには JIS の組版規則に従っていない不都合な点があります。
//新しい jsarticle ドキュメントクラスがインストールされている場合は,''JIS の規則に従った jsarticle'' を使用したほうが好まれる場合が多いようです。

最近の 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 ドキュメントクラス>jsclasses]]がインストールされていない場合があります。

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


* 今後 TeX 入門で示すソース例について注意 [#eab636d3]

// [[最初の例>LaTeX入門/最初の例]]では、はじめに [[pLaTeX>LaTeX入門/最初の例#cb71c504]] によるタイプセットを説明し、つづいて [[upLaTeX>LaTeX入門/最初の例#q6b5d096]] によるタイプセットを説明しました。
最初の例では,はじめに pLaTeX によるタイプセットを説明し,つづいて upLaTeX によるタイプセットを説明しました。
今後 TeX 入門で示す例では,''特に upLaTeX でないと処理できないソースを除き'' pLaTeX 用のソースを示します。
// これは古い TeX 環境でも新しい TeX 環境でも「共通して」使えるソースを示すためです。
タイプセットしたい場合は,ソースファイル名を testfile.tex として

 ptex2pdf -l testfile

と入力すれば,pLaTeX と dvipdfmx で処理され,testfile.pdf が生成します。

同じソースを upLaTeX で処理したい場合には

-ソースを UTF-8 で保存する
-一行目を \documentclass[uplatex]{jsarticle} に置き換える

ことを忘れないでください。
タイプセットしたい場合は,ソースファイル名を testfile として

 ptex2pdf -u -l testfile

と入力すれば,upLaTeX と dvipdfmx で処理され,testfile.pdf が生成します。