LaTeX入門/最初の例
の編集
https://texwiki.texjp.org/?LaTeX%E5%85%A5%E9%96%80%2F%E6%9C%80%E5%88%9D%E3%81%AE%E4%BE%8B
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
[[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入門/発展編]] ---- * 最初の例 [#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{jlreq} \begin{document} 吾輩は猫である。名前はまだ無い。 どこで生れたかとんと見当がつかぬ。 何でも薄暗いじめじめした所で ニャーニャー泣いていた事だけは記憶している。 吾輩はここで始めて人間というものを見た。 \end{document} この文章を [[Visual Studio Code]] などのテキストエディタに記述します。 コピー&ペーストしても OK です。 ファイルに ex1.tex という名前を付けて文字コードを UTF-8 にして保存します。 (どのディレクトリ(フォルダー)に保存すべきか迷った場合は,取りあえずデスクトップにしてください。) **LuaLaTeX の実行 [#a6b25776] 作成した TeX ファイルを LuaLaTeX で処理してみましょう。 ターミナルを開き(以下「コマンドラインから…を実行します」と書いたら,これらの画面から実行することを意味します),次のようにしてさきほど ex1.tex を保存したディレクトリ(フォルダー)に移動しましょう。 コマンドラインからプログラムを実行するとき,カレントディレクトリすなわち「今どのディレクトリ(フォルダー)で作業しているか」を意識する必要があります。 通常は,コマンドラインを起動すると以下のようなホームディレクトリがカレントディレクトリになっています: -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 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 の内容が間違っていないか,再度確認してください。 また,以下のファイルも生成されているはずです。 -処理の様子を書き込んだログファイル ex1.log -補助ファイル ex1.aux (上の例の場合は特に意味のないファイルですが,のちのち相互参照で重要な役割を果たすファイルです) **PDF ファイルの表示 [#r1e1daab] つぎに,PDF ファイルを表示しましょう。 ex1.pdf を -[[SumatraPDF]], [[Okular]] (Windows の場合) -[[Skim]], [[Evince]], [[Okular]] (macOS の場合) -[[Evince]], [[Okular]], [[zathura]], [[qpdfview]] (Linux の場合) で開くと,きれいに組版された文章が画面に現れます。 もちろん PDF ファイルは印刷することができます。 **統合環境の利用 [#o7fa03d8] 上の例では > 「テキストエディタで LaTeX ソースファイルを作成」し,その後「コマンドを入力して LuaLaTeX で処理」 < という作業を行いました。 もしあなたがコマンド操作に慣れていない場合は,いちいち手動で処理を行うのが面倒だと感じるかもしれません。 このような場合に役に立つのが,''[[TeX 用の統合環境やエディタ>TeX用エディタ]]''です。 TeX 用の統合環境の多くは「ソースを編集するエディタ」と「その後の処理をボタン一発で行う機能」を持っています。 また,LaTeX の命令をハイライトしたり,入力を補完するなどして支援してくれる統合環境もあります。 もちろん LaTeX ソース編集にはどんなテキストエディタでも用いることができますので,すでにお気に入りのエディタがある場合は,LaTeX 用のマクロがあるか探してみるとよいでしょう。 特にエディタにこだわりのない方は,初めてなら [[TeXworks]] がお勧めです。 macOS をお使いの場合は [[TeXShop]] も人気があります。 TeXworks を使用する場合,[[最初の例>LaTeX入門/最初の例#cb71c504]]に示したのと同じ処理を以下のようにして簡単に行うことができます。 +エディタ画面に上の例のソースを入力します。 +タイプセットメニューで LuaLaTeX を指定してタイプセットします。 これで LuaLaTeX が実行され,ex1.pdf が出力されます。 統合環境を利用すると手軽に LaTeX 文書を作成できる反面,何か問題が生じたときに原因がどこにあるのか分かりにくくなることがあります。 原因の分からない問題が発生した場合は,一度''統合環境を離れてコマンドを実行''してみてください。 統合環境の不具合または設定の誤りが原因なのか,はたまた TeX の不具合やインストール失敗が原因なのか,問題を分離できるかもしれません。 * LaTeX ソースと出力ファイルの解説 [#md8c2330] ここで,上で示した ex1.tex という LaTeX ソースファイルの中身を解説しましょう。 LaTeX ソースファイルは,この例のように「地の文」と「LaTeX に対する命令」(コントロールシークエンスともいう)からなっています。 「LaTeX に対する命令」は \ から始まります。 -\documentclass{jlreq} とは「jlreq というドキュメントクラスに従って組版する」ことを指図する命令です。ドキュメントクラスとは,その文書の見た目などを指定するもので,HTML のスタイルシートに対応します。 -\begin{document} は「文書の開始」を指示する命令です。同様に \end{document} は「文書の終わり」を指示します。この文書に対する設定など(例えばドキュメントクラスの指定)は \begin{document} の前に書かれます。文書自身の中身は \begin{document} から \end{document} の間に書きます。 -原則として(和文のみの場合は)改行を好きな場所で入れることができます。ただし,空の行は段落の切れ目を表します。(段落の先頭には全角分の空きが自動的に入ります。)また,欧文の場合は単語の切れ目でのみ改行を入れることができます。 [[PDF]] ファイルは異なった環境でも同じように閲覧できる文書形式 (%%%''P''%%%ortable %%%''D''%%%ocument %%%''F''%%%ormat) です。 * 間違いやすいこと [#o075508f] **拡張子 [#ka2ad20a] Windows のメモ帳で保存すると,ex1.tex としたつもりでも ex1.tex.txt というファイル名にされてしまうことがあります(メモ帳のおせっかい)。 この場合は,保存してから名前を変えてください。 あらかじめ Windows で拡張子を常に表示するように設定を変更しておくと,このような間違いに気づきやすくなります。 設定方法は[[Microsoft Windows/基礎知識#拡張子の表示>Microsoft Windows/基礎知識#extension]]を参照してください。 **入力モード(半角/全角) [#m0f2be64] \ 印で始まる英語のような単語は TeX へのいろいろな指示を表すコマンドです。 すべて半角文字(Windows では直接入力)で入力してください。 // “オマジナイ”という語は,事情に通じている人の間のしゃれですよね。 // 初学者を相手にするときは使わないべきと考えます。 * エラーメッセージが出たら [#z764b56f] コマンドのつづりを間違えていたりすると,エラーメッセージが出ます。 たとえば,上記のファイルの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. エラーメッセージからどこを直すべきかわかった場合にはその箇所を修正してやり直してください。 どこを直すべきかわからなかった場合には,エラーが起きた箇所の近辺を精査して間違った箇所を探し出したうえで,入力ファイルを修正してやり直してください。 // このようになってしまったときは,Enter キーを押すと,そのエラーを無視して処理を続行します。 // // ↑ // // 初心者には使いこなせない機能です。 // エラーメッセージが表示されなくても,いつまでも TeX の処理が終わらないような場合は, Ctrl キーを押さえながら C キーをたたいてみてください。 // //↑ // // ほとんど起こりません。 各種エラーメッセージについては,[[LaTeX のエラーメッセージ]],[[TeX のエラーメッセージ]]も参照してください。 // ↓とりあえず全てコメントアウトしておきます. // // なんか最初に書いたときと違ってちぐはぐな改変がされていて // // 使い物にならないので,消しておきます。 -- アセトアミノフェン // // …とはいったものの,一部だけ「pLaTeX で jarticle」の話だけ置いておきます。 //* 注意:もっと古い TeX システムの場合 [#m304e480] // //古いシステムの場合,[[奥村先生による jsarticle ドキュメントクラス>jsclasses]]がインストールされていない場合があります。 //この場合は \documentclass{jsarticle} を \documentclass{jarticle} に変えると,jarticle という古いドキュメントクラスに従って pLaTeX で組版できます。 //ただし,jarticle ドキュメントクラスには JIS の組版規則に従っていない不都合な点があります。 //新しい jsarticle ドキュメントクラスがインストールされている場合は,''JIS の規則に従った jsarticle'' を使用したほうが好まれる場合が多いようです。
[[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入門/発展編]] ---- * 最初の例 [#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{jlreq} \begin{document} 吾輩は猫である。名前はまだ無い。 どこで生れたかとんと見当がつかぬ。 何でも薄暗いじめじめした所で ニャーニャー泣いていた事だけは記憶している。 吾輩はここで始めて人間というものを見た。 \end{document} この文章を [[Visual Studio Code]] などのテキストエディタに記述します。 コピー&ペーストしても OK です。 ファイルに ex1.tex という名前を付けて文字コードを UTF-8 にして保存します。 (どのディレクトリ(フォルダー)に保存すべきか迷った場合は,取りあえずデスクトップにしてください。) **LuaLaTeX の実行 [#a6b25776] 作成した TeX ファイルを LuaLaTeX で処理してみましょう。 ターミナルを開き(以下「コマンドラインから…を実行します」と書いたら,これらの画面から実行することを意味します),次のようにしてさきほど ex1.tex を保存したディレクトリ(フォルダー)に移動しましょう。 コマンドラインからプログラムを実行するとき,カレントディレクトリすなわち「今どのディレクトリ(フォルダー)で作業しているか」を意識する必要があります。 通常は,コマンドラインを起動すると以下のようなホームディレクトリがカレントディレクトリになっています: -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 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 の内容が間違っていないか,再度確認してください。 また,以下のファイルも生成されているはずです。 -処理の様子を書き込んだログファイル ex1.log -補助ファイル ex1.aux (上の例の場合は特に意味のないファイルですが,のちのち相互参照で重要な役割を果たすファイルです) **PDF ファイルの表示 [#r1e1daab] つぎに,PDF ファイルを表示しましょう。 ex1.pdf を -[[SumatraPDF]], [[Okular]] (Windows の場合) -[[Skim]], [[Evince]], [[Okular]] (macOS の場合) -[[Evince]], [[Okular]], [[zathura]], [[qpdfview]] (Linux の場合) で開くと,きれいに組版された文章が画面に現れます。 もちろん PDF ファイルは印刷することができます。 **統合環境の利用 [#o7fa03d8] 上の例では > 「テキストエディタで LaTeX ソースファイルを作成」し,その後「コマンドを入力して LuaLaTeX で処理」 < という作業を行いました。 もしあなたがコマンド操作に慣れていない場合は,いちいち手動で処理を行うのが面倒だと感じるかもしれません。 このような場合に役に立つのが,''[[TeX 用の統合環境やエディタ>TeX用エディタ]]''です。 TeX 用の統合環境の多くは「ソースを編集するエディタ」と「その後の処理をボタン一発で行う機能」を持っています。 また,LaTeX の命令をハイライトしたり,入力を補完するなどして支援してくれる統合環境もあります。 もちろん LaTeX ソース編集にはどんなテキストエディタでも用いることができますので,すでにお気に入りのエディタがある場合は,LaTeX 用のマクロがあるか探してみるとよいでしょう。 特にエディタにこだわりのない方は,初めてなら [[TeXworks]] がお勧めです。 macOS をお使いの場合は [[TeXShop]] も人気があります。 TeXworks を使用する場合,[[最初の例>LaTeX入門/最初の例#cb71c504]]に示したのと同じ処理を以下のようにして簡単に行うことができます。 +エディタ画面に上の例のソースを入力します。 +タイプセットメニューで LuaLaTeX を指定してタイプセットします。 これで LuaLaTeX が実行され,ex1.pdf が出力されます。 統合環境を利用すると手軽に LaTeX 文書を作成できる反面,何か問題が生じたときに原因がどこにあるのか分かりにくくなることがあります。 原因の分からない問題が発生した場合は,一度''統合環境を離れてコマンドを実行''してみてください。 統合環境の不具合または設定の誤りが原因なのか,はたまた TeX の不具合やインストール失敗が原因なのか,問題を分離できるかもしれません。 * LaTeX ソースと出力ファイルの解説 [#md8c2330] ここで,上で示した ex1.tex という LaTeX ソースファイルの中身を解説しましょう。 LaTeX ソースファイルは,この例のように「地の文」と「LaTeX に対する命令」(コントロールシークエンスともいう)からなっています。 「LaTeX に対する命令」は \ から始まります。 -\documentclass{jlreq} とは「jlreq というドキュメントクラスに従って組版する」ことを指図する命令です。ドキュメントクラスとは,その文書の見た目などを指定するもので,HTML のスタイルシートに対応します。 -\begin{document} は「文書の開始」を指示する命令です。同様に \end{document} は「文書の終わり」を指示します。この文書に対する設定など(例えばドキュメントクラスの指定)は \begin{document} の前に書かれます。文書自身の中身は \begin{document} から \end{document} の間に書きます。 -原則として(和文のみの場合は)改行を好きな場所で入れることができます。ただし,空の行は段落の切れ目を表します。(段落の先頭には全角分の空きが自動的に入ります。)また,欧文の場合は単語の切れ目でのみ改行を入れることができます。 [[PDF]] ファイルは異なった環境でも同じように閲覧できる文書形式 (%%%''P''%%%ortable %%%''D''%%%ocument %%%''F''%%%ormat) です。 * 間違いやすいこと [#o075508f] **拡張子 [#ka2ad20a] Windows のメモ帳で保存すると,ex1.tex としたつもりでも ex1.tex.txt というファイル名にされてしまうことがあります(メモ帳のおせっかい)。 この場合は,保存してから名前を変えてください。 あらかじめ Windows で拡張子を常に表示するように設定を変更しておくと,このような間違いに気づきやすくなります。 設定方法は[[Microsoft Windows/基礎知識#拡張子の表示>Microsoft Windows/基礎知識#extension]]を参照してください。 **入力モード(半角/全角) [#m0f2be64] \ 印で始まる英語のような単語は TeX へのいろいろな指示を表すコマンドです。 すべて半角文字(Windows では直接入力)で入力してください。 // “オマジナイ”という語は,事情に通じている人の間のしゃれですよね。 // 初学者を相手にするときは使わないべきと考えます。 * エラーメッセージが出たら [#z764b56f] コマンドのつづりを間違えていたりすると,エラーメッセージが出ます。 たとえば,上記のファイルの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. エラーメッセージからどこを直すべきかわかった場合にはその箇所を修正してやり直してください。 どこを直すべきかわからなかった場合には,エラーが起きた箇所の近辺を精査して間違った箇所を探し出したうえで,入力ファイルを修正してやり直してください。 // このようになってしまったときは,Enter キーを押すと,そのエラーを無視して処理を続行します。 // // ↑ // // 初心者には使いこなせない機能です。 // エラーメッセージが表示されなくても,いつまでも TeX の処理が終わらないような場合は, Ctrl キーを押さえながら C キーをたたいてみてください。 // //↑ // // ほとんど起こりません。 各種エラーメッセージについては,[[LaTeX のエラーメッセージ]],[[TeX のエラーメッセージ]]も参照してください。 // ↓とりあえず全てコメントアウトしておきます. // // なんか最初に書いたときと違ってちぐはぐな改変がされていて // // 使い物にならないので,消しておきます。 -- アセトアミノフェン // // …とはいったものの,一部だけ「pLaTeX で jarticle」の話だけ置いておきます。 //* 注意:もっと古い TeX システムの場合 [#m304e480] // //古いシステムの場合,[[奥村先生による jsarticle ドキュメントクラス>jsclasses]]がインストールされていない場合があります。 //この場合は \documentclass{jsarticle} を \documentclass{jarticle} に変えると,jarticle という古いドキュメントクラスに従って pLaTeX で組版できます。 //ただし,jarticle ドキュメントクラスには JIS の組版規則に従っていない不都合な点があります。 //新しい jsarticle ドキュメントクラスがインストールされている場合は,''JIS の規則に従った jsarticle'' を使用したほうが好まれる場合が多いようです。
テキスト整形のルールを表示する