diff options
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.tex | 115 |
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. |