22layout : " lesson"
33lang : " ja"
44title : " エラーへの対処"
5- description : " このレッスンでは LaTeX による文書作成でよくあるエラーを紹介します 。各エラーがどのような意味で、どうすれば改善できるのかを示します。"
5+ description : " このレッスンではLaTeXによる文書作成でよくあるエラーを紹介します 。各エラーがどのような意味で、どうすれば改善できるのかを示します。"
66toc-anchor-text : " エラーへの対処"
77toc-description : " 期待通りの挙動でないときは"
88---
99
1010# エラーへの対処
1111
12- <span class =" summary " >このレッスンでは LaTeX による文書作成でよくあるエラーを紹介します 。各エラーがどのような意味で、どうすれば改善できるのかを示します。</span >
12+ <span class =" summary " >このレッスンではLaTeXによる文書作成でよくあるエラーを紹介します 。各エラーがどのような意味で、どうすれば改善できるのかを示します。</span >
1313
14- 典型的なワープロソフトと異なり、LaTeX には編集 ・実行・確認のサイクルがあり、プログラミング言語のコンパイラを使った作業に似ています。そして、プログラミングの場合と同様に、入力の中に間違いが含まれていて、システムが報告するエラーメッセージを解読しなければならない場合があります。
14+ 典型的なワープロソフトと異なり、LaTeXには編集 ・実行・確認のサイクルがあり、プログラミング言語のコンパイラを使った作業に似ています。そして、プログラミングの場合と同様に、入力の中に間違いが含まれていて、システムが報告するエラーメッセージを解読しなければならない場合があります。
1515
1616## よくあるエラー
1717
1818ここからいくつかの一般的なエラーを紹介していきます。各エラー例ではエラーメッセージの見た目に関することについても解説します。
1919
2020実際にエラーとなるコード例を試してみるだけでも勉強になるかと思いますが、さらに編集機能を利用して問題箇所を修正し、ご自身の手でエラーを解決できるか試してみるといいでしょう。
2121
22- ### pdflatex コマンドが見つからない
22+ ### pdflatexコマンドが見つからない
2323
24- これは LaTeX 初心者が陥りやすい典型的なエラーです。Windows の場合 、次のようなメッセージが現れます:
24+ これはLaTeX初心者が陥りやすい典型的なエラーです。Windowsの場合 、次のようなメッセージが現れます:
2525
2626```
2727'pdflatex' is not recognized as an internal or external command,
2828operable program or batch file.
2929```
3030{: .noedit :}
3131
32- Linux などの場合は次のようなメッセージが見られるでしょう :
32+ Linuxなどの場合は次のようなメッセージが見られるでしょう :
3333
3434```
3535bash: pdflatex: command not found
3636```
3737{: .noedit :}
3838
39- これらは厳密には TeX のエラーではなく、TeX がインストールされていない (あるいは見つからない)というオペレーティングシステムのエラーです。よくある間違いは、TeXworks や TeXShop などの ** エディタ** だけをインストールしていて、TeX Live や MiKTeX といった TeX システムをインストールしていないというものです 。
39+ これらは厳密にはTeXのエラーではなく、TeXがインストールされていない (あるいは見つからない)というオペレーティングシステムのエラーです。よくある間違いは、TeXworksやTeXShopなどの ** エディタ** だけをインストールしていて、TeX LiveやMiKTeXといったTeXシステムをインストールしていないというものです 。
4040
41- ### TeX エラーメッセージの解剖学
41+ ### TeXエラーメッセージの解剖学
4242
4343``` latex
4444\documentclass{jsarticle}
@@ -47,7 +47,7 @@ bash: pdflatex: command not found
4747
4848\begin{document}
4949
50- コマンドを使ってみます:\mycommand.
50+ コマンドを使ってみます:\mycommand
5151
5252\end{document}
5353```
@@ -57,21 +57,21 @@ bash: pdflatex: command not found
5757```
5858! Undefined control sequence.
5959\mycommand ->\textbold
60- {hmmm }
60+ {むむむ }
6161l.7 My command is used here \mycommand
6262 .
6363?
6464```
6565{: .noedit :}
6666
67- * ` ! ` から始まる1行目は、エラーの一般的な性質を述べています(この例では未定義のコマンドがあると言っています)
68- * 続く2行は TeX が処理していたソース箇所を示しています 。ここで改行位置は TeX が到達した地点を表しています。つまり改行位置直前の ` \textbold ` こそが未定義のコマンドであるということがわかります。改行後の ` {ムムム} ` は、本来コマンドの引数として読まれるべきだったものですが、まだ TeX によって処理されていません 。
67+ * ` ! ` から始まる1行目は、エラーの一般的な性質を述べています(この例では未定義のコマンドがあると言っています)
68+ * 続く2行はTeXが処理していたソース箇所を示しています 。ここで改行位置は TeX が到達した地点を表しています。つまり改行位置直前の` \textbold ` こそが未定義のコマンドであるということがわかります。改行後の` {むむむ} ` は、本来コマンドの引数として読まれるべきだったものですが、まだTeXによって処理されていません 。
6969* この後にさらにエラーが発生した文脈について追加の説明が表示される場合もあります。
70- * ` l.〈行番号〉 ` から始まる行はソースファイルにおいてエラーが特定された位置を示しています。
70+ * ` l.〈行番号〉 ` から始まる行はソースファイルにおいてエラーが特定された位置を示しています。
7171
72- * 最後の行は単体の ` ? ` です。TeX を対話的に使用している場合はここで TeX への指示を入力することができるのですが、ほとんどのエディタやオンラインシステムは TeX を対話的に実行するのではなく、エラーがあっても TeX を停止させることなく一旦は文書全体を処理させようと試みます 。その上で、改めてエラー発生箇所のメッセージを表示させている場合が多いです。もし TeX を対話的に実行している場合は ` s ` と入力することにより、TeX にひとまず最後まで文書を処理するように指示することができます 。
72+ * 最後の行は単体の` ? ` です。TeXを対話的に使用している場合はここでTeXへの指示を入力することができるのですが、ほとんどのエディタやオンラインシステムはTeXを対話的に実行するのではなく、エラーがあってもTeXを停止させることなく一旦は文書全体を処理させようと試みます 。その上で、改めてエラー発生箇所のメッセージを表示させている場合が多いです。もしTeXを対話的に実行している場合は ` s ` と入力することにより、TeXにひとまず最後まで文書を処理するように指示することができます 。
7373
74- ここで注目すべき点は、TeX はコマンドを定義したところでエラーを起こしているわけではないことです 。実際、` \mycommand ` を定義しても、そのコマンドを使用しなかった場合、エラーは発生しません。この例ではエラーが8行目にあると報告されているにも関わらず、「本当の」エラーは4行目のコマンド定義の中にあります。したがって、エラーメッセージ全体を視ることが重要です。
74+ ここで注目すべき点は、TeXはコマンドを定義したところでエラーを起こしているわけではないことです 。実際、` \mycommand ` を定義しても、そのコマンドを使用しなかった場合、エラーは発生しません。この例ではエラーが8行目にあると報告されているにも関わらず、「本当の」エラーは4行目のコマンド定義の中にあります。したがって、エラーメッセージ全体を視ることが重要です。
7575
7676エディタによってはエラーログの「概要」のみを表示するものもあります。このようなエディタでは、場合によっては次のようにミスリーディングな表示になってしまう場合があります:
7777
@@ -80,11 +80,12 @@ line 8: undefined command: ...\mycommand
8080```
8181{: .noedit :}
8282
83- これではあたかも ` \mycommand ` が未定義であるかのように読めますが、実際のエラーはそうではありません。
83+ これではあたかも` \mycommand ` が未定義であるかのように読めますが、実際のエラーはそうではありません。
8484
8585### アンバランスなブレース
8686
8787``` latex
88+ % !TEX program=pdflatex
8889\documentclass{article}
8990
9091\usepackage[leqno}{amsmath}
@@ -94,14 +95,14 @@ line 8: undefined command: ...\mycommand
9495\end{document}
9596```
9697
97- 上記のコード例ではアンバランスな ` } ` がオプション引数の終端で使用されています。この閉じブレースは LaTeX のオプション処理を失敗させるため 、あまり役に立たない内部エラーを見ることになります:
98+ 上記のコード例ではアンバランスな` } ` がオプション引数の終端で使用されています。この閉じブレースはLaTeXのオプション処理を失敗させるため 、あまり役に立たない内部エラーを見ることになります:
9899
99100```
100101! Argument of \@fileswith@ptions has an extra }.
101102```
102103{: .noedit :}
103104
104- エラーの説明は役に立ちませんが、続く2行がエラー箇所を正確に示しています。改行位置は TeX がどこまで読むことができたかを示しています :
105+ エラーの説明は役に立ちませんが、続く2行がエラー箇所を正確に示しています。改行位置はTeXがどこまで読むことができたかを示しています :
105106
106107```
107108l.3 \usepackage[leqno}
@@ -112,6 +113,7 @@ l.3 \usepackage[leqno}
112113### ファイルが見つからない
113114
114115``` latex
116+ % !TEX program=pdflatex
115117\documentclass{article}
116118
117119\usepackage{amsmathz}
@@ -133,7 +135,8 @@ l.3 \usepackage[leqno}
133135### ディスプレイ数式内での空行
134136
135137```
136- \documentclass{jsarticle}
138+ \RequirePackage{plautopatch}
139+ \documentclass[dvipdfmx]{jlreq}
137140
138141\begin{document}
139142
0 commit comments