summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/FAQ-en/faq-jot-err.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/FAQ-en/faq-jot-err.tex')
-rw-r--r--Master/texmf-dist/doc/generic/FAQ-en/faq-jot-err.tex115
1 files changed, 70 insertions, 45 deletions
diff --git a/Master/texmf-dist/doc/generic/FAQ-en/faq-jot-err.tex b/Master/texmf-dist/doc/generic/FAQ-en/faq-jot-err.tex
index 76ff3fc3a98..16518615c1c 100644
--- a/Master/texmf-dist/doc/generic/FAQ-en/faq-jot-err.tex
+++ b/Master/texmf-dist/doc/generic/FAQ-en/faq-jot-err.tex
@@ -1,4 +1,4 @@
-% $Id: faq-jot-err.tex,v 1.5 2010/08/16 22:04:13 rf10 Exp rf10 $
+% $Id: faq-jot-err.tex,v 1.7 2010/10/06 20:51:19 rf10 Exp rf10 $
\section{The joy of \TeX{} errors}
@@ -463,91 +463,116 @@ character by the time the hyphenation gets to look at it.
If \LaTeX{} responds to a \cmdinvoke{begin}{figure} or
\cmdinvoke{begin}{table} command with the error message
-\begin{htmlversion}
-\begin{verbatim}
-! LaTeX Error: Too many unprocessed floats.
-
-See the LaTeX manual or LaTeX Companion for explanation.
-\end{verbatim}
-\end{htmlversion}
-\htmlignore
-\ifpdf
+\begin{quote}
+\begin{wideversion}
\begin{verbatim}
! LaTeX Error: Too many unprocessed floats.
See the LaTeX manual or LaTeX Companion for explanation.
\end{verbatim}
-\else
+\end{wideversion}
+\begin{narrowversion}
\begin{verbatim}
! LaTeX Error: Too many unprocessed floats.
See the LaTeX manual or LaTeX Companion
-... for explanation.
+... for explanation.
\end{verbatim}
-\fi
-\endhtmlignore
-your figures (or tables) are failing to be placed properly. \LaTeX{}
+\end{narrowversion}
+\end{quote}
+your figures (or tables) are not being placed properly. \LaTeX{}
has a limited amount of storage for `floats' (figures, tables, or
floats you've defined yourself with the \Package{float} package); if
-you don't let it ever actually typeset any floats, it will run out of
-space.
+something you have done has prevented \latex{} from typesetting
+floats, it will run out of storage space.
-This failure usually occurs in extreme cases of
-% beware line break
-\nothtml{floats moving ``wrongly'' (see }%
-\Qref[question]{floats moving ``wrongly''}{Q-floats}\latexhtml{);}{;}
+This failure usually occurs in extreme cases of % ! line break
+\Qref*{floats moving ``wrongly''}{Q-floats};
\LaTeX{} has found it can't place a float, and floats of the same type
-have piled up behind it. \LaTeX{}'s idea is to ensure that caption
-numbers are sequential in the document: the caption number is
-allocated when the figure (or whatever) is created, and can't be
-changed, so that placement out of order would mean figure numbers
-appearing out of order in the document (and in the list of figures, or
-whatever). So a simple failure to place a figure means that no
-subsequent figure can be placed; and hence (eventually) the error.
-
-Techniques for solving the problem are discussed in the
-\nothtml{floats question (}%
-\Qref[\htmlonly]{floats question}{Q-floats}\nothtml{)}
-already referenced.
-
-The error also occurs in a
-long sequence of \environment{figure} or \environment{table}
-environments, with no intervening
-text. Unless the environments will fit ``here'' (and you've allowed
-them to go ``here''), there will never be a page break, and so there
-will never be an opportunity for \LaTeX{} to reconsider placement.
-(Of course, the floats can't all fit ``here'' if the sequence is
-sufficiently prolonged: once the page fills, \LaTeX{} won't place any
-more floats, leading to the error.
+have piled up behind it.
+
+How does this happen?~--- \LaTeX{} guarantees that caption numbers are
+sequential in the document, but the caption number is allocated when
+the figure (or whatever) is created, and can't be changed. Thus, if
+floats are placed out of order, their caption numbers would also
+appear out of order in the body of the document (and in the list of
+figures, or whatever). As a result, enforcement of the guarantee
+means that simple failure to place a float means that no subsequent
+float can be placed; and hence (eventually) the error.
+
+Techniques for solving the problem are discussed in the % ! line break
+\Qref*{floats question}{Q-floats} already referenced.
+
+An alternative \emph{may} be to use the \Package{morefloats} package.
+The package will allocate more ``float skeletons'' than \latex{}
+does by default; each such skeleton may then be used to store a
+float. Beware that even with \Package{morefloats}, the number you can
+allocate is limited; even with the \Package{etex} package (which makes
+available many more registers, etc., than \latex{} does by default;
+\etex{} can create lots more registers, but none of those ``beyond
+the original \TeX{} default'' may be used in float skeletons). Thus,
+\Package{etex} may offer some relief, but it can \emph{not} be
+regarded as a panacea
+
+The error also occurs in a long sequence of float environments, with
+no intervening text. Unless the environments will fit ``here'' (and
+you've allowed them to go ``here''), there will never be a page break,
+and so there will never be an opportunity for \LaTeX{} to reconsider
+placement. (Of course, the floats can't all fit ``here'' if the
+sequence is sufficiently prolonged: once the page fills, \LaTeX{}
+won't place any more floats, leading to the error.
Techniques for resolution may involve redefining the floats using the
\Package{float} package's \texttt{[H]} float qualifier, but you are unlikely
to get away without using \csx{clearpage} from time to time.
\begin{ctanrefs}
\item[float.sty]\CTANref{float}
+\item[morefloats.sty]\CTANref{morefloats}
\end{ctanrefs}
\Question[Q-atvert]{\csx{spacefactor} complaints}
The errors
+\begin{quote}
+\begin{narrowversion}
+\begin{verbatim}
+! You can't use `\spacefactor' in
+... vertical mode.
+\@->\spacefactor
+ \@m
+\end{verbatim}
+\end{narrowversion}
+\begin{wideversion}
\begin{verbatim}
! You can't use `\spacefactor' in vertical mode.
\@->\spacefactor
\@m
\end{verbatim}
+\end{wideversion}
+\end{quote}
or
+\begin{quote}
\begin{verbatim}
! You can't use `\spacefactor' in math mode.
\@->\spacefactor
\@m
\end{verbatim}
+\end{quote}
or simply
+\begin{quote}
\begin{verbatim}
! Improper \spacefactor.
...
\end{verbatim}
-bites the \LaTeX{} programmer who uses an internal command without taking
-``precautions''. The problem is discussed in detail in
+\end{quote}
+bite the \LaTeX{} programmer who uses an internal command without
+taking ``precautions''. An internal-style command such as \csx{@foo}
+has been defined or used in a private macro, and it is interpreted as
+\csx{@}, followed by the `text' \texttt{foo}. (\csx{@} is used, for
+real, to set up end-of-sentence space in some circumstances; it uses
+\csx{spacefactor} to do that.)
+
+The problem is discussed in detail in
% beware line wrap
``\Qref*[question]{\texttt{@} in macro names}{Q-atsigns}'',
together with solutions.