<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">% -*- coding: utf-8 -*-
% This is part of the book TeX for the Impatient.
% Copyright (C) 2003 Paul W. Abrahams, Kathryn A. Hargreaves, Karl Berry.
% See file fdl.tex for copying conditions.

\input macros
%\chapter{Making sense \linebreak of error messages}
\chapter{ç†č§Łé”™čŻŻäżˇćŻ}

\chapterdef{errors}

%\codefuzz = 4pc % for this chapter only (in scope of \chapter)
%\bix^^{error messages}
%Interpreting \TeX's error messages can sometimes
%be like going to your physician
%with a complaint that you're feeling fatigued and being handed,
%in response,
%a breakdown of your blood chemistry.  The explanation of your distress
%is probably there, but it's not easy to figure out what it is.
%A few simple rules will go a long way in helping you to understand \TeX's
%error messages and get the most benefit from them.
\codefuzz = 4pc % for this chapter only (in scope of \chapter)
\bix^^{é”™čŻŻäżˇćŻ}
č§Łé‡Š \TeX\ çš„é”™čŻŻäżˇćŻćś‰ć—¶ĺ€™ĺ°±ĺŹďĽŚ
ä˝&nbsp;č·źĺŚ»ç”źćŠ±ć€¨ä˝&nbsp;ć„źč§‰ç–˛äąŹć—&nbsp;ĺŠ›ďĽŚĺŚ»ç”źĺŤ´é€’ç»™ä˝&nbsp;ä¸€ä»˝čˇ€ç”źĺŚ–ç»†ç›®čˇ¨ă€‚
ĺŻąä˝&nbsp;çš„ç—›č‹¦çš„č§Łé‡Šäąźč®¸ĺ°±ĺś¨é‚Łé‡ŚďĽŚä˝†ĺŤ´ä¸Ťĺ®ąć“ĺĽ„ć¸…ćĄšĺ®ćŻä»€äąă€‚
ćŽŚćŹˇä¸€äş›ç®€ĺŤ•č§„ĺ™ĺŻąä˝&nbsp;ç†č§Ł \TeX\ é”™čŻŻäżˇćŻĺą¶ä»Žä¸­ĺŹ—ç›Šĺ°†ĺ¤§ćś‰ĺ¸®ĺŠ©ă€‚

%Your first goal should be
%to understand what you did that caused \TeX\ to complain.
%Your second goal (if you're working interactively)
%should be to catch as many errors as you can in a single run.
ä˝&nbsp;çš„ç¬¬ä¸€ä¸Şç›®ć&nbsp;‡ĺş”ĺ˝“ćŻç†č§Łä»€äąä¸śčĄżĺŻĽč‡´ \TeX\ ćŠĄé”™ă€‚
ç¬¬äşŚä¸Şç›®ć&nbsp;‡ďĽĺ¦‚ćžśćŻäş¤äş’ĺĽŹä˝żç”¨ \TeX ďĽ‰ĺş”ĺ˝“ćŻĺś¨ä¸€ć¬ˇčżčˇŚä¸­ćŤ•čŽ·ĺ°˝ĺŹŻč˝ĺ¤šçš„é”™čŻŻă€‚%
\footnote{čŻ‘ćł¨ďĽšćś¬ç«&nbsp;çš„ĺ„ä¸ŞčŠ‚ć&nbsp;‡é˘ä¸şčŻ‘č€…ć‰€ĺŠ&nbsp;ă€‚}

\section{ç¬¬ä¸€ä¸Şäľ‹ĺ­}

%Let's look at an example.  Suppose that your input
%contains the line:
%\csdisplay
%We skip \quid a little bit.
%|
%You meant to type `|\quad|', but you typed `|\quid|' instead.
%Here's what you'll get from \TeX\ in response:
%\csdisplay
%!! Undefined control sequence.
%l.291 We skip \quid
%                   a little bit.
%?
%|
%This message will appear both at your terminal and in your log file.
%^^{log file//error messages}
%The first line, which always starts with an exclamation point (|!!|),
%tells you what the problem is.  The last two lines before the `|?|' prompt
%(which in this case are also
%the next two lines) tell you how far \TeX\ has gotten
%when it found the error.
%It found the error on line $291$ of the current input file,
%and the break between the two message lines indicates
%\TeX's precise position within line $291$, namely, just after |\quid|.
%The current input file is the one just after the most recent unclosed
%left parenthesis in the terminal output of your run (see \xref{infiles}).
ć‘ä»¬ćťĄçś‹ä¸€ä¸Şäľ‹ĺ­ă€‚ĺ‡č®ľä˝&nbsp;çš„čľ“ĺ…Ąä¸­ĺŚ…ĺ«ä¸‹éť˘čż™čˇŚďĽš
\csdisplay
We skip \quid a little bit.
|
ä˝&nbsp;ćś¬ćłčľ“ĺ…Ą `|\quad|'ďĽŚĺŤ´čľ“ĺ…Ąć `|\quid|'ă€‚
ć­¤ć—¶ \TeX\ ĺ°†ç»™ĺ‡şä¸‹éť˘çš„äżˇćŻďĽš
\csdisplay
!! Undefined control sequence.
l.291 We skip \quid
                   a little bit.
?
|
ć­¤äżˇćŻĺ°†ĺŚć—¶ĺ‡şçŽ°ĺś¨ç»ç«Żä¸Šĺ’Ść—Ąĺż—ć–‡ä»¶ä¸­ă€‚
^^{ć—Ąĺż—ć–‡ä»¶//é”™čŻŻäżˇćŻ}
ç¬¬ä¸€čˇŚĺ§‹ç»ä»Ąć„źĺŹąĺŹ·(|!!|)ĺĽ€ĺ¤´ďĽŚĺ‘ŠčŻ‰ä˝&nbsp;ĺ‡şçŽ°äş†ä»€äąé—®é˘ă€‚
ĺś¨ `|?|' ćŹç¤şç¬¦äą‹ĺ‰Ťçš„ćś€ĺŽä¸¤čˇŚďĽĺś¨ć­¤äľ‹ĺ­ä¸­ĺŚć&nbsp;·äąźćŻćŽĄä¸‹ćťĄçš„ä¸¤čˇŚďĽ‰%
ĺ‘ŠčŻ‰ä˝&nbsp; \TeX\ ĺś¨ä˝•ĺ¤„ĺŹ‘çŽ°ć­¤é”™čŻŻă€‚
ĺ®ĺś¨ĺ˝“ĺ‰Ťčľ“ĺ…Ąć–‡ä»¶çš„ç¬¬ $291$  čˇŚĺŹ‘çŽ°äş†é”™čŻŻďĽŚ
ä¸¤ä¸ŞäżˇćŻčˇŚäą‹é—´çš„ć–­čˇŚčˇ¨ç¤ş \TeX\ ĺś¨ç¬¬ $291$ čˇŚçš„ç˛ľçˇ®ä˝Ťç˝®ďĽŚĺŤłĺś¨ |\quid| ĺŽéť˘ă€‚
ĺ˝“ĺ‰Ťčľ“ĺ…Ąć–‡ä»¶ćŻćŚ‡ďĽŚĺś¨čżčˇŚć—¶çš„ç»ç«Żčľ“ĺ‡şä¸ŠďĽŚ
ćś€ćŽĄčż‘çš„éťžé—­ĺĺ·¦ĺś†ć‹¬ĺŹ·ĺŽćľç¤şçš„ć–‡ä»¶ďĽč§\xref{infiles}ďĽ‰ă€‚

%This particular error, an undefined control
%sequence, is one of the most common ones you can get.
%If you respond to the prompt with another~`|?|',
%\TeX\ will display the following message:
%{\hfuzz = 2in
%\csdisplay
%Type &lt;return&gt; to proceed, S to scroll future error messages,
%R to run without stopping, Q to run quietly,
%I to insert something, E to edit your file,
%1 or ... or 9 to ignore the next 1 to 9 tokens of input,
%H for help, X to quit.
%|
%}%
čż™ç§Ťé”™čŻŻďĽŚĺŤłćŽ§ĺ¶ĺşŹĺ—ćśŞĺ®šäą‰ďĽŚćŻä˝&nbsp;ćś€ĺ¸¸ĺ‡şçŽ°çš„é”™čŻŻäą‹ä¸€ă€‚
ĺ¦‚ćžśä˝&nbsp;ĺś¨ćŹç¤şç¬¦ĺŽé”®ĺ…ĄĺŹ¦ä¸€ä¸Ş `|?|'ďĽŚ\TeX\ ĺ°†ćľç¤şä¸‹ĺ—äżˇćŻďĽš
{\hfuzz = 2in
\csdisplay
Type &lt;return&gt; to proceed, S to scroll future error messages,
R to run without stopping, Q to run quietly,
I to insert something, E to edit your file,
1 or ... or 9 to ignore the next 1 to 9 tokens of input,
H for help, X to quit.
|
}%
%Here's what these alternatives mean:
%\ulist
%\li If you type \asciichar{return},
%\TeX\ will continue processing your document.
%In this case it will just ignore the |\quid|.
%\li If you type `|S|' (or `|s|'---uppercase and lowercase are equivalent
%here), \TeX\ will process your document without stopping \emph{except}
%if it encounters a missing file.  Error messages will still appear at your
%terminal and in the log file.
%\li If you type `|R|' or `|r|',
%you'll get the same effect as `|S|' except that
%\TeX\ won't even stop for missing files.
%\li If you type `|Q|' or `|q|',
%\TeX\ will continue processing your document but
%will neither stop for errors nor display them at your terminal.  The
%errors will still show up in the log file.
%\li If you type `|X|' or `|x|',
%\TeX\ will clean up as best it can, discard the page
%it's working on, and quit.  You can still print or view the
%pages that \TeX\ has already processed.
%\li If you type `|E|' or `|e|', \TeX\ will clean up and terminate
%as it would for `|X|' or `|x|' and then enter your text editor,
%positioning you at the erroneous line.
%(Not all systems support this option.)
%\li If you type `|H|' or `|h|',
%you'll get a further explanation of the error displayed
%at your terminal and
%possibly some advice about what to do about it.  This explanation will also
%appear in your log file.  For the undefined control sequence above,
%you'll get:
%{\hfuzz = 2in
%\csdisplay
%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.
%|
%}
%\li If you type `|?|', you'll get this same message again.
%\endulist
čż™äş›é€‰ć‹©ĺ„č‡Şçš„ĺ«äą‰ĺ¦‚ä¸‹ďĽš
\ulist
\li ĺ¦‚ćžśä˝&nbsp;é”®ĺ…Ą \asciichar{return}ďĽŚ
\TeX\ ĺ°†ç»§ç»­ĺ¤„ç†ä˝&nbsp;çš„ć–‡ćˇŁă€‚ĺś¨ć­¤äľ‹ĺ­ä¸­ĺ®ĺ°±ĺż˝ç•Ąäş† |\quid|ă€‚
\li ĺ¦‚ćžśä˝&nbsp;é”®ĺ…Ą `|S|'ďĽć–č€… `|s|'â€”â€”čż™ć—¶ĺ€™ĺ¤§ĺ°Źĺ†™ćŻç­‰ä»·çš„ďĽ‰ďĽŚ
\TeX\ ĺ°†ç»§ç»­ĺ¤„ç†ä˝&nbsp;çš„ć–‡ćˇŁä¸”ä¸Ťĺ†Ťćš‚ĺśďĽŚ\emph{é™¤éťž}ć‰ľä¸Ťĺ°ćźć–‡ä»¶ă€‚
ä˝†é”™čŻŻäżˇćŻčżćŻäĽšĺ‡şçŽ°ĺś¨ç»ç«Żä¸Šĺ’Ść—Ąĺż—ć–‡ä»¶ä¸­ă€‚
\li ĺ¦‚ćžśä˝&nbsp;é”®ĺ…Ą `|R|' ć– `|r|'ďĽŚ
ä˝&nbsp;ĺ°†ĺľ—ĺ°ä¸Ž `|S|' ç›¸ĺŚçš„ç»“ćžśďĽŚä˝†ć­¤ć—¶ \TeX\ ĺŤłä˝żć‰ľä¸Ťĺ°ć–‡ä»¶äąźä¸ŤäĽšćš‚ĺśă€‚
\li ĺ¦‚ćžśä˝&nbsp;é”®ĺ…Ą `|Q|' ć– `|q|'ďĽŚ
\TeX\ ĺ°†ç»§ç»­ĺ¤„ç†ä˝&nbsp;çš„ć–‡ćˇŁďĽŚä¸”é‡ĺ°é”™čŻŻĺŽĺ°†ä¸ŤäĽšĺ†Ťćš‚ĺśďĽŚäąźä¸ŤäĽšĺś¨ç»ç«Żä¸Šćľç¤şă€‚
é”™čŻŻäżˇćŻčżćŻäĽšč®°ĺ˝•ĺ°ć—Ąĺż—ć–‡ä»¶ä¸­ă€‚
\li ĺ¦‚ćžśä˝&nbsp;é”®ĺ…Ą `|X|' ć– `|x|'ďĽŚ
\TeX\ ĺ°†ĺ°˝ĺŠ›ć¸…ç†ĺą˛ĺ‡€ďĽŚä¸˘ĺĽć­Łĺś¨ćž„é€&nbsp;çš„éˇµéť˘ďĽŚĺą¶é€€ĺ‡şă€‚
ä˝&nbsp;ä»Ťç„¶ĺŹŻä»Ąć‰“ĺŤ°ć–ćźĄçś‹ \TeX\ ĺ·˛ç»Źç”źćçš„éˇµéť˘ă€‚
\li ĺ¦‚ćžśä˝&nbsp;é”®ĺ…Ą `|E|' ć– `|e|'ďĽŚ
\TeX\ ĺ°†ĺ¦‚ĺŚ `|X|' ć– `|x|' é‚Łć&nbsp;·ć¸…ç†ĺą¶ä¸­ć­˘ďĽŚç„¶ĺŽć‰“ĺĽ€ć–‡ćś¬çĽ–čľ‘ĺ™¨ďĽŚč·łč˝¬ĺ°é”™čŻŻć‰€ĺś¨çš„čˇŚă€‚%
ďĽĺą¶éťžć‰€ćś‰çł»ç»źé˝ć”ŻćŚć­¤é€‰éˇąă€‚ďĽ‰
\li ĺ¦‚ćžśä˝&nbsp;é”®ĺ…Ą `|H|' ć– `|h|'ďĽŚ
ä˝&nbsp;ĺ°†ĺś¨ç»ç«Żä¸Šçś‹ĺ°ĺŻąć­¤é”™čŻŻçš„čż›ä¸€ć­Ąč§Łé‡ŠďĽŚĺŹŻč˝čżćś‰ĺŻąć­¤é”™čŻŻçš„ä¸€äş›ĺ»şč®®ă€‚
čż™äş›äżˇćŻĺŚć&nbsp;·äĽšč®°ĺ˝•ĺ°ä˝&nbsp;çš„ć—Ąĺż—ć–‡ä»¶ä¸­ă€‚
ĺŻąäşŽä¸Ščż°äľ‹ĺ­çš„ćśŞĺ®šäą‰ćŽ§ĺ¶ĺşŹĺ—ďĽŚä˝&nbsp;ĺ°†ĺľ—ĺ°ä¸‹ĺ—äżˇćŻďĽš
{\hfuzz = 2in
\csdisplay
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.
|
}
\li ĺ¦‚ćžśä˝&nbsp;é”®ĺ…Ą `|?|'ďĽŚä˝&nbsp;ĺ°†ĺľ—ĺ°ĺ’Śä¸Šéť˘ç›¸ĺŚçš„äżˇćŻă€‚
\endulist
%\noindent
%The other two alternatives, typing `|I|' or a small integer, provide ways of
%getting \TeX\ back on the track so that your error won't cause further errors
%later in your document:
%\ulist
%\li If you type `|I|' or `|i|'
%followed by some text, then \TeX\ will insert
%that text as though it had occurred just after the point of the error,
%at the innermost level where \TeX\ is working.
%In the case of the example above, that means at \TeX's
%position in your original input, namely, just after `|\quid|'.
%Later you'll see an example that shows
%the difference between inserting something at the innermost level and
%inserting it into your original input.  In the example above of the undefined
%control sequence, if you type:
%\csdisplay
%I\quad
%|
%\TeX\ will carry out the |\quad| command and produce a quad space
%where you intended to have one.
%\li If you type a positive integer less than $100$ (not less than $10$ as the
%message misleadingly suggests),
%\TeX\ will delete that number of tokens from the innermost
%level where it is working.
%(If you type an integer greater than or equal to $100$, \TeX\ will
%delete $10$ tokens!)
%\endulist
\noindent
ĺŹ¦ĺ¤–ä¸¤ä¸Şé€‰ć‹©ďĽŚĺŤłé”®ĺ…Ą `|I|' ć–ä¸€ä¸Şĺ°Źć•´ć•°ďĽŚ
ćŹäľ›ä¸€ç§Ťč®© \TeX\ ĺ›žĺ°ć­Łĺ¸¸č˝¨é“ä¸Šçš„ć–ąćł•ďĽŚ
ä˝żĺľ—čŻĄé”™čŻŻä¸ŤäĽšĺś¨ć–‡ćˇŁĺŽéť˘ĺŻĽč‡´ć›´ĺ¤šçš„é”™čŻŻďĽš
\ulist
\li ĺ¦‚ćžśä˝&nbsp;é”®ĺ…Ą `|I|' ć– `|i|' ĺą¶ĺŠ&nbsp;ä¸Šä¸€äş›ć–‡ćś¬ďĽŚ
\TeX\ ĺ°†ćŠŠć–‡ćś¬ćŹ’ĺ…Ąé”™čŻŻä˝Ťç˝®äą‹ĺŽďĽŚć”ľĺś¨ \TeX\ ĺ¤„ç†çš„ćś€ĺ†…ĺ±‚çş§ă€‚
ĺś¨ä¸Šéť˘čż™ä¸Şäľ‹ĺ­ä¸­ďĽŚčż™čˇ¨ç¤şĺś¨ \TeX\ çš„ĺŽźĺ§‹čľ“ĺ…Ąçš„ä˝Ťç˝®ďĽŚĺŤłĺś¨ `|\quid|' äą‹ĺŽă€‚
ç¨ŤĺŽć‘ä»¬ĺ°†ç»™ĺ‡şä¸€ä¸Şäľ‹ĺ­ďĽŚčŻ´ćŽćŠŠćźäş›ä¸śčĄżćŹ’ĺ…Ąĺ°ćś€ĺ†…ĺ±‚çş§ä¸ŽćŹ’ĺ…Ąĺ°ĺŽźĺ§‹čľ“ĺ…Ąçš„ĺŚşĺ«ă€‚
ĺś¨ä¸Šéť˘čż™ä¸ŞćŽ§ĺ¶ĺşŹĺ—ćśŞĺ®šäą‰çš„äľ‹ĺ­ä¸­ďĽŚĺ¦‚ćžśä˝&nbsp;é”®ĺ…ĄďĽš
\csdisplay
I\quad
|
\TeX\ ĺ°†ć‰§čˇŚ |\quad| ĺ‘˝ä»¤ĺą¶ĺś¨ä˝&nbsp;éś€č¦çš„ĺś°ć–ąç”źćä¸€ä¸Şĺ…¨ć–ąé—´éš”ă€‚
\li ĺ¦‚ćžśä˝&nbsp;é”®ĺ…Ąä¸€ä¸Şĺ°ŹäşŽ $100$ďĽé”™čŻŻäżˇćŻč®©äşşčŻŻč§Łä¸şĺ°ŹäşŽ $10$ďĽ‰çš„ć­Łć•´ć•°ďĽŚ
\TeX\ ĺ°†ä»Žĺ®ĺ¤„ç†çš„ćś€ĺ†…ĺ±‚çş§ĺ&nbsp;é™¤čŻĄć•°ç›®çš„č®°ĺŹ·ă€‚%
ďĽĺ¦‚ćžśä˝&nbsp;é”®ĺ…Ąĺ¤§äşŽć–ç­‰äşŽ $100$ çš„ć•´ć•°ďĽŚ\TeX\ ĺ°†ĺŹŞĺ&nbsp;é™¤ $10$ ä¸Şč®°ĺŹ·ďĽďĽ‰
\endulist

\section{ç¬¬äşŚä¸Şäľ‹ĺ­}

%Here's an example of another common error:
%\csdisplay
%Skip across \hskip 3cn by 3 centimeters.
%|
%The error message for this is:
%\csdisplay
%!! Illegal unit of measure (pt inserted).
%&lt;to be read again&gt;
%                   c
%&lt;to be read again&gt;
%                   n
%l.340 Skip across \hskip 3cn
%                             by 3 centimeters.
%|
%^^|&lt;to be read again&gt;|
%In this case \TeX\ has observed that `|3|' is followed by something that
%isn't a proper unit of measure, and so it's assumed the unit of measure to be
%points.  \TeX\ will read the tokens of `|cn|' again and insert them into
%your input, which is not what you want.  In this case you can get a better
%result by first typing `|2|' to bypass the `|cn|'.
%You'll get the message:
%\csdisplay
%&lt;recently read&gt; n
%
%l.340 Skip across \hskip 3cn
%                           by 3 centimeters.
%|
čż™é‡ŚćŻĺŹ¦ä¸€ç§Ťĺ¸¸č§é”™čŻŻçš„äľ‹ĺ­ďĽš
\csdisplay
Skip across \hskip 3cn by 3 centimeters.
|
čż™ä¸Şäľ‹ĺ­çš„é”™čŻŻäżˇćŻä¸şďĽš
\csdisplay
!! Illegal unit of measure (pt inserted).
&lt;to be read again&gt;
                   c
&lt;to be read again&gt;
                   n
l.340 Skip across \hskip 3cn
                             by 3 centimeters.
|
^^|&lt;to be read again&gt;|
čż™é‡Ś \TeX\ ćł¨ć„Źĺ° `|3|' ĺŽéť˘ä¸ŤćŻä¸€ä¸Şć­Łçˇ®çš„ĺş¦é‡ŹĺŤ•ä˝ŤďĽŚĺ›&nbsp;ć­¤ĺ®ĺ‡č®ľčŻĄĺş¦é‡ŹĺŤ•ä˝Ťä¸şç‚ąă€‚
\TeX\ ĺ°†é‡Ťć–°čŻ»ĺŹ– `|cn|' çš„č®°ĺŹ·ĺą¶ĺ°†ĺ®ä»¬ćŹ’ĺ…Ąä˝&nbsp;çš„čľ“ĺ…Ąä¸­ďĽŚč€Śčż™ĺą¶ä¸ŤćŻä˝&nbsp;ćłč¦çš„ă€‚
ĺś¨čż™ç§Ťć…ĺ˝˘ä¸‹č‹Ąćłĺľ—ĺ°ć›´ĺĄ˝çš„ç»“ćžśďĽŚä˝&nbsp;ĺŹŻä»Ąĺ…é”®ĺ…Ą `|2|' ä»Ąč·łčż‡ `|cn|'ă€‚
čż™ć&nbsp;·ä˝&nbsp;ĺ°†ĺľ—ĺ°ĺ¦‚ä¸‹äżˇćŻďĽš
\csdisplay
&lt;recently read&gt; n

l.340 Skip across \hskip 3cn
                           by 3 centimeters.
|

%Now you can type
%`|I\hskip 3cm|' to get the skip you wanted (in addition to the |3pt| skip
%that you've already gotten).\footnote
%{By typing `|I\unskip\hskip 3cm|' you can get rid of the |3pt| skip.}
çŽ°ĺś¨ä˝&nbsp;ĺŹŻä»Ąé”®ĺ…Ą `|I\hskip 3cm|' ä»Ąĺľ—ĺ°ä˝&nbsp;ć‰€č¦çš„é—´č·ťďĽĺŠ&nbsp;ä¸Šä˝&nbsp;ĺ·˛ç»Źĺľ—ĺ°çš„ |3pt| é—´č·ťďĽ‰ă€‚%
\footnote{č‹Ąć”ąä¸şé”®ĺ…Ą `|I\unskip\hskip 3cm|'ďĽŚä˝&nbsp;ĺ°±ĺŹŻä»ĄĺŽ»ćŽ‰čż™ä¸Ş |3pt| çš„é—´č·ťă€‚}

\section{ç¬¬ä¸‰ä¸Şäľ‹ĺ­}

%If you type something that's only valid in math mode, \TeX\ will switch over
%to math mode for you whether or not that's what you really wanted.
%For example:
%\csdisplay
%So \spadesuit s are trumps.
%|
%Here's \TeX's error message:
%\csdisplay
%!! Missing $ inserted.
%&lt;inserted text&gt;
%                $
%&lt;to be read again&gt;
%                   \spadesuit
%l.330 So \spadesuit
%                  s are trumps.
%|
%Since the |\spadesuit| symbol is only allowed in math mode,
%\TeX\ has inserted a `|$|' in front of it.
%After \TeX\ inserts a token, it's positioned in \emph{front} of
%that token, in this case the `|$|', ready to read it.
%Typing `|2|' will cause \TeX\ to skip both the `|$|'
%and the `|\spadesuit|' tokens, leaving it ready to process the `|s|'
%in `|s are trumps.|'.
%(If you just let \TeX\ continue, it will typeset `|s are trumps|'
%in math mode.)
ĺ¦‚ćžśä˝&nbsp;čľ“ĺ…Ąćźäş›ä»…ĺŹŻç”¨äşŽć•°ĺ­¦ć¨ˇĺĽŹçš„ĺ†…ĺ®ąďĽŚ\TeX\ ĺ°†ĺ¸®ä˝&nbsp;ĺ‡ćŤ˘ĺ°ć•°ĺ­¦ć¨ˇĺĽŹďĽŚ
ä¸Ťç®ˇčż™ćŻĺ¦ä˝&nbsp;çśźć­Łćłč¦çš„ă€‚äľ‹ĺ¦‚ďĽš
\csdisplay
So \spadesuit s are trumps.
|
ä¸‹éť˘ćŻ \TeX\ çš„é”™čŻŻäżˇćŻďĽš
\csdisplay
!! Missing $ inserted.
&lt;inserted text&gt;
                $
&lt;to be read again&gt;
                   \spadesuit
l.330 So \spadesuit
                  s are trumps.
|
ç”±äşŽ |\spadesuit| ç¬¦ĺŹ·ä»…ĺŹŻĺś¨ć•°ĺ­¦ć¨ˇĺĽŹä¸­ä˝żç”¨ďĽŚ
\TeX\ ĺ·˛ç»Źĺś¨ĺ®ĺ‰Ťéť˘ćŹ’ĺ…Ąä¸€ä¸Ş `|$|'ă€‚
ĺś¨ćŹ’ĺ…Ąćźä¸Şč®°ĺŹ·äą‹ĺŽďĽŚ\TeX\ ä˝ŤäşŽčŻĄč®°ĺŹ·çš„\emph{ĺ‰Ťéť˘}ďĽŚ
ĺś¨ć­¤ć…ĺ˝˘ä¸­ĺ°±ćŻä˝ŤäşŽ `|$|' ĺ‰Ťéť˘ďĽŚĺą¶ĺ‡†ĺ¤‡čŻ»ĺŹ–čľ“ĺ…Ąă€‚
é”®ĺ…Ą `|2|' ĺ°†č®© \TeX\ č·łčż‡ `|$|' ĺ’Ś `|\spadesuit|' č®°ĺŹ·ďĽŚ
č®©ĺ®ĺ‡†ĺ¤‡ĺ¤„ç† `|s are trumps.|' ä¸­çš„ `|s|'ă€‚%
ďĽč‹Ąä˝&nbsp;ĺŹŞćŻč®© \TeX\ ç»§ç»­ďĽŚĺ®ĺ°†ĺś¨ć•°ĺ­¦ć¨ˇĺĽŹä¸­ćŽ’ç‰ `|s are trumps|'ă€‚ďĽ‰

\section{ç¬¬ĺ››ä¸Şäľ‹ĺ­}

%Here's an example where \TeX's error diagnostic is downright wrong:
%\csdisplay
%\hbox{One \vskip 1in two.}
%|
%The error message is:
%\csdisplay
%!! Missing } inserted.
%&lt;inserted text&gt;
%                }
%&lt;to be read again&gt;
%                   \vskip
%l.29 \hbox{One \vskip
%                     1in two.}
%|
%^^|&lt;inserted text&gt;|
%The problem is that you can't use |\vskip| when \TeX\ is in
%restricted horizontal mode, i.e, constructing an hbox.
%But instead of rejecting the |\vskip|, \TeX\ has inserted a right brace
%in front of it in an attempt to close out the hbox.
%If you accept \TeX's correction, \TeX\ will complain again
%when it gets to the correct right brace later on. It will also complain
%about anything before that right brace that isn't allowed in vertical mode.
%These additional complaints will be particularly confusing
%because the errors they indicate are bogus, a
%result of the propagated effects of the inappropriate
%insertion of the right brace.
%Your best bet is to type `|5|', skipping past all the tokens
%in `|}\vskip 1in|'.
ĺś¨ä¸‹éť˘čż™ä¸Şäľ‹ĺ­ä¸­ďĽŚ\TeX\ ĺŻąé”™čŻŻçš„čŻŠć–­ćŻĺ®Śĺ…¨ä¸Ťć­Łçˇ®çš„ďĽš
\csdisplay
\hbox{One \vskip 1in two.}
|
ĺ®ç»™ĺ‡şçš„é”™čŻŻäżˇćŻĺ¦‚ä¸‹ďĽš
\csdisplay
!! Missing } inserted.
&lt;inserted text&gt;
                }
&lt;to be read again&gt;
                   \vskip
l.29 \hbox{One \vskip
                     1in two.}
|
^^|&lt;inserted text&gt;|
é—®é˘ĺś¨äşŽďĽŚĺ˝“ \TeX\ ä˝ŤäşŽĺŹ—é™ć°´ĺąłć¨ˇĺĽŹä¸­ďĽŚĺŤłć­Łĺś¨ćž„ĺ»şć°´ĺąłç›’ĺ­ć—¶ďĽŚä¸Ťč˝ä˝żç”¨ |\vskip|ă€‚
ä˝† \TeX\ ä¸ŤćŻä¸˘ćŽ‰ |\vskip|ďĽŚč€ŚćŻĺś¨ĺ®ĺ‰Ťéť˘ćŹ’ĺ…Ąä¸€ä¸ŞĺŹłčŠ±ć‹¬ĺŹ·ďĽŚä»Ąç»“ćťźčŻĄć°´ĺąłç›’ĺ­ă€‚
ĺ¦‚ćžśä˝&nbsp;ćŽĄĺŹ— \TeX\ çš„äż®ć”ąďĽŚ\TeX\ é‡ĺ°ç¨ŤĺŽçš„ć­Łçˇ®ĺŹłčŠ±ć‹¬ĺŹ·ć—¶ĺ°†ĺ†Ťć¬ˇćŠĄé”™ă€‚
ĺ®čżĺ°†ĺŻąčŻĄĺŹłčŠ±ć‹¬ĺŹ·äą‹ĺ‰Ťçš„ä»»ä˝•ä¸Ťč˝ĺ‡şçŽ°ĺś¨ç«–ç›´ć¨ˇĺĽŹçš„ä¸śčĄżćŠĄé”™ă€‚
čż™äş›é˘ťĺ¤–çš„é”™čŻŻĺ°†ćŻç‰ąĺ«č®©äşşčż·ć‘çš„ďĽŚĺ›&nbsp;ä¸şčż™äş›é”™čŻŻć‰€čŻ´çš„é˝ćŻĺ‡çš„ďĽŚ
ĺ®ä»¬ćŻä¸Ťć°ĺ˝“ćŹ’ĺ…ĄĺŹłčŠ±ć‹¬ĺŹ·ĺŽäş§ç”źçš„ç»“ćžśă€‚
ä˝&nbsp;çš„ćś€ä˝łĺšćł•ćŻé”®ĺ…Ą `|5|' ä»Ąč·łčż‡ĺś¨ `|}\vskip 1in|' ä¸­çš„ć‰€ćś‰č®°ĺŹ·ă€‚

\section{ç¬¬äş”ä¸Şäľ‹ĺ­}

%Here's a similar example in which the error message is longer
%than any we've seen so far:
%\csdisplay
%\leftline{Skip \smallskip a little further.} But no more.
%|
%The mistake here is that |\smallskip| only works in a vertical mode.
%The error message is something like:
%\csdisplay
%!! Missing } inserted.
%&lt;inserted text&gt;
%                }
%&lt;to be read again&gt;
%                   \vskip
%\smallskip -&gt;\vskip
%                    \smallskipamount
%&lt;argument&gt; Skip \smallskip
%                           a little further.
%\leftline #1-&gt;\line {#1
%                       \hss }
%l.93 ...Skip \smallskip a little further.}
%                                           But no more.
%|
%The error messages here give you a tour through the macros that are used in
%\plainTeX's implementation of |\leftline|---macros
%that you probably don't care about.
%The first line tells you that \TeX\ intends to cure the problem by
%inserting a right brace.
%\TeX\ hasn't actually read the
%right brace yet, so you can delete it if you choose to.
%Each component of the message after the first line
%(the one with the `!') occupies a pair of lines.
%Here's what the successive pairs of lines mean:
čż™é‡Śčżćś‰ä¸Şç›¸äĽĽçš„äľ‹ĺ­ďĽŚĺ®çš„é”™čŻŻäżˇćŻćŻ”ä˝&nbsp;äą‹ĺ‰Ťçś‹ĺ°çš„é˝č¦é•żďĽš
\csdisplay
\leftline{Skip \smallskip a little further.} But no more.
|
é”™čŻŻĺś¨äşŽ |\smallskip| ĺŹŞč˝ĺś¨ç«–ç›´ć¨ˇĺĽŹä¸­ä˝żç”¨ă€‚ç»™ĺ‡şçš„é”™čŻŻäżˇćŻĺ¦‚ä¸‹ďĽš
\csdisplay
!! Missing } inserted.
&lt;inserted text&gt;
                }
&lt;to be read again&gt;
                   \vskip
\smallskip -&gt;\vskip
                    \smallskipamount
&lt;argument&gt; Skip \smallskip
                           a little further.
\leftline #1-&gt;\line {#1
                       \hss }
l.93 ...Skip \smallskip a little further.}
                                           But no more.
|
čż™äş›é”™čŻŻäżˇćŻĺ¸¦ä˝&nbsp;ĺ·ˇč§†äş†ĺś¨ \plainTeX\ ä¸­ç”¨äşŽĺ®žçŽ° |\leftline| çš„ĺ„ä¸Şĺ®Źâ€”â€”%
čż™äş›ĺ®Źäąźč®¸ćŻä˝&nbsp;ĺą¶ä¸Ťĺś¨äąŽçš„ă€‚
ç¬¬ä¸€čˇŚĺ‘ŠčŻ‰ä˝&nbsp; \TeX\ čŻ•ĺ›ľé€ščż‡ćŹ’ĺ…ĄĺŹłčŠ±ć‹¬ĺŹ·č§Łĺ†łć­¤é—®é˘ă€‚
\TeX\ čżćśŞčŻ»ĺ°ĺŹłčŠ±ć‹¬ĺŹ·ďĽŚĺ›&nbsp;ć­¤č‹Ąä˝&nbsp;ćłçš„čŻťä˝&nbsp;ĺŹŻä»Ąĺ&nbsp;é™¤ĺ®ă€‚
ç¬¬ä¸€čˇŚďĽĺ¸¦ `!' çš„é‚ŁčˇŚďĽ‰äą‹ĺŽçš„äżˇćŻćŻŹé¨ĺ†é˝ç”±ä¸¤čˇŚç»„ćă€‚
ä¸‹éť˘ćŻĺ„é¨ĺ†çš„ä¸¤čˇŚäżˇćŻçš„ĺ«äą‰ďĽš
%\olist
%\li The first pair indicates that \TeX\ has inserted, but not yet read,
%a right brace.
%\li The next pair indicates that after reading the right brace, \TeX\ will
%again read a `|\vskip|' command (gotten from the macro definition
%of |\smallskip|).
%\li The third pair indicates that \TeX\ was expanding the |\smallskip|
%macro when it found the error.  The pair also displays the definition of
%|\smallskip| and indicates how far \TeX\ has gotten in expanding and
%executing that definition.  Specifically, it's just attempted
%unsuccessfully to execute the |\vskip| command.  In general, a
%diagnostic line that starts with a control sequence followed by `|-&gt;|'
%indicates that \TeX\ has been expanding and executing a macro by that
%name.
%\li The fourth pair indicates that \TeX\ was processing a macro argument
%when it found the |\smallskip| and also indicates \TeX's position in that
%argument, i.e., it's just processed the |\smallskip| (unsuccessfully).
%By looking ahead to the next pair of lines
%we can see that the argument was passed to
%|\leftline|.
%\li The fifth pair indicates that \TeX\ was expanding
%the |\leftline|
%macro when it found the error.
%(In this example the error occurred while \TeX\ was
%in the middle of interpreting several
%macro definitions at different levels of expansion.)
%Its position after |#1| indicates that the last thing it saw was the
%first (and in this case the only) argument to |\leftline|.
%\li The last pair indicates where \TeX\ is positioned in your input file.
%Note that this position is well beyond the position where it's
%inserting the right brace and reading `|\vskip|' again.
%That's because \TeX\ has already read the entire argument to |\leftline|
%from your input file, even though it's only processed part of that argument.
%The dots at the beginning of the pair indicate a preceding part of the
%input line that isn't shown.  This preceding part, in fact, includes
%the |\leftline| control sequence that made the |\vskip| illegal.
%\endolist
\olist
\li ç¬¬ä¸€ĺŻąĺŹŚčˇŚčˇ¨ç¤ş \TeX\ ĺ·˛ç»ŹćŹ’ĺ…ĄďĽŚä˝†ĺ°šćśŞčŻ»ĺ°çš„ĺŹłčŠ±ć‹¬ĺŹ·ă€‚
\li ç¬¬äşŚĺŻąĺŹŚčˇŚčˇ¨ç¤şĺś¨čŻ»ĺŹ–ĺŹłčŠ±ć‹¬ĺŹ·ĺŽďĽŚ
\TeX\ ĺ°†é‡Ťć–°čŻ»ĺŹ– `|\vskip|' ĺ‘˝ä»¤ďĽĺ®ćťĄč‡Ş |\smallskip| ĺ®Źçš„ĺ®šäą‰ä¸­ďĽ‰ă€‚
\li ç¬¬ä¸‰ĺŻąĺŹŚčˇŚčˇ¨ç¤ş \TeX\ ćŻĺś¨ĺ±•ĺĽ€ |\smallskip| ć—¶ĺŹ‘çŽ°çš„é”™čŻŻă€‚
ć­¤é¨ĺ†äąźćľç¤ş |\smallskip| çš„ĺ®šäą‰ďĽŚĺą¶čˇ¨ç¤şĺś¨ĺ±•ĺĽ€ĺ’Ść‰§čˇŚčŻĄĺ®šäą‰ć—¶ĺ·˛ç»ŹčŻ»ĺ°ĺ“Şé‡Śă€‚
ĺ…·ä˝“ĺś°čŻ´ďĽŚĺ®ćŻĺś¨ć‰§čˇŚ|\vskip| ĺ‘˝ä»¤ć—¶ĺ¤±č´Ąçš„ă€‚
ä¸€č¬ĺś°ďĽŚä»ĄćŽ§ĺ¶ĺşŹĺ—ĺŠ&nbsp; `|-&gt;|' ĺĽ€ĺ§‹çš„äżˇćŻčˇŚčˇ¨ç¤ş \TeX\ ĺ·˛ĺ±•ĺĽ€ć‰§čˇŚçš„ĺ®Źçš„ĺŤç§°ă€‚
\li ç¬¬ĺ››ĺŻąĺŹŚčˇŚčˇ¨ç¤ş \TeX\ ĺś¨ĺ¤„ç†ĺ®ŹĺŹ‚é‡Źć—¶ĺŹ‘çŽ°äş† |\smallskip|ďĽŚ
ĺŚć—¶äąźčˇ¨ç¤ş \TeX\ ĺś¨čŻĄĺŹ‚é‡Źä¸­çš„ä˝Ťç˝®ďĽŚĺŤłĺ®ć­Łĺś¨ĺ¤„ç† |\smallskip|ďĽĺ¤±č´Ąäş†ďĽ‰ă€‚
é€ščż‡ĺľ€ĺ‰ŤćźĄć‰ľćŽĄä¸‹ćťĄä¸¤čˇŚďĽŚä˝&nbsp;ĺŹŻä»Ąçś‹ĺ°ć­¤ĺŹ‚é‡ŹćŻäĽ&nbsp;é€’ç»™ |\leftline| çš„ă€‚
\li ç¬¬äş”ĺŻąĺŹŚčˇŚčˇ¨ç¤ş \TeX\ ćŻĺś¨ĺ±•ĺĽ€ |\leftline| ĺ®ŹćŻĺŹ‘çŽ°çš„é”™čŻŻă€‚%
ďĽĺś¨čż™ä¸Şäľ‹ĺ­ä¸­ďĽŚé”™čŻŻĺŹ‘ç”źĺś¨ \TeX\ č§Łé‡Šĺ¤šä¸Şä¸ŤĺŚĺ±‚çş§çš„ĺ®Źĺ®šäą‰çš„ä¸­é—´ă€‚ďĽ‰%
ĺś¨ |#1| ĺŽéť˘çš„ä˝Ťç˝®čˇ¨ç¤şĺ®ćś€ĺŽčŻ»ĺŹ–ĺ°çš„ćŻ |\leftline| çš„ç¬¬ä¸€ä¸ŞďĽĺś¨čż™é‡ŚäąźćŻĺ”Żä¸€çš„ďĽ‰ĺŹ‚é‡Źă€‚
\li ćś€ĺŽĺŻąĺŹŚčˇŚčˇ¨ç¤ş \TeX\ ĺś¨ä˝&nbsp;çš„čľ“ĺ…Ąć–‡ä»¶çš„ä˝Ťç˝®ă€‚
ćł¨ć„Źć­¤ä˝Ťç˝®čżśčżśč¶…ĺ‡şĺ®ćŹ’ĺ…ĄĺŹłčŠ±ć‹¬ĺŹ·ĺą¶é‡Ťć–°čŻ»ĺŹ– `|\vskip|' çš„ä˝Ťç˝®ă€‚
čż™ćŻĺ›&nbsp;ä¸ş \TeX\ ĺ·˛ç»Źä»Žčľ“ĺ…Ąć–‡ä»¶čŻ»ĺŹ–äş† |\leftline| çš„ĺ®Ść•´ĺŹ‚é‡ŹďĽŚ
ĺŤłä˝żĺ®ä»…ä»…ĺ¤„ç†čŻĄĺŹ‚é‡Źçš„ä¸€é¨ĺ†ă€‚
čż™ä¸¤čˇŚäżˇćŻĺĽ€ĺ¤´çš„ĺś†ç‚ąčˇ¨ç¤şčľ“ĺ…ĄčˇŚĺ‰Ťéť˘ä¸€é¨ĺ†ĺ†…ĺ®ąć˛ˇćľç¤şĺ‡şćťĄă€‚
ĺ‰Ťéť˘é‚Łé¨ĺ†ĺ†…ĺ®ąĺ®žé™…ä¸Šĺ°±ĺŚ…ć‹¬č®© |\vskip| ĺŹĺľ—ä¸Ťĺćł•çš„ |\leftline| ćŽ§ĺ¶ĺşŹĺ—ă€‚
\endolist
%\noindent
%In a long message like this, you'll generally find only the first line and the
%last pair of lines to be useful; but it sometimes helps to know what the other
%lines are about.  Any text that you insert or delete will be
%inserted or deleted at the
%innermost level.  In this example the insertion or deletion would occur
%just before the
%inserted right brace.
%Note in particular that in this case \TeX\ puts any text you might insert
%\emph{not} into your input text but into a macro definition
%several levels down. (The original macro definition is of course not modified.)
\noindent
ĺś¨ç±»äĽĽčż™ć&nbsp;·çš„é•żçŻ‡äżˇćŻä¸­ďĽŚä˝&nbsp;é€šĺ¸¸ĺŹ‘çŽ°ĺŹŞćś‰ç¬¬ä¸€čˇŚĺ’Śćś€ĺŽä¸¤čˇŚćŻćś‰ç”¨çš„ďĽ›
ä˝†çźĄé“ĺ…¶ä»–čˇŚćŻć€Žäąĺ›žäş‹ćś‰ć—¶ĺ€™äąźćś‰ç›Šĺ¤„ă€‚
ä»»ä˝•ä˝&nbsp;ćŹ’ĺ…Ąć–ĺ&nbsp;é™¤çš„ć–‡ćś¬ĺ°†ĺś¨ćś€ĺ†…ĺ±‚çş§ä¸­ćŹ’ĺ…Ąć–ĺ&nbsp;é™¤ă€‚
ĺś¨čż™é‡Śäľ‹ĺ­ä¸­ďĽŚćŹ’ĺ…Ąć–ĺ&nbsp;é™¤ĺ°†ĺ‡şçŽ°ĺś¨ \TeX\ ćŹ’ĺ…Ąçš„ĺŹłčŠ±ć‹¬ĺŹ·ĺ‰Ťă€‚
ç‰ąĺ«č¦ćł¨ć„ŹďĽŚĺś¨ć­¤ć…ĺ˝˘ä¸­ \TeX\ ĺ°†\emph{ä¸ŤäĽš}ćŠŠä˝&nbsp;ĺŹŻč˝ćŹ’ĺ…Ąçš„ć–‡ćś¬ć”ľĺś¨ä˝&nbsp;çš„čľ“ĺ…Ąć–‡ćś¬ä¸­ďĽŚ
č€ŚćŻć”ľĺś¨ĺ¤šĺ±‚ĺ®Źĺ®šäą‰çš„ćś€é‡Śéť˘ă€‚%
ďĽĺŽźĺ§‹çš„ĺ®Źĺ®šäą‰ĺ˝“ç„¶ĺą¶ä¸ŤäĽšč˘«ć”ąĺŠ¨ă€‚ďĽ‰

%You can use the ^|\errorcontextlines| command \ctsref{\errorcontextlines}
%to limit the
%number of pairs of error context lines that \TeX\ produces.
%If you're not interested in all the information that \TeX\ is giving you,
%you can set |\error!-contextlines| to $0$. That will give you just the first
%and last pairs of lines.
ä˝&nbsp;ĺŹŻä»Ąç”¨ ^|\errorcontextlines|\ctsref{\errorcontextlines}ĺ‘˝ä»¤é™ĺ¶
\TeX\ ç”źćçš„é”™čŻŻäżˇćŻĺŹŚčˇŚçš„ć•°ç›®ă€‚
ĺ¦‚ćžśä˝&nbsp;ĺą¶éťžĺŻą \TeX\ ç»™ä˝&nbsp;çš„ć‰€ćś‰äżˇćŻé˝ć„źĺ…´č¶ŁďĽŚ
ä˝&nbsp;ĺŹŻä»Ąč®ľĺ®š |\error!-contextlines| ä¸ş $0$ă€‚
čż™ć&nbsp;·é”™čŻŻäżˇćŻĺ°†ĺŹŞćś‰ćś€ĺ‰Ťéť˘ä¸¤čˇŚĺ’Śćś€ĺŽéť˘ä¸¤čˇŚă€‚

%Finally,
%we'll mention two other indicators that can appear at the start of a pair
%of error message lines:
%\ulist
%\li ^|&lt;output&gt;| indicates that \TeX\ was in the middle of its output routine
%when this error occurred.
%\li ^|&lt;write&gt;| indicates that \TeX\ was in the middle of executing a
%|\write| command when this error occurred.
%\TeX\ will detect such an error when it is actually doing the |\write|
%(during a |\shipout|), rather than when it first encounters the |\write|.
%\endulist
ćś€ĺŽďĽŚć‘ä»¬ćŹĺŹŠĺŹŻč˝ĺ‡şçŽ°ĺś¨é”™čŻŻäżˇćŻčˇŚĺŻąĺĽ€ĺ¤´çš„ĺŹ¦ĺ¤–ä¸¤ä¸ŞćŚ‡ç¤şčŻŤďĽš
\ulist
\li ^|&lt;output&gt;| čˇ¨ç¤ş \TeX\ ĺś¨ĺ®çš„čľ“ĺ‡şäľ‹čˇŚç¨‹ĺşŹä¸­é—´é‡ĺ°ć­¤é”™čŻŻă€‚
\li ^|&lt;write&gt;| čˇ¨ç¤ş \TeX\ ĺś¨ć‰§čˇŚ |\write| ĺ‘˝ä»¤ć—¶é‡ĺ°ć­¤é”™čŻŻă€‚
\TeX\ ĺ°†ĺś¨ĺ®žé™…ć‰§čˇŚ |\write| ć—¶ć‰ŤćŁ€ćµ‹čż™ć&nbsp;·çš„é”™čŻŻďĽĺś¨ |\shipout| ć—¶ďĽ‰ďĽŚ
č€Śä¸ŤćŻĺś¨ĺšé‡ĺ° |\write| ĺ‘˝ä»¤ć—¶ă€‚
\endulist

%\eix^^{error messages}
%\endchapter
%\byebye
\eix^^{é”™čŻŻäżˇćŻ}

\ifoldeplain\else\ifcompletebook\else
\vskip4em{\sectionfonts\leftline{ćś¬ç«&nbsp;ç´˘ĺĽ•}}
\readindexfile{i}
\fi\fi

\endchapter
\byebye
</pre></body></html>