ここでは TeX が出すエラーメッセージを集めてあります。~
他に[[LaTeX のエラーメッセージ]]または[[LaTeX の警告メッセージ]]もご覧ください。~

//#contents
// 目次そのものが無くてもリンクをはることが出来るようなので,目次の出力はコメントしてみました。

** 全般的な注意 [#d920091e]
-日本語を含む文書を作成する場合,和文文字の空白(いわゆる全角空白)は
''「文法上無視される空白」ではない通常の文字である''ことに注意してください.
特に,ソースファイルのインデント(字下げ)を和文文字の空白で行うのは有害です.
-文字 “!” で始まる行はエラーメッセージの本体なのですが,
状況をつかむためには,エラーメッセージの本体に続く記述
(l.### [### はエラーが判明した箇所の行番号]で始まる行までの部分)
も調べる必要があることがあります.
例えば,
 ! Undefined control sequence.
 \kintou #1#2->\hbox to#1{\jintercharskip 
                                          =0pt plus 1fil \jasciikanjiskip =0p...
 l.9 \kintou{5zw}{サンプル}
のようなメッセージが現れた場合,“! Undefined control sequence.” の
次の行の末尾の “\jintercharskip” が未定義だと言われているわけです.
エラーメッセージを提示する際には,この例にみられるような
「本体の後に表示されている(重要な)データ」も忘れずに提示してください.
// なお,先の例は「jLaTeX を前提として作成したマクロを pLaTeX で処理した」場合を
// 想定したものです.

-エラーが発生すると TeX は処理を一時停止して待機します。エラーメッセージを見てもどこが悪かったのかわからない場合には、この待機中に“h”を入力するともう少し詳しい状況説明と対処方法が表示されることもあります。エラーメッセージを見てどこを直すべきかわかった場合には、この待機中に“x”を入力すると TeX はここで処理を終了しますから、入力ファイルを修正してやり直してください。

-自力では対処できそうにない場合には,
エラーが再現する''完全な''(すなわち,それ自身でタイプセット可能な
\documentclass から \end{document} まで完備した)例を提示して,
問題点のチェックを然るべきところで依頼するとよいでしょう.

**エラーメッセージ一覧(アルファベット順) [#cd487d75]

-以下の記述では,\somecs を「コマンド名を一般的に表す記号」として用いています.
メッセージに “\somecs” という文字列が現れているわけではないことに注意してください.
-意味は「文字通り」というものも多いのですが,
とりあえず日本語による説明と対処法(のヒント)を挙げています.
-エラーメッセージおよび対処法は,基本的には「オリジナルの」TeX
(日本語化に関するところについては pTeX)に基づいています.
レジスタの番号の範囲や文字コードの範囲についての記述は,
e-TeX 等の「拡張版」の処理系を用いた場合にはあてはまらないことがあります.
// 将来的には,それらの処理系での差異についてもこまごまと補足したほうが
// よいのかもしれませんが……

***! A <box> was supposed to be here. [#w8179566]
ボックスが必要な箇所にボックスがない場合に現れるエラーメッセージです.
例えば,\setbox0={...} という記述を行うとこのエラーが生じます
(この例では,正しくは \setbox0=\hbox{...},\setbox0=\vbox{...}
のような具合に代入の右辺をボックスにしなければなりません).~
→ エラーが生じた箇所の近辺の記述をチェックして,
\hbox,\vbox などを補ってください.

***! Ambiguous; you need another { and }. [#z1707221]
$a \over b \over c$
のように分数の分母・分子の範囲が不明確な記述を行った場合に現れるエラーメッセージです.~
→ ${a \over b} \over c$ あるいは $a \over {b \over c}$
のような具合に分母・分子の範囲を明示すればいいのですが…
\frac のような適切なマクロを用いている限り,
このエラーにはお目にかからずに済むことでしょう.

***! Argument of \somecs has an extra }. [#x710bb23]
\mbox{\label} という記述を行った場合のように,
コマンドの引数を読み取っている際に余分な閉じ括弧が現れた場合のエラーメッセージです.~
→ 今の例のようにコマンドの引数が不足していると思われるので,
問題となっている箇所で用いたコマンドの引数の個数をチェックしてください.
また,何らかのコマンドのオプション引数の中にオプション引数をもつような別のコマンドを不用意に入れると,
ユーザの意図とは異なるパターンマッチングが行われこのエラーが生じることがあります
(例えば,\item[\makebox[1em][c]{i}] のような記述を行った場合).
これに該当する場合には,(1)“外側の”コマンドのオプション引数全体を {,}
で囲む(今の例で言えば,\item[{\makebox[1em][c]{i}}] のようにする),
(2)“外側の”コマンドのオプション引数全体を別のマクロにする
(今の例で言えば,\def\x{\makebox[1em][c]{i}} \item[\x] のようにする),
といった対処法があります.
> ただ,オプション引数内に不用意に ] を入れているような
“引数の書式指定のミス”からはほかのエラーも生じ得ます
(“外側の”コマンドの内部処理次第です).
なお,オプション引数などの読み取りの際には,{ と } 以外の括弧に関しては
(通常は)括弧の重なり具合を考慮せずに単純にパターンマッチを行うだけです.
ただし,マクロの引数には { と } の対応がとれたものが用いられるので,
\item[{\makebox[1em][c]{i}}] の \makebox のオプション引数を囲む括弧の ]
は \item のオプション引数の終端にはなりません
(それゆえ,上記の(1)のような対処法が使えます).

***! Arithmetic overflow. [#h23057f3]
\multiply,\divide による整数・寸法の乗除算の際に,
ゼロ除算などによって“数値オーバーフロー”が生じた場合に現れるエラーメッセージです.~
→ ユーザ自身が行っている計算の内容を見直し,
必要に応じて“文書中で与えた数値・寸法を変更”,
“ゼロ除算の類を回避する処理を追加”といった対処を施してください.
なお,\resizebox を用いた場合にも,
寸法を変更する対象によってはゼロ除算が発生する可能性があります.
その場合には \resizebox* のように * をつけるか,寸法を変更する対象に
(\strut のような)ダミーの支柱を入れるとよいでしょう.

***! Bad character code ('''code'''). [#d9ba1cb4]
\char あるいは \chardef の際に,文字コードとしては不適切な '''code'''
という値を指定した場合に現れるエラーメッセージです.~
→ 文字コードの値が正しいかどうかを確認してください.
和文文字の文字コードを指定する場合には,\euc,\jis,\sjis を前置してください.

***! Bad delimiter code ('''code'''). [#v0756104]
\delimiter または \radical のあとに区切り記号コード
(根号にも同じ形式のコードが用いられます)としては不適切な '''code'''
という値を指定した場合に現れるエラーメッセージです.~
→ 0 以上 2^{27} - 1 以下の値を指定してください.
なお,括弧類を記述するためのマクロは,
 \def\langle{\delimiter"426830A }
のような具合に定義されますが,この定義の末尾の閉じ括弧の直前の空白文字
(それは“構文上必要な空白文字”です)を忘れると
\langle A のような記述が上記のエラーを引き起こします.

***! Bad mathchar ('''code'''). [#oc946c80]
\mathchar あるいは \mathchardef の際に,数式用文字のコードとしては不適切な '''code'''
という値を指定した場合に現れるエラーメッセージです.~
→ 0 以上 32767 以下の値を指定してください.

***! Bad number ('''number'''). [#ad306e6a]
\openout や \ifeof の直後のように 0 以上 15 以下の整数が必要な箇所で,
その範囲外の数値 '''number''' を用いた場合に現れるエラーメッセージです.~
→ エラーを引き起こした箇所で用いた数値を適切なものに変更してください.
>ただし,充分に新しい処理系では,\ifeof18 の真偽によって“shell-escape”
の機能を有効にしているか否かを知ることができるようになっています.
// この“ただし…”の部分は [[qa:33410]] を受けたものですが,
// 追記者自身は実際に最新の処理系を用いた確認を行ったわけではありません.

***! Bad \patterns. [#fa8ff04d]
\patterns の引数の中に通常の文字以外の(\relax のような)ものが含まれる場合に現れるエラーメッセージです.~
→ \patterns の引数を修正するところですが,むしろ問題となっている \patterns
を含むファイルが壊れている,という可能性を疑った方がよいかもしれません.

***! Bad \prevgraf ('''number'''). [#i2695551]
\prevgraf に対して,負の値 '''number''' を設定しようとした場合に現れるエラーメッセージです.~
→ \prevgraf に値を設定する場合には 0 以上の値を設定してください.

***! Bad register code ('''number'''). [#bbe80a53]
“\count1000=0”のようにレジスタ番号としては不適切な値 '''number'''
をレジスタ番号に指定した場合に現れるエラーメッセージです.~
→ レジスタ番号を適切なものに変更してください.
また,マクロを作成していると,\dimen@\@tempdima と書くつもりで
\dimen\@tempdima としてしまう,というミスもよくあります.

***! Bad space factor ('''factor'''). [#lb4b5b8b]
\spacefactor を用いる際に,スペースファクターとして不適切な値を指定した場合に現れるエラーメッセージです.~
→ 1 以上 32767 以下の値を指定してください.

***! \box255 is not void. [#x3228f1e]
出力ルーチン開始時に \box255 が空(無効,void)でない場合に現れるエラーメッセージです.~
→ 文書中では,原則として \box255 はユーザ自身では使用しないでください.
(一般的なパッケージを使用している範囲では,
充分に多くのボックス・レジスタが未割り当ての状態にあるので)
必要があればユーザ自身の処理に用いるボックス・レジスタを
\newbox を用いて確保してください.

***! Dimension too large. [#kdfc5490]
TeX が扱える最大の寸法(2^{30}-1 sp)を超える寸法を与えた場合に現れるエラーメッセージです.~
→ 文書中で指定した寸法が適切であるかどうかをチェックしてください.
// \includegraphics で読み込む eps ファイルの BoundingBox が極端に大きい場合にも
// このエラーが生じることがあります.
また,マクロでの寸法の計算のミスによってもこのエラーが生じることがあります.

***! Discretionary list is too long. [#e0701907]
\discretionary の“ノンブレーク・テキスト”(第 3 引数)が長すぎる場合に現れるエラーメッセージです.~
→ 行分割が起こる箇所を(必要があれば出力結果を眺めて)絞り込んで,
\discretionary に対してもっと短い文字列を与えるだけで済むように変更してください.

***! Display math should end with $$. [#aa3d3e4e]
$$...$ のような具合に,(TeX のプリミティブな機能で与えられる)
ディスプレイ数式の終端が単一の $ になっている場合に現れるエラーメッセージです.~
→ ディスプレイ数式の終端部分の記述を修正してください.
LaTeX の場合には,\[ ... \] の \] を書き忘れている場合もあります.
> なお,LaTeX 文書では $$...$$ の形式のディスプレイ数式は原則として用いないでください
($$...$$ には fleqn クラスオプションなどの指定が適用されない,といった不利益があります).

***! Double subscript. [#j9f0e487]
$a_b_c$ のような具合に同じ文字・記号(この例では a)
に対して下添字の指定を複数回行った場合に現れるエラーメッセージです.~
→ この例の場合で言えば,$a_{b_c}$(こちらを意図していることが多いでしょう)
あるいは ${a_b}_c$ のように書き換えて,添字のつき方を明確にしてください.

***! Double superscript. [#w34c9626]
$a^b^c$ のような具合に同じ文字・記号(この例では a)
に対して上添字の指定を複数回行った場合に現れるエラーメッセージです.~
→ この例の場合で言えば,$a^{b^c}$ あるいは ${a^b}^c$ のように書き換えて,
添字のつき方を明確にしてください(${a^b}^c$ については,
むしろ $(a^b)^c$ としたほうが読みやすいでしょう).
なお,数式中のプライム記号については $f''$ のように記述する際に,
' どうしの間に空白文字を入れて $f' '$
のように記述した場合にもこのエラーが生じることに注意してください.

***! Duplicate pattern. [#n68841a4]
\patterns の引数に同一項目が複数回現れる場合のエラーメッセージです.~
→ \patterns の引数を重複項目がなくなるように修正するところですが,
むしろ問題となっている \patterns を含むファイルが壊れている,
という可能性を疑った方がよいかもしれません.

***! Emergency stop. [#s9ac5238]
TeX を非対話的に使用している場合に,
“読み込むべきファイルが見つからなかった”といった理由で対話的な処理を必要としたり,
“ある段落が終了した後に 100 個のエラーが(立て続けに)生じたので,
(無限ループとみなして)処理を取り止める”といった理由で
“非常終了”したときに現れるエラーメッセージです.~
→ とりあえず,TeX を対話的に使用してください.
本当に対処すべきエラーメッセージはこのメッセージよりも前に現れていることが一般的です.
また,“ファイルの終端にいたっても TeX 文書の終端を表すコマンドが見つからなかった”
といった理由で“! Emergency stop.”自身が本当に対処すべきエラーメッセージになっている場合でも,
対話的に使用すれば何が問題になっているかがわかることでしょう.
// もちろん,log ファイルには“! Emergency stop.”のあとに
// “That makes 100 errors; please try again.”といった
// “非常終了の理由”が記されていますので,それも参考になるでしょう
// (ただ,そのあたりの情報を活用できる方は,然るべきリファレンスをすでにお持ちでしょう…).

***! End of file on the terminal... why? [#yb46292b]
例えば,コマンドラインからまったく引数をつけずに
TeX を起動したときに現れるアスタリスク 2 個のプロンプトに対してファイル終端コード
(CTRL + Z や CTRL + D,OS により様々)を入力したようなときに
// ,または,まったく中身のない(サイズ 0 の)ファイル zzz.txt を用意し,
// コマンドラインから
// tex < zzz.txt
// のような操作を行ったりしたときなどにも
目にすることができるエラーメッセージですが……
このようなことを故意に行っているのでもなければ,
ユーザ自身で何か変な操作を
(ときとして統合環境の類を経由するなどして暗黙のうちに)行っているのでしょう.

***! Extra }, or forgotten '''something'''. [#v1751df9]
開き括弧 { よりも閉じ括弧 } のほうが多い場合に現れるエラーメッセージ(の一種)です.~
→ '''something''' に応じた対処を施してください.
\endgroup の場合には,\begingroup ...} のような具合にグループの開始・終了がかみ合っていない可能性があります.
$ の場合には,$}$ のような具合に数式中に余分な閉じ括弧があるものと考えられます.
\right の場合には,開き括弧が足りないという場合以外に,
\left に対応する \right が欠けているという場合もあるので,
エラーが生じた箇所の近辺の記述を見直してください.

***! Extra alignment tab has been changed to \cr. [#h3559f15]
表や各種のディスプレイ数式環境の記述の際に,
ひとつの行に含まれる & が多すぎる場合に現れるエラーメッセージです.~
→ エラーを引き起こした行に含まれる & の個数をチェックしてください.
また,その直前の行の終端に \\ を書き忘れていないかどうかもチェックしてください.
amsmath パッケージが提供する各種の“行列”用の環境(matrix など)
の列数が多すぎる場合にもこのエラーが生じますが,その場合には
LaTeX のカウンタ MaxMatrixCols の値を充分に大きな値に再設定してください.

***! Extra \somecs. [#n0e58543]
文字通り,\somecs が余分である場合に現れるエラーメッセージです.~
→ \somecs に応じた対処を施してください.
例えば,\right の場合には対応する \left を補うか,不要な \right を削除します.
なお,ディスプレイ数式の記述では,\left と \right を別の行に分けて配置することはできないので,
ダミーの \left. または \right. を補うか,\biggl/\biggr などを用いて書き換えてください.
\else/\or/\fi の場合には条件処理に関する記述を書き間違えて
\if... と \fi の間に \else が 2 個以上入っている,という場合や,
\if... を伴わない \else/\fi が現れている,ということが考えられます.
\endgroup の場合には,対応する \begingroup を補うか,
不要な \endgroup を削除するとよいでしょう.
\endcsname の場合には,対応する \csname を補うか不要な \endcsname を削除してください.

***(Fatal format file error; I'm stymied) [#ta758343]
違うバージョンの TeX 用のフォーマットファイルを読み込んだときに現れるメッセージです.
このメッセージが現れた場合には,
TeX 処理系自身のインストールが正しく行われているかをチェックしてください.
特に,複数の処理系を混在させた(あるいは古い処理系を更新した)場合には,
本来読み込むべきフォーマットファイルとは異なるフォーマットファイルが読み込まれることがあります.

***! File ended within \read. [#a9800b9d]
\read によるファイルからの読み込みを行う際に,
ファイル終端まで読み込んでも括弧の対応がつかない(開き括弧のほうが多い)
場合に現れるエラーメッセージです.~
→ \read で読み取るデータファイル内の記述をチェックしてください.
TeX の特殊文字のカテゴリーコードを
12 に変更した状態でファイルを読み込むことになる場合もあります.

***! File ended while scanning '''item''' of \somecs. [#r747a244]
\somecs に関する '''item'''(例えば,マクロの引数)
を読み取っている間にファイル終端に到った場合に現れるエラーメッセージです.~
→ 文書中の記述に何か間違い(マクロの引数の個数や書式指定の間違い(} の欠落など)
といったもの)があるわけですが… 原因は様々ですから,とりあえず,
\somecs を用いた箇所の近辺の記述が正しいかどうかを見直してください.

***! Font \somecs='''fontname''' not loadable: Bad metric (TFM) file. [#t061d5e5]
tfm ファイルが壊れているためフォント '''fontname''' を読み込むことができない,
ということです.問題となっているフォントの tfm ファイルの充分に新しいもの
(あるいは充分に信頼できるもの)を入手・再インストールしてください.
自作フォントについてこのエラーが生じた場合には…
とりあえず,フォント作成に用いたツールを更新した上で再作成することになるのでしょう.

***! Font \somecs='''fontname''' not loadable: Metric (TFM) file not found. [#z2259908]
文字通り,フォント '''fontname''' の tfm ファイルが存在しない(あるいは,
所在が不明である)場合のエラーメッセージです.
問題となっているフォントの tfm ファイルを然るべきところから入手・インストールしてください.
ただし,jTeX を前提とした和文フォントの指定を
pTeX で処理させた場合にもこのエラーが生じることがあります.

// :! Font \somecs has only '''number''' fontdimen parameters.
// テキスト用フォントには 7 個の \fontdimen パラメータが必要ですが,
// フォント識別子 \somecs に割り当てられたフォントには
// '''number''' 個のパラメータしかない,という場合に現れるエラーメッセージのようです…
// が,確認できず,手元の資料にも具体的な記述はありません.

***! Font \somecs='''fontname''' not loaded: Not enough room left. [#z3219297]
フォント '''fontname''' のフォントメトリックを読み込む余地がない,
ということですが,この場合にはファイル texmf.cnf の中の
font_max(フォント数の上限)あるいは
font_mem_size(概ね,フォントメトリックデータ自身の合計サイズの上限)
を増やしてください.

***! Forbidden control sequence found while scanning  '''item''' of \somecs. [#lacd9cb4]
\somecs に関する '''item'''(例えば,マクロの引数)
を読み取っている間に \outer 指定がなされた
(ほかのコマンドの引数や“読み飛ばされる部分”では使えないように設定された)
コマンドが現れた場合に現れるエラーメッセージです.~
→ 問題となっているコマンドがマクロの引数の中のような箇所に現れないように文書を書き換えればいいのですが…
LaTeX2e のデフォルトでは \outer 指定がなされた“コマンド”というのは改ページコード(^^L,
これはアクティブな文字で \outer な \par として定義されています)のみですから,
文書中の記述に何か間違い(例えば,マクロの引数の個数や書式指定の間違い(} の欠落など))
があると疑って,\somecs を用いた箇所の近辺の記述を見直すとよいでしょう.

***! Huge page cannot be shipped out. [#ye3540ad]
幅または高さが TeX に扱える最大の寸法を超えるような巨大なページを
dvi ファイルに送り出そうとした場合に現れるエラーメッセージです.
例えば,
 \documentclass{article}
 \hoffset=9000pt
 \textwidth=9000pt
 \begin{document}
   zzz
 \end{document}
あるいは
 \documentclass{article}
 \voffset=9000pt
 \textheight=9000pt
 \begin{document}
   zzz
 \end{document}
のような記述を行うと,このエラーが生じます.~
→ 版面寸法(および \hoffset/\voffset の値)を再検討してください.
ただし,特大のポスターのようなものを作成しようとすると,
このエラーが生じかねない状況が起こりますが…
そのような場合には適当に“分割出力”するように細工してください
(そのようなパッケージもあるようです).

***! I can't find file `'''filename'''&#39;. [#pbdf0136]
(TeX のプリミティブの)\input によってファイル '''filename''' を読み込む際に,
このファイルを見つけることができなかった場合に現れるエラーメッセージです.~
→ まず,読み込み対象のファイル名を確認してください.
ファイル名が正しい場合には,そのファイルが“TeX が探し出せる”ディレクトリ
(カレント・ディレクトリあるいはファイル texmf.cnf の
TEXINPUTS.platex などで指定されるディレクトリ)にあるかどうかをチェックしてください.
>ファイル texmf.cnf における TEXINPUTS などの書式は,ファイル texmf.cnf 自身に書いてあります.

***! I can't go on meeting you like this. [#e8826183]
『TeX ブック』によれば,
“このエラーが表示されると TeX はハングしてしまう.TeX を修正してもう一度実行してほしい.”
とのことです.

***! I can't write on file `'''filename'''&#39;. [#ed64dd8a]
dvi ファイル・log ファイルあるいは \openout でオープンするファイル
'''filename''' が(リードオンリーになっているといった理由で)
書き込み用にオープンできなかった場合に現れるエラーメッセージです.~
→ 処理自体はオープンできなかったファイルの代わりに用いるファイルの名称を入力すれば続けることができますが,
再び組版処理を行う前に問題となっているファイル(あるいは作業ディレクトリ自身)
の属性を適宜変更して,書き込み可能にすることになるでしょう.
保存しておくべき組版結果である,といった理由でリードオンリーにしているのでしたら,
別のディレクトリに退避させてください.

***! Illegal magnification has been changed to 1000 ('''magnification'''). [#ab26ac22]
\mag の値として不適切な値を指定した場合,あるいは
\font\somefont=cmr10 scaled 40000 のような具合に不適切な拡大率をに指定した場合に現れるエラーメッセージです.~
→ \mag の値または scaled 指定の値を 1 以上 32768 以下の値に修正してください.

***! Illegal math \discretionary. [#v3ba2100]
数式中で($\discretionary{-}{}{-}$ のような具合に)
“ノンブレーク・テキスト”(\discretionary の第 3 引数)が空文字列ではないような
\discretionary を用いた場合に現れるエラーメッセージです.~
→ 数式に対しては自動ハイフネーションを行うことは要求せずに,
このエラーを引き起こした \discretionary の
“ノンブレーク・テキスト”部分だけを残してください.

***! Illegal parameter number in definition of \somecs. [#l5997ac1]
マクロ \somecs の定義の置換テキスト部分に,
\somecs の引数になっていない番号をもった“引数”が含まれる場合
(例えば,\def\x#1{(#1:#2)}(#2 が不適切)のような定義を行った場合),
あるいは,番号を伴わない # が含まれる場合
(例えば,\def\myrule{\hhline{|=#=|}} のような定義を行った場合)
に現れるエラーメッセージです.~
→ マクロの定義をもう一度見直し,必要な引数をパラメータテキスト
(\def\somecs と開き括弧の間)に追加するか,
置換テキスト内の不要な“引数”を削除してください.
また,置換テキスト内に単独の # を入れる場合には,
文字 # を重ねて ## としなければならないことに注意してください.

***! Illegal unit of measure ('''message'''). [#eccdfcd2]
寸法・グルーの単位に“TeX が理解できない”ものを与えた場合に現れるエラーメッセージです.
'''message''' には次のものがあります.
pt inserted: 寸法の単位を補った場合.
mu inserted: 数式グルーに対する単位を補った場合.
replaced by filll: グルーの伸縮度の指定に fillll のような“l が多すぎる無限大”を指定した場合.~
// 最後の場合に対するヘルプメッセージは一度見てみるとよいでしょう.
→ 寸法(あるいは無限大)の単位が正しいものであるかどうかをチェックしてください.
なお,zw,zh はオリジナルの TeX では使えないことにも注意してください.

***! Improper `at' size ('''size'''pt), replaced by 10pt. [#p51e3a76]
\font\somefont=cmr10 at 3000pt のような具合に不適切な拡大率を指定した場合に現れるエラーメッセージです.~
→ at 指定で与える寸法は,2048pt 未満の正の寸法にしてください.

***! Improper alphabetic constant. [#l95026e8]
***! Improper alphabetic or KANJI constant. [#qf7ed741]
`\a のような,“バッククォート+ 1 文字コマンド”の形式での数値(文字コード)
の指定を行う際に,バッククォートのあとに(\relax のような)
1 文字コマンドではないものが続いている場合に現れるエラーメッセージです
(上段はオリジナルの TeX を使用したときのもの,下段は pTeX 使用時のものです).~
→ 数値の記述が正しいかどうかを確認してください.
“`\a”のあとに入れるべき空白文字を入れ忘れている,ということもよくあります.

***! Improper discretionary list. [#q208d427]
\discretionary{}{}{\hskip10pt} のように,
\discretionary の指定に不適切な項目が含まれる場合に現れるエラーメッセージです.~
→ \discretionary の記述を(基本的には文字および \kern からなるように)修正してください.

***! Improper \halign inside $$'s. [#zabb4a53]
ディスプレイ数式中の \halign がディスプレイ数式の先頭にない場合に現れるエラーメッセージです.~
→ ディスプレイ数式の開始の $$ と \halign の間に,
実際に組版されるものが現れないように書き換えてください.
特に,数式中では {} も“サブ数式”としてそこに存在するので,
“$${}\halign{...}$$”という記述を行っただけでもこのエラーが生じます.
// ある fd ファイルに余分な括弧があったためにこのエラーが生じた,
// という話は TeX Q&A で出ていました.

***! Improper \hyphenation will be flushed. [#qd3f70ee]
\hyphenation の引数の中に通常の文字以外の(\relax のような)ものが含まれる場合に現れるエラーメッセージです.~
→ \hyphenation の引数を修正してください.
アクセント記号つき文字などを含める必要がある場合には,適宜 ^^xx(xx は小文字の
16 進数字)の形式を用いてください.

***! Improper \prevdepth. [#t5384d50]
\prevdepth の値を水平モード(段落内など)の箇所あるいは \write
の引数中で読み取ろうとしたときに現れるエラーメッセージです.~
→ 段落を終了させた上で \prevdepth を用いるか,
適宜出力ルーチンを呼び出して出力ルーチン内で \box255 の depth を調べてください.

***! Improper \setbox. [#s7b8cb2e]
\setbox を用いることができない箇所で \setbox を用いた場合に現れるエラーメッセージです.
具体的には,“\accent と \accent をつける対象となる文字の間”,
“ディスプレイ数式中の \halign{...} の直後”で \setbox を用いると,
このメッセージが現れます.~
→ \setbox を用いる箇所を変更してください.
\halign の直後で \setbox0=\lastbox
といった具合に配列の最後の行を取得する必要がある場合には,
垂直ボックスの中で作業を行ってください.

***! Improper \spacefactor. [#p4656461]
\spacefactor を垂直モード(段落間など)の箇所あるいは \write
の引数中で読み取ろうとしたときに現れるエラーメッセージです.~
→ 必要に応じて,\leavevmode などで段落を開始してから \spacefactor を読みとってください.
// 別のメッセージの場合と混同していたので,先の追記を削除します.

***! Incompatible direction list can't be unboxed. [#o789d612]
pTeX では,縦組みボックスの中身を横組みモードの箇所で(\unhbox,\unvbox で)
取り出すことはできませんし,横組みボックスの中身を縦組みモードの箇所で
取り出すこともできません.
この条件に反して \unhbox,\unvbox を用いた場合に現れるエラーメッセージです.~
→ 中身を取り出すボックスと同じ組版方向の箇所で \unhbox,\unvbox
を用いるように文書の記述あるいはマクロ定義を変更してください.

***! Incompatible glue units. [#s0307fc1]
\hskip\thinmuskip という記述を行った場合のように,
通常のグルーを必要とするところに数式グルーを与えるか,
逆に数式グルーを必要とするところに通常のグルーを与えた場合に現れるエラーメッセージです.~
→ 通常のグルーと数式グルーを混用しないように適宜書き換えてください.
数式グルーの“実寸”が必要な場合には(\fontdimen パラメータを読み取るなどして)
数式グルーと通常のグルーの換算を行うようなマクロを用意することになるでしょう.

***! Incompatible list can't be unboxed. [#l960d989]
\unhbox を垂直ボックスに適用したり,\unvbox を垂直ボックスに適用した場合に現れるエラーメッセージです.
\unhbox を垂直ボックスに適用したり,\unvbox を水平ボックスに適用した場合に現れるエラーメッセージです.
また,\unhbox を数式中で用いた場合にも現れます.~
// \unvbox を数式中で用いると別のエラーが生じます.
→ \unhbox と \unvbox は,中身を取り出すボックスに応じて選んでください
(水平ボックスには \unhbox を,垂直ボックスには \unvbox を用いてください).

***! Incompatible magnification ('''magnification'''). [#bd6061eb]
\mag による拡大(あるいは縮小)の指定が有効になったのちに,
さらに \mag を用いて別の拡大率を指定したときに現れるエラーメッセージです.~
→ まず,\mag を用いる必要があるかを吟味してください.
用いる必要がある場合には,文書のプリアンブル(あるいはクラスファイル内)
で''ただ 1 回だけ''用いるようにしてください.
> なお,\mag の値は“最初のページが dvi ファイルに出力される直前”,
“true つきの寸法を計算するとき”,“dvi ファイルにすべて出力したとき”
に調べられます.

***! Incomplete \somecs; all text ignored after line '''lineno'''. [#p5fb6bd0]
\somecs(この場合は,\ifx などの条件処理に関するプリミティブ)
に対応する条件処理が終了していないか,
条件をみたさないために読み飛ばされる部分(例えば,\iftrue に対する
\else と \fi の間の部分)に \outer 指定がなされた
(ほかのコマンドの引数や“読み飛ばされる部分”では使えないように設定された)
コマンドが現れた場合のエラーメッセージです.~
→ “ユーザ定義マクロの定義に不備がある”,
“文書中で使用しているマクロの引数の個数を間違えた結果 \fi などを与える記述が
意図どおりに取り扱われなかった”,“\section などの引数の中にある何らかのコマンドに
\protect を付け忘れた結果,予定外の条件処理が行われた”といったことが考えられますが,
いずれにせよ,エラーを引き起こした記述を見直すことになります.

***! Infinite glue shrinkage found in a paragraph. [#sc1d84e5]
\hss のような無限大の縮小度をもったグルーを段落内(の行分割可能な箇所)
で用いた場合に現れるエラーメッセージです.~
→ 無限大の縮小度をもったグルーを使う必要がなければ,
エラーを引き起こしたグルーを削除してください.
使う必要があれば,“幅を縮める範囲”をボックスに入れて,
そのボックスの中で \hss などを用いてください.

***! Infinite glue shrinkage found in box being split. [#ge274b70]
\vsplit で分割しようとしているボックスの中に,
無限大の縮小度を持ったグルーが存在する場合に現れるエラーメッセージです.~
→ \vsplit で分割する予定のボックスの中の問題となっているグルー
(\vss など)を削除してください.
> “ページ分割可能な枠”を作成するような環境や,
ボックスの中での一時的な多段組の処理の際にも \vsplit が用いられることがあるので,
注意が必要です.

***! Infinite glue shrinkage found on current page. [#f39fc300]
現在作成中のページ上に無限大の縮小度をもったグルー
(\vss など)が現れた場合のエラーメッセージです.~
→ エラーを引き起こしたグルーを削除してください.
> メイン垂直リスト内に無限大の縮小度をもったグルーが現れると,
文書全体をひとつのページに詰め込んでも構わないことになり,
レイアウト上(TeX 自身の処理上も)問題があります.
そのため,無限大の縮小度をもったグルーを用いても構わない箇所は制限されています.

***! Infinite glue shrinkage inserted from \skip'''number'''. [#ebcf41b1]
番号 '''number''' の \insert に付随するグルー(\skip'''number''')
が無限大の縮小度をもったグルーを現在のページに追加した場合に現れるエラーメッセージです.
例えば,\skip\footins=0pt minus 1fil という設定を行った LaTeX 文書の中で脚注を用いれば,
このエラーを見ることができることでしょう.~
→ \insert に付随するグルー(典型的なものとしては \skip\footins があります)
の縮小度は必ず有限の値にしてください.

***! Insertions can only be added to a vbox. [#oa619081]
ある番号('''n''' とします)の \insert を用いた際に,
\box '''n''' にすでに水平ボックスが収められていた場合に現れるエラーメッセージです.
例えば,
 \documentclass{article}
 \begin{document}
 \setbox\footins=\hbox{}
 \footnote{}
 \end{document}
のような記述を行うと,このエラーが生じます.~
→ マクロ定義を見直して,
\insert に用いるボックス・レジスタには常に垂直ボックスが収められているように変更してください.

***! Interruption. [#bd441480]
(CTRL+C などによって)処理を中断したときに現れるエラーメッセージです.~
→単に [ENTER] などによって処理を続行させるか,“x”で処理を中止させればよいでしょう.

***! Invalid code ('''code'''), should be at most 16777215. [#y8f2e722]
\delcode を用いて何らかの文字の区切り記号コードを設定する場合に,
区切り記号コードとして不適切な値を指定した場合に現れるエラーメッセージです.~
→ メッセージに従って 16777215(= "FFFFFF)以下の値を設定してください.

***! Invalid code ('''code'''), should be in the range 0..'''max code'''. [#caa08d30]
ある文字に対して \catcode,\mathcode,\lccode,\uccode,\sfcode
などを設定する場合に,不適切な値を指定したときに現れるエラーメッセージです.~
→ エラーメッセージに現れている範囲(0 以上 '''max code''' 以下)の範囲の値を指定してください.

***! Invalid KANJI code ('''code'''). [#t6af6db2]
pTeX において,\prebreakpenalty
などに対してはその直後に和文文字の文字コードを与える必要がありますが,
和文文字の文字コードとしては不適切な値 '''code'''
を与えた場合に現れるエラーメッセージです.~
→ 和文文字の文字コードを与えてください.

*** ! Invalid KANSUJI char ('''code'''). [#keb3465e]
充分に新しい pTeX 処理系では,“\kansujichar1=`壱”のように
\kansuji によって数字列を漢数字化する際に用いる文字を指定することができますが,
この \kansujichar の指定の右辺に和文文字の文字コードとしては不適切な値
'''code''' を与えた場合に現れるエラーメッセージです.~
→ 和文文字の文字コードを与えてください.

*** ! Invalid KANSUJI number ('''code'''). [#u02a2bae]
pTeX において数字列を漢数字化する際に用いる文字を \kansujichar で指定する場合,
\kansujichar の直後には 0 以上 9 以下の整数を与えなければなりませんが,
その範囲に入っていない値 '''code''' を与えた場合に現れるエラーメッセージです.~
→ 0 以上 9 以下の整数を与えてください.

***! Leaders not followed by proper glue. [#sa11c7a0]
\leaders/\clearders/\xleaders に与えるグルーの指定が正しくない場合に現れるエラーメッセージです.
グルーの自然長・伸縮度の記述(単位など)が正しくない場合だけでなく,
“\leaders\hbox{.}100pt”のような具合に \hskip なのか
\vskip なのかの指定を忘れた場合にもこのエラーが生じます.~

***! Limit controls must follow a math operator. [#j4e6cc8c]
\limits,\nolimits,\displaylimits
を用いた添字のつき方の設定を大型演算子以外に適用した場合に現れるエラーメッセージです.~
→ エラーを引き起こした \limits,\nolimits,\displaylimits が不要なら削除してください.
大型演算子ではないものの上下に添字をつけたい場合には,
amsmath パッケージが提供する \overset,\underset を用いるとよいでしょう.
また,amsmath パッケージが提供する \sideset は
“大型演算子の”四隅に添字をつけるためのコマンドなので,
\sideset の第 3 引数が大型演算子でない場合にもこのエラーが生じます
(その場合には単に \sideset{...}{...}{\mathop{X}} のごとく,
第 3 引数を大型演算子扱いに変更する(さらに必要があれば,\sideset
とその 3 個の引数全体に \mathord などを適用して本来の役割に戻す)
という対処法もあります).
// もっとも,これは \limits などの取り扱いだけに着目した対処法で,
// 単に {}^tX あたりで済む場合にはそのあたりの記述で済ませてもよいでしょう
// (実際,{}^tX と \sideset{^t}{}{\mathop{X}} とでは X の上下方向の
// 位置が異なります).

***! Math formula deleted: Insufficient extension fonts. [#pd68dd5d]
family 3(数学拡張フォント)として用いるフォントに必要な
\fontdimen パラメータ(13 個)が備わっていない場合に現れるエラーメッセージです.
例えば,\DeclareSymbolFont{largesymbols}{OT1}{cmr}{m}{n} という設定を行った
LaTeX 文書で数式を用いるとこのエラーが生じます.~
→ 数式用フォントの設定を見直して,largesymbols グループ
(family 3)に用いるフォントを適切なものに変更してください.

***! Math formula deleted: Insufficient symbol fonts. [#re4b93ce]
family 2(数式用記号)として用いるフォントに必要な
\fontdimen パラメータ(22 個)が備わっていない場合に現れるエラーメッセージです.
例えば,\DeclareSymbolFont{symbols}{OT1}{cmr}{m}{n} という設定を行った
LaTeX 文書で数式を用いるとこのエラーが生じます.~
→ 数式用フォントの設定を見直して,symbols グループ
(family 2)に用いるフォントを適切なものに変更してください.

***! Misplaced '''something'''. [#yde365f6]
配列(表)に関する各種のプリミティブあるいは文字 &
の位置が適切ではない場合に現れるエラーメッセージです.~
→ '''something''' に応じた対処を施してください.
例えば,文字 & やプリミティブの \cr は表の外部で用いることはできませんし,
\noalign(\hline,\cline といったもので用いられています)は \cr,\crcr
あるいはほかの \noalign の直後でしか使えません(tabular/array の両環境での
\\ の処理は \cr または \noalign で終わっています).
'''something''' としては,ほかに \omit,\span というものが現れることがありますが,
その場合には,とりあえず \multicolumn の使用法が正しいかどうかをチェックしてみてください.

***! Missing # inserted in alignment preamble. [#a2e95aa5]
配列のプリアンブルでは,最初の & の前,& どうしの間,
最後の & と \cr の間の各々には原則として # がちょうど 1 個存在しなければなりません
(“繰り返し指定”の && を用いる場合のみ,例外です).
この規則に反して必要な # が欠けている箇所が配列のプリアンブルにある場合に現れるエラーメッセージです.~
→ 配列のプリアンブルの記述を見直し,必要な # を補ってください.
LaTeX の \@mkpream のように,# の代わりに \@sharp の類を用いている場合には,
プリアンブル部分を実際に使用する直前に \@sharp(に相当するもの)を # のコピーにすることを忘れないでください.

***! Missing $ inserted. [#y19836ed]
数式ではない箇所で数式用の記述(例えば,_(下添字の指定),\alpha(数式用文字))を用いた場合,
あるいはインライン数式が終了しないまま段落の終端に到達したような場合に現れるエラーメッセージです.~
→ エラーが生じた箇所の周囲の記述をチェックし,数式の範囲を正しく指定するようにしてください.
また,文字 _ などはそのままでは出力できず,\_ のように書き換えることになる,
という点にも注意してください.

***! Missing $$ inserted. [#s9be3edc]
ある種のディスプレイ数式の終端の $$ が欠けている場合(例えば,
$$\halign{#\cr} のような記述を行った場合)に現れるエラーメッセージです.~
→ ディスプレイ数式の終端の \] などを適切に補ってください.

***! Missing { inserted. [#ub136c4e]
開き括弧が必要であるにもかかわらず,開き括弧が存在しない箇所が現れた場合のエラーメッセージです.
例えば,“\hbox a”や“\def\a a}”のような記述を行うとこのメッセージが現れます.~
→ エラーが生じた箇所の記述を見直し,必要な括弧を補ってください.

***! Missing } inserted. [#s46b54db]
閉じ括弧と開き括弧の対応がとれていない場合に現れるエラーメッセージ(のひとつ)です.~
→ 閉じ括弧と開き括弧の対応をチェックしてください.
{...\endgroup のような記述が行われている可能性もあります.

***! Missing = inserted for \ifdim. [#pda21804]
***! Missing = inserted for \ifnum. [#q1246b30]
\ifnum または \ifdim による数値または寸法の比較の際に,
比較される 2 個の数値・寸法の間に等号あるいは不等号が存在しない場合に現れるエラーメッセージです.~
→ 比較される 2 個の数値・寸法の間に適切な等号または不等号を追加してください.

***! Missing control sequence inserted. [#wa30c8f7]
\def a{...} のような具合に \def,\gdef
の類の直後に定義されるべきコマンドまたはアクティブ文字が存在しない場合に現れるエラーメッセージです.~
→ エラーを引き起こした定義を修正してください.
\newcommand,\renewcommand を用いる場合にも,\newcommand,\renewcommand
の第 1 引数は(再)定義するコマンドになることに注意してください
(\newcommand{somecs}{...} ではなく,\newcommand{\somecs}{...} になります).
なお,アクティブ文字を定義する際には,
「個々の文字のカテゴリーコードはその文字を''最初に''読み取った時点に決定され,
その後では原則として変更されない」という点に注意してください.
// 例えば,「コロンをアクティブにしたうえでそれを定義する」マクロを
//  \def\activatecolon{%
//     \catcode`\:=\active
//     \def:{...}}
// のように定義しても,これは意図通りには処理されません.
// 実際,\activatecolon の定義の際にはコロンのカテゴリーコードは
// 12 のままなので,\activatecolon の置換テキスト中のコロン
// (\def の直後のコロン)は“通常のコロン”のままです.
// そして,\activatecolon を使用したときにも,\def の直後のコロンは
// \catcode`\:=\active の''影響を受けない''
// (\activatecolon の定義の際に''読み取られた状態のまま''で用いられる)ので,
// このエラーが生じます(\activatecolon の定義中の \catcode`\:=\active
// という記述は,\activatecolon
// を用いた''後''で読み取られるコロンをアクティブにするための記述です).
// 正しくは,\activatecolon の定義の際にもコロンをアクティブにしておいて
//  \begingroup
//  \catcode`\:=\active
//  \gdef\activatecolon{%
//     \catcode`\:=\active
//     \def:{...}}
//  \endgroup
// のように定義することになります.

***! Missing \cr inserted. [#q5bb7504]
配列(表)の個々の行(\valign の場合には列)の終端となる \cr あるいは \crcr
が欠けている場合に現れるエラーメッセージ(のひとつ)です.
例えば,\halign{#\cr a} のような記述を行うとこのエラーが生じます.~
→ 配列(表)の記述をチェックして,必要な \cr(LaTeX の表作成環境・
ディスプレイ数式環境を用いている場合には \\)を補ってください.

***! Missing delimiter (. inserted). [#gc0e8688]
\left,\right の直後のように区切り記号(括弧類)
を必要とする箇所に区切り記号が存在しない場合に現れるエラーメッセージです.~
→ エラーが生じた箇所の近辺の記述をチェックし,必要な区切り記号を補うか,
不要な \left,\right を削除してください.
なお,\left,\right を用いたときに左右の括弧の一方しか出力しない場合には,
出力しない方の括弧はピリオドで表すことに注意してください.
例えば,
 \left\{ ... \right.
という具合になります.

***! Missing \endcsname inserted. [#kbe7795f]
\csname と \endcsname の間に(\relax のような)
展開できないコマンドが現れた場合のエラーメッセージです.~
→ \label,\ref,\pageref,\bibitem,\cite
の引数の中に不用意に何らかのコマンドを書き込んでいないかどうかチェックしてください.
これらのコマンドの引数が単なる文字列からなる場合には,
ユーザ定義の(あるいは何らかのパッケージで提供される)
マクロの定義に不備があると思われます.

***! Missing \endgroup inserted. [#jaf66b69]
\begingroup と \endgroup の対応がとれていない場合に現れるエラーメッセージ(のひとつ)です.
例えば,$\begingroup $ といった記述を行うとこのエラーが生じます.~
→ \begingroup と \endgroup の対応をチェックしてください.
LaTeX の場合には,環境の開始・終了の対応がおかしくなっている,という可能性もあります.

***! Missing font identifier. [#i99790dd]
\fontname,\fontdimen '''number'''('''number''' は番号)
の直後のようなフォント識別子を必要とする箇所にフォント識別子
(として扱われるもの)が存在しない場合に現れるエラーメッセージです.~
→ エラーが生じた箇所の記述をチェックして,適切なフォント識別子または
\font(\jfont,\tfont)を与えてください.

***! Missing number, treated as zero. [#rb4318d6]
数値あるいは寸法・グルーが必要な箇所に然るべき値が与えられなかった場合に現れるエラーメッセージ
(のうちのひとつ)です.~
→ エラーを引き起こした箇所で与えた数値などが正しいかどうかをチェックしてください.
// また,LaTeX のカウンタの値を 10 進表記していることを仮定しているようなマクロを用いると,
// カウンタを文字列化する際の形式を \alph などに変更した際にこのエラーが生じる,
// といったことも考えられます.
なお,\newcommand{\key-word}[1]{\textbf{#1}} のごとく,
\newcommand/\renewcommand の第 1 引数に“1 コマンド + 2 文字以上”(この例では
\key + 文字列“-word”)を文書中で与えた場合にもこのエラーが生じるので,
この場合には \def などを直接用いて定義するか,\newcommand/\renewcommand
の第 1 引数を“ただひとつのコマンド”に修正してください
(pTeX 使用時には,“\キーワード”のようなものも単一のコマンドではなく,
\キ + 文字列“ーワード”として扱われることに注意が必要です).
// また,\newcommand/\renewcommand の引数が“1 コマンド + 1 文字”の場合には,
// 定義・再定義の際にどのようなエラーが生じる(あるいは何もエラーは生じない)
// かは,\newcommand/\renewcommand の記述内容および定義を行った状況に
// 依存します.
// 実際,\newcommand{\data*}{} という定義を文書中で行うと何もエラーは
// 生じませんが,プリアンブルで行うと“! LaTeX Error: Missing \begin{document}.”
// となります.また,\newcommand{\data*}{data: #1} という定義を文書中で行うと,
// “! You can't use `macro parameter character #' in horizontal mode.”の
// エラーが生じます.


***! Missing \right. inserted. [#tbe1d435]
\left に対応する \right がない場合に現れるエラーメッセージです.~
→ 適宜 \right を補うか,不要な \left を削除してください.
なお,ディスプレイ数式の記述では,\left と \right を別の行に分けて配置することはできないので,
ダミーの \right. を補うか,\biggl/\biggr などを用いて書き換えてください.

***! Missing `to' inserted. [#q14fce01]
\vsplit'''box number''' to '''size''' または \read'''number''' to \somecs
という記述において to を欠いている場合に現れるエラーメッセージです.~
→ 必要な to を補ってください.

***! No room for a new \somecs. [#ke4454a5]
レジスタなどの割り当ての際に,\somecs
に対応する項目を割り当てる余地がない場合に現れるエラーメッセージです.~
→ マクロ定義などを見直して,\somecs に対応する項目の使用個数を減らしてください.
例えば,本当に多数の“変数”が必要である場合には,
\count レジスタは文字列経由で扱うことができますし,
\dimen レジスタは文字列経由で扱うか \skip レジスタで代用することができます.
また,グルーピングを工夫することによって同じレジスタを使いまわすこともできます.
一方,文書全体に対してただ 1 個あればいいレジスタ
(例えば,何らかの対象の番号づけに用いる \count レジスタ)
を何らかのマクロ・環境の処理時に毎回割り当てているような場合には,
その割り当て処理をマクロ定義の外に出せばよいでしょう.

***! Nonletter. [#u3a117b1]
\patterns の引数に,数字あるいはピリオド以外に \lccode の値が 0 であるような文字
(すなわち,“小文字化できない”文字)が含まれている場合,
あるいは数字が連続する箇所がある場合に現れるエラーメッセージです.~
→ \patterns の引数を修正するところですが,むしろ問題となっている \patterns
を含むファイルが壊れている,という可能性を疑った方がよいかもしれません.

***! Not a letter. [#r8b0a930]
\hyphenation を用いて登録するハイフネーションの例外辞書の項目に,
ハイフン以外に \lccode の値が 0 であるような文字
(すなわち,“小文字化できない”文字)
が含まれている場合に現れるエラーメッセージです.~
→ \hyphenation の引数を修正してください.
やむを得ず記号の類を \hyphenation の引数に含める場合には,
その文字の \lccode を 0 でない値に設定してください
(\lccode`\@=`\@ のような具合に,
\lowercase を施しても変わらないように設定すればよいでしょう).

***! Not two-byte family. [#xe66f474]
pTeX において,数式中の和文フォントに対する family 番号(\jfam)
およびその番号に対して用いる \textfont などの設定を行わない状態で,
数式中に和文文字を直接入れた場合に現れるエラーメッセージです.~
→数式中の和文フォントに関する設定を適切に行えばよいのですが,
標準配布のクラスファイルを用いている場合には,
使用しているクラスファイルが和文用のものであるかどうかをチェックしてください.
また,和文用のクラスファイルを用いていても disablejfam
クラスオプションを適用した場合には和文文字を数式中に直接入れることはできないので,
注意してください(その場合であっても,“和文文字を \mbox の中に入れたもの”
を数式中で用いることはできます).

***! Number too big. [#sc226bf8]
10 進,8 進,16 進表記の文字列として与えられた数値を読み取る際に,
数値の絶対値が 2147483647 を超えると判明した場合に現れるエラーメッセージです.~
→ 数値の記述が正しいかどうかをチェックしてください.
本当に桁数の多い数値を扱う必要があれば,
TeX の外部で計算を行って計算結果のみを TeX 文書に記述するのがよいでしょう.
// もちろん,多倍長計算用のマクロを作ることは可能ですが,
// うまく書かないと“遅すぎて”使いものにならないと思われます.

***! OK. [#ba678cf7]
実は,これはエラーメッセージではありません.
TeX を対話的に使用しているときに
\showbox のようなコマンドを使用すると確認のために一時停止しますが,
その際に現れるメッセージです.
もちろん,単に [ENTER] か何かでスキップして構いません.

***! Only one # is allowed per tab. [#eb7cb95b]
配列のプリアンブルでは,最初の & の前,& どうしの間,
最後の & と \cr の間の各々には原則として # がちょうど 1 個存在しなければなりません
(“繰り返し指定”の && を用いる場合のみ,例外です).配列のプリアンブルに
この規則に反した余分な # がある場合に現れるエラーメッセージです.~
→ 配列のプリアンブルの記述を見直し,不要な # を削除するか必要な & を追加してください.

***! Output loop---'''number''' consecutive dead cycles. [#deb3189b]
最後に \shipout(完成したページの dvi ファイルへの出力)を行ってから,
'''number'''(\maxdeadcycles の値)回の“\shipout を伴わない出力ルーチン”が用いられた,
ということです.(おそらくはユーザ自身による)
出力ルーチンで無限ループが生じていないかどうかをチェックしてください.
出力ルーチンでは正しい処理が行われている場合には,
\maxdeadcycles の値を増やしてください.

***! Output routine didn't use all of \box255. [#j7988a86]
出力ルーチンの終了時に \box255 が空(無効,void)でない場合に現れるエラーメッセージです.~
→ 出力ルーチン内での処理を変更して,\box255 の中身をすべて用いるようにしてください
(必ずしも \shipout によって dvi ファイルに送り出す必要はありませんが,
その場合には別のボックス・レジスタに保存するなどして
\box255 には残さないようにしてください).

***! Paragraph ended before \somecs was complete. [#p50eb3f2]
\label などの引数が複数段落にわたることがないコマンドの引数を読み取っている間に段落が終了した場合に現れるエラーメッセージです.~
(ログファイル上では、このエラーメッセージの直前に「Runaway argument?」とヒントが表示されます)~
\label などの引数が複数段落にわたることがないコマンド(すなわち、\long\def ではなく単なる \def で定義されたマクロ)の引数を読み取っている間に段落が終了した場合(すなわち、明示的に書かれたプリミティブ命令 \par を見つけたか、空行によって段落が終了したときに暗黙裡に挿入される \par を見つけた場合)に現れるエラーメッセージです.~
→ 問題となっている箇所で用いたコマンド(メッセージ中の \somecs
自身とは限りません)の引数の個数(または引数を囲む括弧の形式)
をチェックしてください.

***! Parameters must be numbered consecutively. [#p3ade282]
マクロ定義の際に引数の指定が連番になっていない場合,例えば,
\def\x#1#3{...} あるいは \def\x#1#2#1{...} のような定義を行った場合,
に現れるエラーメッセージです.~
→ 引数が連番になるように引数の番号を付け直してください.
なお,引数を何らかの同じもので挟んだ ABA という形式で与え,しかも,
その A の部分を可変にしたい,という場合にも \def\x#1#2#1{...} のような定義はできません.
この場合,A の部分が 1 文字なら,
 \def\x#1{\def\y##1#1{...}\y}
のような具合に“可変な書式指定文字列”をいったん取得したのち,
それを用いて書式指定つきマクロをその場で定義して用いる,という方法が使えます.

***! Patterns can be loaded only by INITEX. [#jc2d6e72]
文字通り,\patterns によるハイフネーションパターンの登録は initex(-ini オプション使用時)
にしか行えない,ということです.
必要があれば,新しいフォーマットファイルを作成してください.

*** Please type a command or say `\end' [#m50ef6fe]
これは本来エラーメッセージではないのですが、LaTeX 使用中に遭遇する場合にはエラーメッセージのようなものと考えてもよいでしょう。

このメッセージが出されているとき、TeX は次の命令が入力されるのを待っています。まだ TeX にさせたい作業があるのならそのまま命令や文字を入力します。もう作業を終了したければ、そのための命令(\end)を入力します。

LaTeX 使用中にこのメッセージに遭遇した場合は、処理させたファイルに \end{document} がないか、何らかの問題があって \end{document} の部分を正しく認識できない状態になっています。そのため、ファイルを最後まで読み込んでも処理を終了する命令がないものと考えて、次の命令を待っているわけです。ここで \end を入力して終了させたいところですが、TeX が欲しているのは TeX 本来の \end 命令です。LaTeX においては、TeX 本来の \end 命令が再定義されて LaTeX 用の命令に変更されてしまっています。したがって、ここで \end と入力しても終了させることができません。代わりに \end{document} と入力すれば終了させることができます(LaTeX が \end{document} を処理する過程で、TeX本来の意味の \end が補われます)。しかしながら、前述のように LaTeX が \end{document} を正しく認識できない状態になっていることも多く、その場合にはこれでも終了させられません。OSの機能によって強制終了させるか、何かエラーを起こさせてから x とでも入力すれば終了します。エラーを起こさせるには、未定義の命令を入力するのが良いでしょう。

***! Please use \mathaccent for accents in math mode. [#h69843c8]
$\r{X}$ のようにテキスト(非数式部分)用のアクセント記号用コマンドを数式中で用いた場合に現れるエラーメッセージです.~
→ この例では \r の代わりに \mathring を用いる,という具合に数式用アクセントのためのコマンドを用いてください.

***Runaway argument? [#rc1c1867]
→ ! Paragraph ended before \somecs was complete. の項目を参照。

***! \scriptfont '''number''' is undefined (character '''letter'''). [#h83f48d2]
***! \scriptscriptfont '''number''' is undefined (character '''letter'''). [#i998c5c2]
\scriptfont または \scriptscriptfont を \textfont に変えたメッセージを参照してください.

***! TeX capacity exceeded, sorry ['''type'''='''given size''']. [#s68f7998]
TeX が作業領域として用意したメモリを使い果たした場合に現れるエラーメッセージです.
'''type''' は何を使い果たしたかを表し,'''given size''' は '''type''' に対して与えられている領域の大きさです.
なお,'''type''' には次のようなものがあります.
:exception dictionary|(\hyphenation で指定する)ハイフネーション用の例外辞書用の領域のサイズ(hyph_size)
:grouping levels| {,} や \begingroup,\endgroup で設定するグループを多重にするときの深さの上限
:hash size|コマンドの個数の上限(hash_size あるいは hash_extra)
:input stack size|同時に取り扱える“現在読み取り中”の箇所の個数(stack_size)
:main memory size|組版結果として現れる個々の文字・ボックスなどの記憶領域のサイズ(main_memory)
:number of strings|コマンド名・ファイル名といった文字列の個数の上限(max_strings)
:parameter stack size|同時に取り扱う(保存しておくことになる)マクロの引数の個数の上限(param_size)
:pattern memory|ハイフネーション・パターン用の領域(trie_size)
//:pattern memory ops|
//:pattern memory ops per language|
:pool size|コマンド名・ファイル名といった文字列そのものを保存する領域のサイズ(pool_size)
:save size|グループの終了時に復元する(各種レジスタなどの)値の保存領域のサイズ(save_size)
:semantic nest size|ボックス内にボックスを作る際の,ボックスを積み重ねる段階数の上限(nest_size)
:text input levels|(プリミティブの)\input で読み込まれるファイル内でさらに \input を用いる場合の \input を多重にする段階数(など)の上限(max_in_open)

→このエラーが生じた場合は,
まず,文書自体の記述あるいは文書中で用いられているマクロの定義が適切であるかどうかを確認してください.
例えば,grouping levels の制限に引っかかる場合には,
再帰的に用いるマクロがグループを開始する一方でそのグループを終了させ忘れている,
といったことが考えられます.
文書自体には全く問題がない(すなわち,本当に TeX 自身が使用する作業領域を増やさなければならない)
場合には,ファイル texmf.cnf の中の適切な項目の値を増やしてください.変更する項目は,
上記の '''type''' に関する説明の各項目の末尾に括弧に入れて示しています
(ただし,grouping levels は処理系によって決まった値に固定されているようです).
また,ファイル texmf.cnf では(main_memory.context といった形式で)
使用するプログラムごとにパラメータ値を設定できるようにもなっていますので,
ファイル texmf.cnf の記述を落ち着いて調べ,適切な項目を変更してください.
単にファイル texmf.cnf を書き換えるだけでは数値の変更が有効にならない場合には,
フォーマットファイルを再作成してください.
ただし,main_memory の変更はフォーマットファイルを再作成しないと有効になりませんが,
文字などを保存する領域は extra_mem_top の数値を増やせば追加でき,
ボックスなどを保存する領域は extra_mem_bot の数値を増やすことによっても追加できます.
>input stack size に関しては,
 \def\x{\ifnum\count255<10000 \advance\count255 by 1 \x \fi}
 \count255=0 \x
 \end
のような例でもこのエラーを引き起こします(この例では \fi の前の \x に
\expandafter を前置すればエラーを回避できます).
// pool_size の制限に引っかかる場合には,“string pool overflow [... bytes]”
// のようなメッセージが出ることもあるようです.
// nest_size の制限に引っかかる場合,nest_size を大きくするよりも,
// 文書の記述あるいはマクロの定義を見直すほうがよいでしょう.
// 実際,ボックスというのはひとつのグループをなすので,nest_size の制限だけでなく
// “grouping levels”(こちらは固定(?))の制限も考慮しなければなりません.

***! Text line contains an invalid character. [#o07b93cd]
文書中に不正な文字(カテゴリーコードが 15 の文字)が存在する場合に現れるエラーメッセージです.~
→ 問題となっている文字(エラーメッセージの次の行に含まれています)を削除するか,
TeX 文書中で用いても構わない記述で書き換えてください.
なお,(MS-DOS の)ファイル終端コード(EOF コード,CTRL+Z)は LaTeX2e のデフォルトでは
“不正な文字”となっているので,テキストエディタ等の設定に注意して不用意に
EOF コードを追加しないように注意してください.

***! \textfont '''number''' is undefined (character '''letter'''). [#ofd346e5]
family 番号  '''number''' のテキストスタイル用の数式フォント(\textfont '''number''')
が設定されていない(問題となっている数式では文字 '''letter''' が該当),
ということですが… LaTeX2e では(というより,NFSS2 の枠組みでフォントを用いている限り)
このエラーにお目にかかることはないでしょう.
もし,このエラーが生じたら,“\textfont '''number''' を直接設定する”か,
NFSS2 の枠組みに従って数式用のフォントの設定をやり直すとよいでしょう.

***! This can't happen ('''where'''). [#ref71c83]
『TeX ブック』によれば,
“使用中の TeX に間違いがある.TeX をインストールした人に厳しく文句を言おう.”
とのことです(メッセージの通り,起こり得ない状況なのでしょう).

***! Too late for \patterns. [#t94a700c]
いったん \dump されたフォーマットファイルに対してさらに別の記述を追加して新たなフォーマットファイルを作成するとき,
\patterns によってハイフネーションパターンを追加しようとした場合に現れるエラーメッセージです.
例えば,\patterns{}\dump という記述のみを含むファイル zzz.tex を用意して
 tex -ini "&tex" zzz
という処理を行うと,このエラーが生じます.~
→ ハイフネーションパターンの追加を行わなければならないような変更が必要な場合には,
フォーマットファイル全体を一度に作成してください.

***! Too many }'s. [#ae9efb9f]
開き括弧 { と閉じ括弧 } の対応がとれていない場合に現れるエラーメッセージ(のひとつ)で,
単に閉じ括弧のほうが多い(というだけの情報しかない)場合に現れます.~
→ 不要な } を削除するか,必要な { を補ってください.

***! Unable to read an entire line---bufsize='''size'''. [#a153d202]
ファイル中のひとつの行が長すぎたため行全体を読み込めなかった,
ということです(1 段落=1 行形式のデータを用いると,まれに起こります).~
→ ファイル texmf.cnf の中の buf_size の値を増やしてください.

***! Unbalanced output routine. [#nac37bed]
開き括弧と閉じ括弧の対応がとれていない出力ルーチンを用いた場合に現れるエラーメッセージ(のひとつ)です.
例えば,\output{\shipout\box255 \ifnum0=`{\fi}} のような設定を行うと,このエラーが生じます.~
→ 出力ルーチンの記述を見直し,括弧の対応がとれているように書き換えてください.

***! Unbalanced write command. [#x0af51ed]
\immediate\write16{\ifnum0=`{\fi}} のような,
開き括弧と閉じ括弧の対応がとれていない \write を用いた場合に現れるエラーメッセージ(のひとつ)です.~
→ \write の引数を見直し,括弧の対応がとれているように書き換えてください.

***! Undefined control sequence. [#b38c87ce]
未定義のコマンドを使用した場合に現れるエラーメッセージです.~
→ 用いているコマンドの名称が正しいかどうかを確認してください.
正しければ,適当なパッケージを読み込む,といった方法でそのコマンドの定義を与えてください.
>なお,「LaTeX 文書」を plain TeX で処理したような場合には,
「\documentclass が未定義」であることによってこのエラーが生じます.
統合環境ソフト(その類はあくまでも「自己責任」で用いてください)の設定ミスでもこの類のエラーが生じ得ます.

***! Use of \somecs doesn't match its definition. [#c16515b9]
例えば,\def\2D{two dimensional} のように定義された \2(\2D の D は \2 の書式指定文字列)を単に \2 だけで用いたり間違えて \2d のように用いたりした場合などの,
コマンド(およびその引数)の書式指定が正しくない場合に現れるエラーメッセージです.~
→ エラーを引き起こしたコマンド(およびその引数)の使用法を確認し,
正しい書式で使用してください.
なお,pTeX 使用時には \def\――{\makebox[2zw]{―\kern-.5zw ―\kern-.5zw ―}}
のような定義においても定義されるのは \― で,\―― の 2 番目の“―”は
\― の書式指定文字列となる(pTeX では和文文字の記号類には,
漢字・かな文字等とは別のカテゴリーコードが割り当てられている)
ことに注意が必要です.
// 一方,JTeX では \def\――{...} という定義では“\――”
// というコントロール・ワードが定義されるので,pTeX と JTeX を混用せざるを
// 得ない場合には,和文文字の記号類をコマンド名に含める際には
// 充分な注意が必要です.

***! Use `\tate' at top of list. [#p8d6a551]
***! Use `\yoko' at top of list. [#kaea5843]
pTeX において,組版方向を指定するプリミティブの \tate/\yoko
はボックスなどの先頭で用いなければなりませんが,それに反している
(\tate/\yokoに先立つ項目が存在する)場合に現れるエラーメッセージです.~
→ ボックス内で \tate/\yoko を用いている場合には,
\tate/\yoko をボックスの先頭に置いてください.
文書の途中で組版方向を変更する場合には(とりあえず)改ページの直後で
\tate/\yoko を用いてください.
// もちろん,出力ルーチンを適切に構築して“現在のページの中身を片付けてから”
// 組版方向を変更するようにすればページ途中での組版方向の変更も可能でしょう.
>pTeX 処理系の -src-specials オプションを用いた場合,
各種のボックスに source special に対応する \special が入り込むことがあるため,
(例えば,-src-specials=vbox の場合)ボックスの中に \tate/\yoko
に先立つ項目が生じてしまうことがあります(この場合には,-src-specials
オプションの使用を止めて -synctex=1 オプションを使用して PDF ファイルで表示しましょう).
特に plext パッケージによる拡張によって“組版方向を切り換えた \parbox”
を用いている場合には注意が必要です.

***! \vsplit needs a \vbox. [#ba9cf86a]
文字通り,垂直ボックスではないボックスを \vsplit で分割しようとしたときに現れるエラーメッセージです.~
→ マクロの定義(あるいは文書中の記述)を見直して,
\vspilt で分割しようとするボックスが垂直ボックスになるように変更してください.

***! You already have nine parameters. [#i85e3d4d]
\def\x#1#2#3#4#5#6#7#8#9#10{...} のように
10 個以上の引数をもったマクロを定義しようとしたときに現れるエラーメッセージです.~
→ TeX のひとつのマクロの引数は 9 個までなので,
 \def\x#1#2#3#4#5{%
    \def\@tempa{{#1}{#2}{#3}{#4}{#5}}% 第 5 引数までをいったん保存
    \xx}
 \def\xx#1#2#3#4#5{...}% \x の第 6 引数以降を取得
という具合に分割するか,適当なループ処理を用いて個々の引数を取得する,
といった方法を用いて書き換えてください.
また,多数の引数のすべてをいつでも指定しなければならないというわけではない,
という場合には keyval パッケージを用いて
“key=value 形式の記述を必要なだけ与える”ように変更するのもよいでしょう.

***! You can't dump inside a group. [#h99ef60d]
文字通り,グループ内で \dump を用いることはできない,ということです.~
→ 閉じ忘れているグループについて調べて,適宜 },\endgroup を補ってください.

***! You can't \insert255. [#cd5ce9b4]
文字通り,番号 255 は \insert には用いることはできない,ということですが…
\newinsert で割り当てた番号を \insert
に用いている限りはこのエラーにお目にかかることはないでしょう.
このエラーが生じた場合には,番号 255 を用いた \insert に別の番号を
(必要があれば \newinsert で割り当ててから)用いてください.

***! You can't use a prefix with `'''something'''&#39;. [#r884adfb]
\long\hskip10pt のように,\long,\outer,\global を前置しても意味のない記述
'''something''' が \long,\outer,\global の直後に現れた場合のエラーメッセージです.~
→ この場合,おそらく \long,\outer,\global は不要でしょうから,
エラーが生じた箇所の \long などを削除してください.

***! You can't use `\hrule&#39; here except with leaders. [#v5c146ff]
\hrule を(\leaders/\clearders/\xleaders を伴わない状態で)
水平ボックス内などで用いた場合に現れるエラーメッセージです.~
→ \hrule を \vrule に変更してください.

***! You can't use `\long&#39; or `\outer&#39; with `'''something'''&#39;. [#y67db6a4]
\long あるいは \outer のあとで用いても意味のない項目 '''something'''
(例えば,ただの文字)が \long あるいは \outer
に続いている場合に現れるエラーメッセージです.~
→ 不要な \long,\outer を削除するか,\def,\gdef の類を補ってください.

***! You can't use `\somecs&#39; in '''mode'''. [#cf1b15c8]
\@(LaTeX のデフォルトでは \spacefactor=1000)を段落間で用いた場合のように,
モード '''mode''' の箇所でそのモードでは用いることのできないコマンド
\somecs を使用した場合に現れるエラーメッセージです.~
→ 必要に応じて“\leavevmode で段落を開始する”,“空白行で段落を終わらせる”,
“\mbox に入れて数式扱いにするのをやめる”といった対策をとってください.
なお,“文字 @ を含む名称のマクロを(LaTeX 文書の)
プリアンブルで定義(または使用)しているにもかかわらず,
定義(または使用)箇所に \makeatletter を適用していない”
という場合にもこのエラーが生じることがあります.
その場合には,定義部分の前後に \makeatletter と \makeatother を補ってください.

***! You can't use `'''something'''&#39; after \somecs. [#tb8a7733]
“\the a”や“\advance\char97...”のように \somecs
の直後で用いても意味のない項目 '''something''' を
\somecs の直後で用いた場合に現れるエラーメッセージです.~
→ このエラーを引き起こした記述を見直して,“\somecs を削除する”,
“\somecs の直後に本来存在するはずのものを補う”といった処置を施してください.

// ファイル tex.tex の中の print_err を拾い出しました.
// pTeX 独自のものについては,(文字コードに関するものなど)オリジナルの
// TeX のエラーメッセージから類推できるもので,かつ,確認できたものを挙げています.