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


最初の例

まずはうんと簡単な例からやってみましょう。

ファイルの作成

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

\documentclass{jlreq}
\begin{document}

吾輩は猫である。名前はまだ無い。

どこで生れたかとんと見当がつかぬ。
何でも薄暗いじめじめした所で
ニャーニャー泣いていた事だけは記憶している。
吾輩はここで始めて人間というものを見た。

\end{document}

この文章を Visual Studio Code などのテキストエディタに記述します。 コピー&ペーストしても OK です。 ファイルに ex1.tex という名前を付けて文字コードを UTF-8 にして保存します。 (どのディレクトリ(フォルダー)に保存すべきか迷った場合は,取りあえずデスクトップにしてください。)

LuaLaTeX の実行

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

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

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

ファイルをデスクトップに保存した場合は,cd というコマンドでカレントディレクトリを変更します。

cd Desktop

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

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

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

lualatex ex1

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

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.pdf という組版結果のファイルが生成されます。 もしエラーが起こった場合はエラーメッセージが表示されているはずですので,ex1.tex の内容が間違っていないか,再度確認してください。

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

PDF ファイルの表示

つぎに,PDF ファイルを表示しましょう。 ex1.pdf を

で開くと,きれいに組版された文章が画面に現れます。 もちろん PDF ファイルは印刷することができます。

統合環境の利用

上の例では

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

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

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

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

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

  1. エディタ画面に上の例のソースを入力します。
  2. タイプセットメニューで LuaLaTeX を指定してタイプセットします。

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

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

LaTeX ソースと出力ファイルの解説

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

PDF ファイルは異なった環境でも同じように閲覧できる文書形式 (Portable Document Format) です。

間違いやすいこと

拡張子

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

あらかじめ Windows で拡張子を常に表示するように設定を変更しておくと,このような間違いに気づきやすくなります。 設定方法はMicrosoft Windows/基礎知識#拡張子の表示を参照してください。

入力モード(半角/全角)

\ 印で始まる英語のような単語は TeX へのいろいろな指示を表すコマンドです。 すべて半角文字(Windows では直接入力)で入力してください。

エラーメッセージが出たら

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

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.pdf が作成されます。

? I\begin
(./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
 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.

エラーメッセージからどこを直すべきかわかった場合にはその箇所を修正してやり直してください。 どこを直すべきかわからなかった場合には,エラーが起きた箇所の近辺を精査して間違った箇所を探し出したうえで,入力ファイルを修正してやり直してください。

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


Last-modified: 2024-03-09 (土) 23:31:47 (40d)