summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/FAQ-en/faq-wdidt.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/FAQ-en/faq-wdidt.tex')
-rw-r--r--Master/texmf-dist/doc/generic/FAQ-en/faq-wdidt.tex1783
1 files changed, 1783 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/generic/FAQ-en/faq-wdidt.tex b/Master/texmf-dist/doc/generic/FAQ-en/faq-wdidt.tex
new file mode 100644
index 00000000000..c0c0d0a450f
--- /dev/null
+++ b/Master/texmf-dist/doc/generic/FAQ-en/faq-wdidt.tex
@@ -0,0 +1,1783 @@
+% $Id: faq-wdidt.tex,v 1.2 2009/09/01 06:53:22 rf10 Exp rf10 $
+
+\section{Why does it \emph{do} that?}
+
+\subsection{Common errors}
+
+\Question[Q-crossref]{\LaTeX{} gets cross-references wrong}
+
+Sometimes, however many times you run \LaTeX{}, the cross-references
+are just wrong. Remember that
+the \csx{label} command must come \emph{after} the \csx{caption} command, or
+be part of it. For example,
+\htmlignore
+\par\noindent
+\begin{tabular}{@{}lll}
+| \begin{figure}| & & |\begin{figure}|\\
+| \caption{A Figure}| & or & |\caption{A Figure%| \\
+| \label{fig}| & & | \label{fig}}| \\
+| \end{figure}| & & |\end{figure}| \\
+\end{tabular}
+\endhtmlignore
+\begin{htmlversion}
+\begin{verbatim}
+ \begin{figure} \begin{figure}
+ \caption{A Figure} or \caption{A Figure%
+ \label{fig} \label{fig}}
+ \end{figure} \end{figure}
+\end{verbatim}
+\end{htmlversion}
+
+You can, just as effectively, shield the \csx{caption} command from its
+associated \csx{label} command, by enclosing the caption in an
+environment of its own. For example, people commonly seek help after:
+\begin{quote}
+\begin{verbatim}
+\begin{center}
+ \caption{A Figure}
+\end{center}
+\label{fig}
+\end{verbatim}
+\end{quote}
+has failed to label correctly. If you really need this centring (and
+those in the know commonly reject it), code it as:
+\begin{quote}
+\begin{verbatim}
+\begin{center}
+ \caption{A Figure}
+ \label{fig}
+\end{center}
+\end{verbatim}
+\end{quote}
+
+\Question[Q-newlineargs]{Start of line goes awry}
+\keywords{asterisk square bracket start line}
+
+This answer concerns two sorts of problems: errors of the form
+\begin{quote}
+\begin{verbatim}
+! Missing number, treated as zero.
+<to be read again>
+ g
+<*> [grump]
+\end{verbatim}
+\end{quote}
+and those where a single asterisk at the start of a line mysteriously
+fails to appear in the output.
+
+Both problems arise because |\|{}|\| takes optional arguments. The
+command |\|{}|\*| means ``break the line here, and inhibit page break
+following the line break''; the command |\|{}|\[|\meta{dimen}|]|
+means ``break the line here and add \meta{dimen} extra vertical space
+afterwards''.
+
+So why does |\|{}|\| get confused by these things at the start of a
+line? It's looking for the first non-blank thing, and in the test it
+uses ignores the end of the line in your input text.
+
+The solution is to enclose the stuff at the start of the new line in
+braces:
+\begin{quote}
+\begin{verbatim}
+{\ttfamily
+ /* C-language comment\\
+ {[grump]} I don't like this format\\
+ {*}/
+}
+\end{verbatim}
+\end{quote}
+(The above text derives from an actual post to
+\Newsgroup{comp.text.tex}; this particular bit of typesetting could
+plainly also be done using the \environment{verbatim} environment.)
+
+The problem also appears in maths mode, in arrays and so on. In this
+case, large-scale bracketing of things is \emph{not} a good idea; the
+\TeX{} primitive \csx{relax} (which does nothing except to block
+searches of this nature) may be used. From another
+\Newsgroup{comp.text.tex} example:
+\begin{quote}
+\begin{verbatim}
+\begin{eqnarray}
+ [a] &=& b \\
+ \relax[a] &=& b
+\end{eqnarray}
+\end{verbatim}
+\end{quote}
+which is a usage this \acro{FAQ} would not recommend, anyway: refer
+to the \Qref*{reason not to use \environment{eqnarray}}{Q-eqnarray}.
+
+Note that the \Package{amsmath} package modifies the behaviour of
+\texttt{\bsbs } in maths. With \Package{amsmath}, the \environment{eqnarray}
+example doesn't need any special measures.
+
+\Question[Q-verbwithin]{Why doesn't verbatim work within\,\dots{}?}
+
+The \LaTeX{} verbatim commands work by changing category codes. Knuth
+says of this sort of thing ``Some care is needed to get the timing
+right\dots{}'', since once the category code has been assigned to a
+character, it doesn't change. So \csx{verb} and
+\cmdinvoke{begin}{verbatim} have to assume that they are getting the
+first look at the parameter text; if they aren't, \TeX{} has already
+assigned category codes so that the verbatim command doesn't have a
+chance. For example:
+\begin{quote}
+\begin{verbatim}
+\verb+\error+
+\end{verbatim}
+\end{quote}
+will work (typesetting `\csx{error}'), but
+\begin{quote}
+\begin{verbatim}
+\newcommand{\unbrace}[1]{#1}
+\unbrace{\verb+\error+}
+\end{verbatim}
+\end{quote}
+will not (it will attempt to execute \csx{error}). Other errors one
+may encounter are `\csx{verb} ended by end of line', or even the
+rather more helpful `\csx{verb} illegal in command argument'. The
+same sorts of thing happen with \cmdinvoke{begin}{verbatim} \dots{}
+\cmdinvoke{end}{verbatim}:
+\begin{quote}
+\begin{quoteverbatim}
+\ifthenelse{\boolean{foo}}{%
+\begin{verbatim}
+foobar
+\end{verbatim}
+}{%
+\begin{verbatim}
+barfoo
+\end{verbatim}
+}
+\end{quoteverbatim}
+\end{quote}
+provokes errors like `File ended while scanning use of
+\csx{@xverbatim}', as \cmdinvoke{begin}{verbatim} fails to see its
+matching \cmdinvoke{end}{verbatim}.
+
+This is why the \LaTeX{} book insists that verbatim
+commands must not appear in the argument of any other command; they
+aren't just fragile, they're quite unusable in any command parameter,
+regardless of \Qref*{\csx{protect}ion}{Q-protect}. (The \csx{verb}
+command tries hard to detect if you're misusing it; unfortunately, it
+can't always do so, and the error message is therefore not a reliable
+indication of problems.)
+
+The first question to ask yourself is: ``is \csx{verb} actually
+necessary?''.
+\begin{itemize}
+\item If \cmdinvoke{texttt}{\emph{your text}} produces the same result
+ as \csx{verb}\texttt{+\emph{your text}+}, then there's no need of
+ \csx{verb} in the first place.
+\item If you're using \csx{verb} to typeset a \acro{URL} or email
+ address or the like, then the \csx{url} command from the
+ \Package{url} will help: it doesn't suffer from all the problems of
+ \csx{verb}, though it's still not robust; % ! line break
+ ``\Qref*{typesetting \acro{URL}s}{Q-setURL}'' offers advice here.
+\item If you're putting \csx{verb} into the argument of a boxing
+ command (such as \csx{fbox}), consider using the \environment{lrbox}
+ environment:
+\begin{quote}
+\begin{verbatim}
+\newsavebox{\mybox}
+...
+\begin{lrbox}{\mybox}
+ \verb!VerbatimStuff!
+\end{lrbox}
+\fbox{\usebox{\mybox}}
+\end{verbatim}
+\end{quote}
+\end{itemize}
+
+Otherwise, there are three partial solutions to the problem.
+\begin{itemize}
+\item Some packages have macros which are designed to be responsive
+ to verbatim text in their arguments. For example,
+ the \Package{fancyvrb} package defines a command
+ \csx{VerbatimFootnotes}, which redefines the \csx{footnotetext}
+ command, and hence also the behaviour of the \csx{footnote})
+ command, in such a way that you can include \csx{verb} commands in
+ its argument. This approach could in principle be extended to the
+ arguments of other commands, but it can clash with other packages:
+ for example, \csx{VerbatimFootnotes} interacts poorly with the
+ \pkgoption{para} option of the \Package{footmisc} package.
+
+ The \Class{memoir} class defines its \csx{footnote} command so that
+ it will accept verbatim in its arguments, without any supporting package.
+\item The \Package{fancyvrb} package defines a command \csx{SaveVerb},
+ with a corresponding \csx{UseVerb} command, that allow you to save
+ and then to reuse the content of its argument; for details of this
+ extremely powerful facility, see the package documentation.
+
+ Rather simpler is the \Package{verbdef} package, whose \csx{verbdef}
+ command defines a (robust) command which expands to the verbatim
+ argument given.
+\item If you have a single character that is giving trouble (in
+ its absence you could simply use \csx{texttt}), consider using
+ \csx{string}. \cmdinvoke{texttt}{my\csx{string}\_name}
+ typesets the same as
+ |\verb+my_name+|, and will work in the argument of a command. It
+ won't, however, work in a moving argument, and no amount of
+ \Qref*{\csx{protect}ion}{Q-protect} will make it work in
+ such a case.
+
+ A robust alternative is:
+ \begin{quote}
+\begin{verbatim}
+\chardef\us=`\_
+...
+\section{... \texttt{my\us name}}
+\end{verbatim}
+ \end{quote}
+ Such a definition is `naturally' robust; the construction
+ ``\meta{back-tick}\csx{\meta{char}}'' may be used for any
+ troublesome character (though it's plainly not necessary for things
+ like percent signs for which \AllTeX{} already provides
+ robust macros).
+\end{itemize}
+Documentation of both \Package{url} and \Package{verbdef} is in the
+package files.
+\begin{ctanrefs}
+\item[fancyvrb.sty]\CTANref{fancyvrb}
+\item[memoir.cls]\CTANref{memoir}
+\item[url.sty]\CTANref{url}
+\item[verbdef.sty]\CTANref{verbdef}
+\end{ctanrefs}
+
+\Question[Q-noline]{No line here to end}
+
+The error
+\begin{quote}
+\begin{wideversion}
+\begin{verbatim}
+! LaTeX Error: There's no line here to end.
+
+See the LaTeX manual or LaTeX Companion for explanation.
+\end{verbatim}
+\end{wideversion}
+\begin{narrowversion}
+\begin{verbatim}
+! LaTeX Error: There's no line here to end.
+
+See the LaTeX manual or LaTeX Companion
+... for explanation.
+\end{verbatim}
+\end{narrowversion}
+\end{quote}
+comes in reaction to you giving \LaTeX{} a |\|{}|\| command at a time
+when it's not expecting it. The commonest case is where you've
+decided you want the label of a list item to be on a line of its own,
+so you've written (for example):
+\begin{quote}
+\begin{verbatim}
+\begin{description}
+\item[Very long label] \\
+ Text...
+\end{description}
+\end{verbatim}
+\end{quote}
+|\|{}|\| is actually a rather bad command to use in this case (even if
+it worked), since it would force the `paragraph' that's made up of the
+text of the item to terminate a line which has nothing on it but the
+label. This would lead to an ``|Underfull \hbox|'' warning message
+(usually with `infinite' badness of 10000); while this message doesn't
+do any actual harm other than slowing down your \LaTeX{} run, any
+message that doesn't convey any information distracts for no useful
+purpose.
+
+The proper solution to the problem is to write a new sort of
+\environment{description} environment, that does just what you're after. (The
+\nothtml{\emph{\LaTeX{} Companion}~--- see }% ! line wrap
+\Qref[question]{\emph{\LaTeX{} Companion}}{Q-books}\nothtml{~---} offers a
+rather wide selection of variants of these things.)
+
+The quick-and-easy solution, which avoids the warning, is to write:
+\begin{quote}
+\begin{verbatim}
+\begin{description}
+\item[Very long label] \hspace*{\fill} \\
+ Text...
+\end{description}
+\end{verbatim}
+\end{quote}
+which fills out the under-full line before forcing its closure. The
+\Package{expdlist} package provides the same functionality with its
+\csx{breaklabel} command, and \Package{mdwlist} provides it via its
+\csx{desclabelstyle} command.
+
+The other common occasion for the message is when you're using the
+\texttt{center} (or \environment{flushleft} or \environment{flushright})
+environment, and have decided you need extra separation between lines
+in the environment:
+\begin{quote}
+\begin{verbatim}
+\begin{center}
+ First (heading) line\\
+ \\
+ body of the centred text...
+\end{center}
+\end{verbatim}
+\end{quote}
+The solution here is plain: use the \texttt{\bsbs } command in the way it's
+supposed to be used, to provide more than just a single line break
+space. \texttt{\bsbs } takes an optional argument, which specifies
+how much extra space to add; the required effect in the text above can
+be had by saying:
+\begin{quote}
+\begin{verbatim}
+\begin{center}
+ First (heading) line\\[\baselineskip]
+ body of the centred text...
+\end{center}
+\end{verbatim}
+\end{quote}
+\begin{ctanrefs}
+\item[expdlist.sty]\CTANref{expdlist}
+\item[mdwlist.sty]Distributed as part of \CTANref{mdwtools}
+\end{ctanrefs}
+
+% other instances: \[no]linebreak in vertical mode
+
+\Question[Q-2colfltorder]{Two-column float numbers out of order}
+
+When \LaTeX{} can't place a float immediately, it places it on one of
+several ``defer'' lists. If another float of the same type comes
+along, and the ``defer'' list for that type still has something in it,
+the later float has to wait for everything earlier in the list.
+
+Now, standard \LaTeX{} has different lists for single-column floats,
+and double-column floats; this means that single-column figures can
+overtake double-column figures (or vice-versa), and you observe later
+figures appear in the document before early ones. The same is true,
+of course, for tables, or for any user-defined float.
+
+The \LaTeX{} team recognise the problem, and provides a package
+(\Package{fixltx2e}) to deal with it. \Package{Fixltx2e} amalgamates
+the two defer lists, so that floats don't get out of order.
+
+For those who are still running an older \LaTeX{} distribution, the
+package \Package{fix2col} should serve. This package (also by a
+member of the \LaTeX{} team) was the basis of the relevant part of
+\Package{fixltx2e}. The functionality has also been included in
+\Package{dblfloatfix}, which also has code to place full-width floats
+at \Qref*{\texttt{[b]} placement}{Q-2colfloat}.
+
+Once you have loaded the package, no more remains to be done: the
+whole requirement is to patch the output routine; no extra commands
+are needed.
+\begin{ctanrefs}
+\item[dblfloatfix.sty]\CTANref{dblfloatfix}
+\item[fix2col.sty]Distributed as part of \CTANref{carlisle}
+\item[fixltx2e.sty]Part of the \LaTeX{} distribution
+\end{ctanrefs}
+
+\Question[Q-tabacc]{Accents misbehave in \environment{tabbing}}
+
+So you are constructing a \environment{tabbing} environment, and you
+have the need of some diacriticised text~--- perhaps something as simple
+as \cmdinvoke{'}{e}~--- and the accent disappears because it has been
+interpreted as a \environment{tabbing} command, and everything goes
+wrong.
+
+This is really a rather ghastly feature of the \environment{tabbing}
+environment; in order to type accented characters you need to use the
+\csx{a} kludge: so \cmdinvoke{a'}{e} inside \environment{tabbing} for
+\cmdinvoke{'}{e} outside, and similarly \csx{a`} for \csx{`} and \csx{a=}
+for \csx{=}. This whole procedure is of course hideous and
+error-prone.
+
+The simplest alternative is to type in an encoding that has the
+diacriticised characters in it, and to use an appropriate encoding
+definition file in the \Package{inputenc} package. So for example,
+type:
+\begin{quote}
+ \cmdinvoke{usepackage}[latin1]{inputenc}\\
+ \texttt{...}\\
+ \cmdinvoke{begin}{tabbing}\\
+ \texttt{...}\\
+ \texttt{...} \csx{>} \texttt{voil\`a} \csx{>} \texttt{...}
+\end{quote}
+for:
+\begin{quote}
+ \dots{}\quad voil\`a\quad \dots{}
+\end{quote}
+and the internal mechanisms of the \Package{inputenc} package will put
+the right version of the accent command in there.
+
+A witty reversal of the r\^oles is introduced by the package
+\Package{Tabbing} (note the capital ``T''): it provides a
+\environment{Tabbing} environment which duplicates
+\environment{tabbing}, but all the single-character commands become
+complicated objects. So \environment{tabbing}'s \csx{>} becomes
+\csx{TAB>}, \csx{=} becomes \csx{TAB=}, and so on. The above trivial
+example would therefore become:
+\begin{quote}
+\begin{verbatim}
+\usepackage{Tabbing}
+...
+\begin{Tabbing}
+ ... ... \TAB> voil\`a \TAB> ...
+\end{verbatim}
+\end{quote}
+\begin{ctanrefs}
+\item[Tabbing.sty]\CTANref{Tabbing}
+\end{ctanrefs}
+
+\Question[Q-alreadydef]{Package reports ``command already defined''}
+
+You load a pair of packages, and the second reports that one of the
+commands it defines is already present. For example, both the
+\Package{txfonts} and \Package{amsmath} define a command \csx{iint}
+(and \csx{iiint} and so on); so
+\begin{quote}
+\begin{verbatim}
+...
+\usepackage{txfonts}
+\usepackage{amsmath}
+\end{verbatim}
+\end{quote}
+produces a string of error messages of the form:
+\begin{quote}
+\begin{wideversion}
+\begin{verbatim}
+! LaTeX Error: Command \iint already defined.
+ Or name \end... illegal, see p.192 of the manual.
+\end{verbatim}
+\end{wideversion}
+\begin{narrowversion}
+\begin{verbatim}
+! LaTeX Error: Command \iint already
+ defined. Or name \end... illegal,
+ see p.192 of the manual.
+\end{verbatim}
+\end{narrowversion}
+\end{quote}
+As a general rule, things that \Package{amsmath} defines, it defines
+well; however, there is a good case for using the \Package{txfonts}
+version of \csx{iint}~--- the associated \FontName{tx} fonts have a
+double integral symbol that doesn't need to be ``faked'' in the way
+\Package{amsmath} does. In the case that you are loading several
+symbol packages, every one of which defines the same symbol, you are
+likely to experience the problem in a big way (\csx{euro} is a common
+victim).
+
+There are similar cases where one package redefines another's command,
+but no error occurs because the redefining package doesn't use
+\csx{newcommand}. Often, in such a case, you only notice the change
+because you assume the definition given by the first package. The
+\Package{amsmath}--\Package{txfonts} packages are just such a pair;
+\Package{txfonts} doesn't provoke errors.
+
+You may deal with the problem by saving and restoring the command.
+Macro programmers may care to do this for themselves; for the rest of
+us, there's the package \Package{savesym}. The sequence:
+\begin{quote}
+\begin{verbatim}
+\usepackage{savesym}
+\usepackage{amsmath}
+\savesymbol{iint}
+\usepackage{txfonts}
+\restoresymbol{TXF}{iint}
+\end{verbatim}
+\end{quote}
+does the job; restoring the \Package{amsmath} version of the command,
+and making the \Package{txfonts} version of the command available as
+\csx{TXFiint}.
+
+Documentation of \Package{savesym} doesn't amount to much: the only
+commands are \csx{savesymbol} and \csx{restoresymbol}, as noted above.
+\begin{ctanrefs}
+\item[amsmath.sty]Part of \CTANref{amslatex}
+\item[savesym.sty]\CTANref{savesym}
+\item[txfonts.sty]Part of \CTANref{txfonts}
+\end{ctanrefs}
+
+\Question[Q-zerochap]{Why are my sections numbered 0.1\,\dots{}?}
+
+This happens when your document is using the standard \Class{book} or
+\Class{report} class (or one similar), and you've got a \csx{section}
+before your first \csx{chapter}.
+
+What happens is, that the class numbers sections as % ! line break
+``\meta{chapter no}.\meta{section no}'', and until the first
+chapter has appeared, the chapter number is 0.
+
+If you're doing this, it's quite likely that the \Class{article} class
+is for you; try it and see. Otherwise, give your sections a
+`superior' chapter, or do away with section numbering by using
+\csx{section*} instead. An alternative way of avoiding numbering is
+discussed in % ! line break
+``\Qref*{unnumbered sections in the table of contents}{Q-secnumdep}''.
+
+\Question[Q-breaklinks]{Link text doesn't break at end line}
+\keywords{hyperref overfull link}
+
+When using the \Package{hyperref} package, you make a block of text
+``active'' when you define a hyper-link (when the user clicks on
+that text, the reader program will divert to the \emph{target} of the
+link).
+
+The \Package{hyperref} package uses a \emph{driver} (in the same way
+as the \Package{graphics} package does), to determine how to implement
+all that hyper-stuff.
+
+If you use the driver for \ProgName{dvips} output (presumably you want
+to distill the resulting \PS{}), limitations in the way \ProgName{dvips}
+deals with the \csx{special} commands mean that \Package{hyperref}
+must prevent link anchors from breaking at the end of lines. Other
+drivers (notably those for \PDFTeX{} and for \ProgName{dvipdfm}) don't
+suffer from this problem.
+
+The problem may occur in a number of different circumstances. For a
+couple of them, there are work-arounds:
+
+First, if you have an \acro{URL} which is active (so that clicking on
+it will activate your web browser to ``go to'' the \acro{URL}). In
+this case \Package{hyperref} employs the \Package{url} package to
+split up the \acro{URL} (as described in % ! line break
+\Qref[question]{typesetting \acro{URL}s}{Q-setURL}), but the
+\ProgName{dvips} driver then suppresses the breaks. The way out is
+the \Package{breakurl} package, which modifies the \csx{url} command
+to produce several smaller pieces, between each of which a line break
+is permitted. Each group of pieces, that ends up together in one
+line, is converted to a single clickable link.
+
+Second, if you have a table of contents, list of figure or tables, or
+the like, \Package{hyperref} will ordinarily make the titles in the
+table of contents, or captions in the lists, active. If the title or
+caption is long, it will need to break within the table, but the
+\ProgName{dvips} driver will prevent that. In this case, load
+\Package{hyperref} with the option \pkgoption{linktocpage}, and only
+the page number will be made active.
+
+Otherwise, if you have a lengthy piece of text that you want active,
+you have at present no simple solution: you have to rewrite your text,
+or to use a different \acro{PDF} generation mechanism.
+\begin{ctanrefs}
+\item[breakurl.sty]\CTANref{breakurl}
+\end{ctanrefs}
+
+\Question[Q-wrongpn]{Page number is wrong at start of page}
+
+This is a long story, whose sources are deep inside the workings of
+\TeX{} itself; it all derives from the \TeX{}'s striving to generate
+the best possible output.
+
+The page number is conventionally stored in \csx{count0}; \LaTeX{}
+users see this as the counter \texttt{page}, and may typeset its value
+using \csx{thepage}.
+
+The number (that is to say, \csx{count0}) is only updated when \TeX{}
+actually outputs a page. \TeX{} only even tries to do this when it
+detects a hint that it may be a good thing to do. From \TeX{}'s point
+of view, the end of a paragraph is a good time to consider outputting
+a page; it will output a page if it has \emph{more} than a page's
+worth of material to output. (Ensuring it always has something in
+hand makes some optimisations possible.) As a result, \csx{count0}
+(\csx{thepage}) is almost always wrong in the first paragraph of a
+page (the exception is where the page number has been ``forcibly''
+changed, either by changing its value directly, or by breaking the
+page where \TeX{} wouldn't necessarily have chosen to break).
+
+\LaTeX{} provides a safe way of referring to the page number, by using
+label references. So, rather than writing:
+\begin{quote}
+\begin{verbatim}
+Here is page \thepage{}.
+\end{verbatim}
+\end{quote}
+you should write:
+\begin{quote}
+\begin{verbatim}
+Here is page \pageref{here}\label{here}.
+\end{verbatim}
+\end{quote}
+(note: no space between the \csx{pageref} and the \csx{label}, since
+that could potentially end up as a page-break space itself, which
+rather defeats the purpose of the exercise!).
+
+\Question[Q-matchbrak]{My brackets don't match}
+
+\AllTeX{} has a low-level mechanism for matching braces in document
+text. This means you can type something like:
+\begin{quote}
+\begin{verbatim}
+\section{All \emph{OK} now.}
+\end{verbatim}
+\end{quote}
+and know that the first brace (for the argument of \csx{section}) will
+be matched with the last brace, and the internal pair of braces (for
+the argument of \csx{emph}) will be matched with each other. It's all
+very simple.
+
+However, \LaTeX{} has a convention of enclosing optional arguments in
+brackets, as in:
+\begin{quote}
+\begin{verbatim}
+\section[OK]{All \emph{OK} now.}
+\end{verbatim}
+\end{quote}
+These brackets are not matched by \TeX{} mechanisms, despite the
+superficial similarity of their use. As a result,
+straightforward-looking usages like:
+\begin{quote}
+\begin{verbatim}
+\section[All [OK] now]{All \emph{OK} now.}
+\end{verbatim}
+\end{quote}
+aren't \acro{OK} at all~--- the optional argument comes to consist of
+``All [OK'', and \csx{section} takes the single character ``n'' (of
+the first ``now'') as its argument.
+
+Fortunately, \TeX{}'s scanning mechanisms helps us by accepting the
+syntax ``\texttt{\{]\}}'' to `hide' the closing bracket from the
+scanning mechanism that \LaTeX{} uses. In practice, the commonest way
+to use this facility is:
+\begin{quote}
+\begin{verbatim}
+\section[All {[OK]} now]{All \emph{OK} now.}
+\end{verbatim}
+\end{quote}
+since bracing the bracket on its own ``looks odd''.
+
+\LaTeX{} has another argument syntax, even less regular, where the
+argument is enclosed in parentheses, as in:
+\begin{quote}
+\begin{verbatim}
+\put(1,2){foo}
+\end{verbatim}
+\end{quote}
+(a picture environment command).
+
+This mechanism is also prone to problems with matching closing
+parentheses, but the issue seldom arises since such arguments rarely
+contain text. If it were to arise, the same solution (enclosing the
+confused characters in braces) would solve the problem.
+
+\Question[Q-pdf-fig-chars]{Characters disappear from figures in \PDFTeX{}}
+
+You have a \acro{PDF} figure, which you want to use in your
+\PDFLaTeX{} document. When you compile the document, \PDFTeX{}
+complains about ``missing glyphs'', and some (or all) of the labelling
+text or symbols in the original figure is no longer visible.
+
+What has happened is:
+\begin{enumerate}
+\item Your figure file (say \File{fig.pdf}) has a font \File{font.pfb}
+ embedded in it.
+\item \PDFTeX{} notes that it has \File{font.pfb} on disc, and loads
+ that in place of the copy in \File{fig.pdf}.
+\item It turns out that the copy in \File{fig.pdf} has glyphs that
+ aren't in \File{font.pfb} on disc, so that you get errors while
+ compiling and you see that characters are missing when you view the
+ output. (\PDFTeX{} can't know that the fonts are different, since
+ they have the same name.)
+\end{enumerate}
+Which is all very undesirable.
+
+\PDFTeX{} does this to keep file sizes down: suppose you have a
+document that loads figures \File{fig1.pdf} and \File{fig2.pdf}; both
+of those use font \File{font.pfb}. If \PDFTeX{} takes no action,
+there will be \emph{two} copies of \File{font.pfb} in the output.
+(If your document also uses the font, there could be three copies.)
+
+A real case is the \acro{URW} font \File{NimbusRomNo9L-Regu} (a clone
+of Times Roman), which is available in a version with Cyrillic
+letters, while the version in \TeX{} distributions doesn't have those
+letters. Both versions, as distributed, have the same name.
+
+The simple (``quick and dirty'') solution is to add the command
+\begin{quote}
+ \csx{pdfinclusioncopyfonts}\texttt{=1}
+\end{quote}
+to the preamble of your document.
+
+The ``real'' solution is that one or other font should be renamed. In
+either case, this would require that you reconfigure some program's
+(\TeX{}'s or your drawing package's) font tables~--- inevitably a
+tiresome job.
+
+\subsection{Common misunderstandings}
+
+\Question[Q-include]{What's going on in my \csx{include} commands?}
+
+The original \LaTeX{} provided the \csx{include} command to address the
+problem of long documents: with the relatively slow computers of the
+time, the companion \csx{includeonly} facility was a boon. With the
+vast increase in computer speed, \csx{includeonly} is less valuable
+(though it still has its place in some very large projects).
+Nevertheless, the facility is retained in current \LaTeX{}, and causes
+some confusion to those who misunderstand it.
+
+In order for \csx{includeonly} to work, \csx{include} makes a separate
+\extension{aux} file for each included file, and makes a `checkpoint' of
+important parameters (such as page, figure, table and footnote
+numbers); as a direct result, it \emph{must} clear the current page
+both before and after the \csx{include} command. What's more, this
+mechanism doesn't work if a \csx{include} command appears in a file
+that was \csx{include}d itself: \LaTeX{} diagnoses this as an error.
+
+So, we can now answer the two commonest questions about \csx{include}:
+\begin{itemize}
+\item Why does \LaTeX{} throw a page before and after \csx{include}
+ commands?
+
+ Answer: because it has to. If you don't like it, replace the
+ \csx{include} command with \csx{input}~--- you won't be able to use
+ \csx{includeonly} any more, but you probably don't need it anyway, so
+ don't worry.
+\begin{htmlversion}
+
+\end{htmlversion}
+\item Why can't I nest \csx{include}d files?~--- I always used to be
+ able to under \LaTeXo{}.
+
+ Answer: in fact, you couldn't, even under \LaTeXo{}, but the failure
+ wasn't diagnosed. However, since you were happy with the behaviour
+ under \LaTeXo{}, replace the \csx{include} commands with \csx{input}
+ commands (with \csx{clearpage} as appropriate).
+\end{itemize}
+
+
+\Question[Q-paraparam]{Why does it ignore paragraph parameters?}
+
+When \TeX{} is laying out text, it doesn't work from word to word, or
+from line to line; the smallest complete unit it formats is the
+paragraph. The paragraph is laid down in a buffer, as it appears, and
+isn't touched further until the end-paragraph marker is processed.
+It's at this point that the paragraph parameters have effect; and it's
+because of this sequence that one often makes mistakes that lead to
+the paragraph parameters not doing what one would have hoped (or
+expected).
+
+Consider the following sequence of \LaTeX{}:
+\begin{quote}
+\begin{verbatim}
+{\raggedright % declaration for ragged text
+Here's text to be ranged left in our output,
+but it's the only such paragraph, so we now
+end the group.}
+
+Here's more that needn't be ragged...
+\end{verbatim}
+\end{quote}
+\TeX{} will open a group, and impose the ragged-setting parameters within
+that group; it will then save a couple of sentences of text and
+close the group (thus restoring the previous value of the
+parameters that \csx{raggedright} set). Then \TeX{} encounters a blank
+line, which it knows to treat as a \csx{par} token, so it typesets the
+two sentences; but because the enclosing group has now been closed,
+the parameter settings have been lost, and the paragraph will be
+typeset normally.
+
+The solution is simple: close the paragraph inside the group, so that
+the setting parameters remain in place. An appropriate way of doing
+that is to replace the last three lines above with:
+\begin{quote}
+\begin{verbatim}
+end the group.\par}
+Here's more that needn't be ragged...
+\end{verbatim}
+\end{quote}
+In this way, the paragraph is completed while \csx{raggedright}'s
+parameters are still in force within the enclosing group.
+
+Another alternative is to define an environment that does the
+appropriate job for you. For the above example, \LaTeX{} already
+defines an appropriate one:
+\begin{quote}
+\begin{verbatim}
+\begin{flushleft}
+Here's text to be ranged left...
+\end{flushleft}
+\end{verbatim}
+\end{quote}
+
+In fact, there are a number of parameters for which \TeX{} only
+maintains one value per paragraph. A tiresome one is the set of upper
+case/lower case translations, which (oddly enough) constrains
+hyphenation of mutilingual texts. Another that regularly creates
+confusion is \Qref*{\csx{baselineskip}}{Q-baselinepar}.
+
+\Question[Q-casechange]{Case-changing oddities}
+
+\TeX{} provides two primitive commands \csx{uppercase} and
+\csx{lowercase} to change the case of text; they're not much used, but
+are capable creating confusion.
+
+The two commands do not expand the text that is their parameter~---
+the result of \cmdinvoke{uppercase}{abc} is `\texttt{ABC}', but
+\cmdinvoke{uppercase}{\csx{abc}} is always `\csx{abc}', whatever the
+meaning of \csx{abc}. The commands are simply interpreting a table of
+equivalences between upper- and lowercase characters.
+They have (for example) no mathematical sense, and
+\begin{quote}
+\begin{verbatim}
+\uppercase{About $y=f(x)$}
+\end{verbatim}
+\end{quote}
+will produce
+\begin{quote}
+\begin{verbatim}
+ABOUT $Y=F(X)$
+\end{verbatim}
+\end{quote}
+which is probably not what is wanted.
+
+In addition, \csx{uppercase} and \csx{lowercase} do not deal very well
+with non-American characters, for example
+\cmdinvoke{uppercase}{\csx{ae}} is the same as \csx{ae}.
+
+\LaTeX{} provides commands \csx{MakeUppercase} and \csx{MakeLowercase}
+which fixes the latter problem. These commands are used in the
+standard classes to produce upper case running heads for chapters
+and sections.
+
+Unfortunately \csx{MakeUppercase} and \csx{MakeLowercase} do not solve
+the other problems with \csx{uppercase}, so for example a section
+title containing \cmdinvoke{begin}{tabular} \dots{}
+\cmdinvoke{end}{tabular} will produce a running head containing
+\cmdinvoke{begin}{TABULAR}. The simplest solution to this problem is
+using a user-defined command, for example:
+\begin{quote}
+\begin{verbatim}
+\newcommand{\mytable}{\begin{tabular}...
+ \end{tabular}}
+\section{A section title \protect\mytable{}
+ with a table}
+\end{verbatim}
+\end{quote}
+Note that \csx{mytable} has to be protected, otherwise it will be
+expanded and made upper case; you can achieve the same result by
+declaring it with \csx{DeclareRobustCommand}, in which case the
+\csx{protect} won't be necessary.
+
+David Carlisle's \Package{textcase} package
+addresses many of these problems in a transparent way. It defines
+commands \csx{MakeTextUppercase} and \csx{MakeTextLowercase} which do
+upper- or lowercase, with the fancier features of the \LaTeX{}
+standard \csx{Make*}-commands but without the problems
+mentioned above. Load the package with
+\cmdinvoke{usepackage}[overload]{textcase}, and it will redefine the \LaTeX{}
+commands (\emph{not} the \TeX{} primitive commands \csx{uppercase} and
+\csx{lowercase}), so that section headings and the like don't produce
+broken page headings.
+\begin{ctanrefs}
+\item[textcase.sty]\CTANref{textcase}
+\end{ctanrefs}
+
+\Question[Q-splitfoot]{Why does \LaTeX{} split footnotes across pages?}
+
+\LaTeX{} splits footnotes when it can think of nothing better to do.
+Typically, when this happens, the footnote mark is at the bottom of
+the page, and the complete footnote would overfill the page. \LaTeX{}
+could try to salvage this problem by making the page short of both the
+footnote and the line with the footnote mark, but its priorities told
+it that splitting the footnote would be preferable.
+
+As always, the best solution is to change your text so that the
+problem doesn't occur in the first place. Consider whether the text
+that bears the footnote could move earlier in the current page, or on
+to the next page.
+
+If this isn't possible, you might want to change \LaTeX{}'s perception
+of its priorities: they're controlled by
+\csx{interfootnotelinepenalty}~--- the larger it is, the less willing
+\LaTeX{} is to split footnotes.
+
+Setting
+\begin{quote}
+\begin{verbatim}
+\interfootnotelinepenalty=10000
+\end{verbatim}
+\end{quote}
+inhibits split footnotes altogether, which will cause `\texttt{Underfull}
+\csx{vbox}' messages unless you also specify \csx{raggedbottom}. The
+default value of the penalty is \texttt{100}, which is rather mild.
+
+An alternative technique is to juggle with the actual size of the
+pages. \csx{enlargethispage} changes the size of the current page by
+its argument (for example, you might say
+\cmdinvoke{enlargethispage}{\csx{baselineskip}} to add a single line
+to the page, but you can use any ordinary \TeX{} length such as
+\texttt{15mm} or \texttt{-20pt} as argument). Reducing the size of
+the current page could force the offending text to the next page;
+increasing the size of the page may allow the footnote to be included
+in its entirety. It may be necessary to change the size of more than
+one page.
+
+The \Package{fnbreak} package detects (and generates warnings about)
+split footnotes.
+\begin{ctanrefs}
+\item[fnbreak.sty]\CTANref{fnbreak}
+\end{ctanrefs}
+
+\Question[Q-marginparside]{Getting \csx{marginpar} on the right side}
+
+In an ideal world, marginal notes would be in ``analogous'' places on
+every page: notes on an even-side page would be in the left margin,
+while those on an odd-side page would be in the right margin. A
+moment's thought shows that a marginal note on the left needs to be
+typeset differently from a marginal note on the right. The \LaTeX{}
+\csx{marginpar} command therefore takes two arguments in a
+\texttt{twoside} documents: % beware line break
+\cmdinvoke*{marginpar}[left text]{right text}. \LaTeX{} uses the
+``obvious'' test to
+get the \csx{marginpar}s in the correct margin, but a booby-trap arises
+because \TeX{} runs its page maker asynchronously. If a
+\csx{marginpar} is processed while page \ensuremath{n} is being built, but
+doesn't get used until page \ensuremath{n}+1, then the \csx{marginpar} will turn
+up on the wrong side of the page. This is an instance of a general
+problem: see
+% beware line break
+``\Qref*{finding if you're on an odd or an even page}{Q-oddpage}''.
+
+The solution to the problem is for \LaTeX{} to `remember' which side
+of the page each \csx{marginpar} \emph{should} be on. The
+\Package{mparhack} package does this, using label-like marks stored in
+the \extension{aux} file; the \Class{memoir} class does likewise.
+\begin{ctanrefs}
+\item[memoir.cls]\CTANref{memoir}
+\item[mparhack.sty]\CTANref{mparhack}
+\end{ctanrefs}
+
+\Question[Q-misschar]{Where have my characters gone?}
+
+You've typed some apparently reasonable text and processed it, but the
+result contains no sign of some of the characters you typed. A likely
+reason is that the font you selected just doesn't have a
+representation for the character in question.
+
+For example, if I type ``that will be \pounds{}44.00'' into an ordinary
+\AllTeX{} document, or if I select the font |rsfs10| (which contains
+uppercase letters only) and type pretty much anything, the \pounds{}
+sign, or any lowercase letters or digits will not appear in the
+output. There's no actual error message, either: you have to read the
+log file, where you'll find cryptic little messages like
+\begin{quote}
+\begin{wideversion}
+\begin{verbatim}
+Missing character: There is no ^^a3 in font cmr10!
+Missing character: There is no 3 in font rsfs10!
+\end{verbatim}
+\end{wideversion}
+\begin{narrowversion}
+\begin{verbatim}
+Missing character:
+ There is no ^^a3 in font cmr10!
+Missing character:
+ There is no 3 in font rsfs10!
+\end{verbatim}
+\end{narrowversion}
+\end{quote}
+(the former demonstrating my \TeX{}'s unwillingness to deal in characters
+which have the eighth bit set, while the \texttt{rsfs10} example shows that
+\TeX{} will log the actual character in error, if it thinks it's
+possible).
+
+Somewhat more understandable are the diagnostics you may get from
+\Package{dvips} when using the \acro{OT}1 and \acro{T}1 versions of
+fonts that were supplied in Adobe standard encoding:
+\begin{quote}
+\begin{verbatim}
+dvips: Warning: missing glyph `Delta'
+\end{verbatim}
+\end{quote}
+The process that generates the metrics for using the fonts generates
+an instruction to \Package{dvips} to produce these diagnostics, so
+that their non-appearance in the printed output is less surprising
+than it might be. Quite a few glyphs provided in Knuth's text
+encodings and in the Cork encoding are not available in the Adobe
+fonts. In these cases, there \emph{is} a typeset sign of the
+character: \ProgName{dvips} produces a black rectangle of whatever
+size the concocted font file has specified.
+
+\Question[Q-rerun]{``Rerun'' messages won't go away}
+
+The \LaTeX{} message ``Rerun to get crossreferences right'' is
+supposed to warn the user that the job needs to be processed again,
+since labels seem to have changed since the previous run. (\LaTeX{}
+compares the labels it has created this time round with what it found
+from the previous run when it started; it does this comparison at
+\cmdinvoke{end}{document}.)
+
+Sometimes, the message won't go away: however often you reprocess your
+document, \LaTeX{} still tells you that ``Label(s) may have
+changed''. This can sometimes be caused by a broken package: both
+\Package{footmisc} (with the |perpage| option) and \Package{hyperref}
+have been known to give trouble, in the past: if you are using either,
+check you have the latest version, and upgrade if possible.
+
+However, there \emph{is} a rare occasion when this error can happen
+as a result of pathological structure of the document itself. Suppose
+you have pages numbered in roman, and you add a reference to a label
+on page ``ix'' (9). The presence of the reference pushes the thing
+referred to onto page ``x'' (10), but since that's a shorter reference
+the label moves back to page ``ix'' at the next run. Such a sequence
+can obviously not terminate.
+
+The only solution to this problem is to make a small change to your
+document (something as small as adding or deleting a comma will often
+be enough).
+\begin{ctanrefs}
+\item[footmisc.sty]\CTANref{footmisc}
+\item[hyperref.sty]\CTANref{hyperref}
+\end{ctanrefs}
+
+\Question[Q-xspace]{Commands gobble following space}
+
+People are forever surprised that simple commands gobble the space
+after them: this is just the way it is. The effect arises from the
+way \TeX{} works, and Lamport describes a solution (place a pair of braces
+after a command's invocation) in the description of \LaTeX{} syntax.
+Thus the requirement is in effect part of the definition of \LaTeX{}.
+
+This \acro{FAQ},
+for example, is written with definitions that \emph{require} one to
+type \cmdinvoke{fred}{\relax} % the \relax prevents {} being gobbled
+ % in html production (sigh)
+for almost all macro invocations, regardless
+of whether the following space is required: however, this \acro{FAQ}
+is written by highly dedicated (and, some would say, eccentric)
+people. Many users find all those braces become very tedious very
+quickly, and would really rather not type them all.
+
+An alternative structure, that doesn't violate the design of \LaTeX{},
+is to say \csx{fred}\csx{ }~--- the \csx{ } command is ``self
+terminating'' (like |\|{}|\|) and you don't need braces after
+\emph{it}. Thus one can reduce to one the extra characters one needs
+to type.
+
+If even that one character is too many, the package \Package{xspace}
+defines a command \csx{xspace} that guesses whether there should have
+been a space after it, and if so introduces that space. So
+% beware line wrap
+``\texttt{fred\csx{xspace} jim}'' produces ``fred jim'', while
+``\texttt{fred\csx{xspace}.\@ jim}'' produces ``fred. jim''. Which
+usage would of course be completely pointless; but you can incorporate
+\csx{xspace} in your own macros:
+\begin{quote}
+\begin{wideversion}
+\begin{verbatim}
+\usepackage{xspace}
+...
+\newcommand{\restenergy}{\ensuremath{mc^2}\xspace}
+...
+and we find \restenergy available to us...
+\end{verbatim}
+\end{wideversion}
+\begin{narrowversion}
+\begin{verbatim}
+\usepackage{xspace}
+...
+\newcommand{\restenergy}%
+ {\ensuremath{mc^2}\xspace}
+...
+and we find \restenergy available to us...
+\end{verbatim}
+\end{narrowversion}
+\end{quote}
+The \csx{xspace} command must be the last thing in your macro
+definition (as in the example); it's not completely foolproof, but it
+copes with most obvious situations in running text.
+
+The \Package{xspace} package doesn't save you anything if you only use
+a modified macro once or twice within your document. In any case, be
+careful with usage of \csx{xspace}~--- it changes your input syntax,
+which can be confusing, notably to a collaborating author
+(particularly if you create some commands which use it and some which
+don't). Of course, no command built into \LaTeX{} or into any
+``standard'' class or package will use \csx{xspace}.
+\begin{ctanrefs}
+\item[xspace.sty]Distributed as part of \CTANref{2etools}
+\end{ctanrefs}
+
+\Question[Q-overfull]{\AllTeX{} makes overfull lines}
+
+When \TeX{} is building a paragraph, it can make several attempts to
+get the line-breaking right; on each attempt it runs the same
+algorithm, but gives it different parameters. You can affect the way
+\TeX{}'s line breaking works by adjusting the parameters: this answer
+deals with the ``tolerance'' and stretchability parameters. The other
+vital `parameter' is the set of hyphenations to be applied: see
+``\Qref*[question]{my words aren't being hyphenated}{Q-nohyph}''
+(and the questions it references) for advice.
+
+If you're getting an undesired ``overfull box'', what has happened is
+that \TeX{} has given up: the parameters you gave it don't allow it to
+produce a result that \emph{doesn't} overfill. In this circumstance,
+Knuth decided the best thing to do was to produce a warning, and to
+allow the user to solve the problem. (The alternative, silently to go
+beyond the envelope of ``good taste'' defined for this run of \TeX{},
+would be distasteful to any discerning typographer.) The user can
+almost always address the problem by rewriting the text that's
+provoking the problem~--- but that's not always possible, and in some
+cases it's impossible to solve the problem without adjusting the
+parameters. This answer discusses the approaches one might take to
+resolution of the problem, on the assumption that you've got the
+hyphenation correct.
+
+The simplest case is where a `small' word fails to break at the end of
+a line; pushing the entire word to a new line isn't going to make much
+difference, but it might make things just bad enough that \TeX{} won't
+do it by default. In such a case on can \emph{try} the \LaTeX{}
+\csx{linebreak} command: it may solve the problem, and if it does, it
+will save an awful lot of fiddling. Otherwise, one needs to adjust
+parameters: to do that we need to recap the details of \TeX{}'s line
+breaking mechanisms.
+
+\TeX{}'s first attempt at breaking lines is performed without even
+trying hyphenation: \TeX{} sets its ``tolerance'' of line breaking
+oddities to the internal value \csx{pretolerance}, and sees what
+happens. If it can't get an acceptable break, \TeX{} adds the
+hyphenation points allowed by the current patterns, and tries again
+using the internal \csx{tolerance} value. If this pass also fails, and
+the internal \csx{emergencystretch} value is positive, \TeX{} will try
+a pass that allows \csx{emergencystretch} worth of extra stretchability
+to the spaces in each line.
+
+In principle, therefore, there are three parameters (other than
+hyphenation) that you can change: \csx{pretolerance}, \csx{tolerance}
+and \csx{emergencystretch}. Both the \texttt{tolerance} values are
+simple numbers, and should be set by \TeX{} primitive count
+assignment~--- for example
+\begin{quote}
+\begin{verbatim}
+\pretolerance=150
+\end{verbatim}
+\end{quote}
+For both, an ``infinite'' tolerance is represented by the value
+|10|\nothtml{\,}|000|, but infinite tolerance is rarely
+appropriate, since it can lead to very bad line breaks indeed.
+
+\csx{emergencystretch} is a \TeX{}-internal `dimen' register, and can
+be set as normal for dimens in \plaintex{}; in \LaTeX{}, use
+\csx{setlength}~--- for example:
+\begin{quote}
+\begin{verbatim}
+\setlength{\emergencystretch}{3em}
+\end{verbatim}
+\end{quote}
+
+The choice of method has time implications~--- each of the
+passes takes time, so adding a pass (by changing
+\csx{emergencystretch}) is less desirable than suppressing one (by
+changing \csx{pretolerance}). However, it's unusual nowadays to find a
+computer that's slow enough that the extra passes are really
+troublesome.
+
+In practice, \csx{pretolerance} is rarely used other than to manipulate
+the use of hyphenation; \plaintex{} and \LaTeX{} both set its value
+to |100|. To suppress the first scan of paragraphs, set
+\csx{pretolerance} to |-1|.
+
+\csx{tolerance} is often a good method for adjusting spacing;
+\plaintex{} and \LaTeX{} both set its value to |200|. \LaTeX{}'s
+\csx{sloppy} command sets it to |9999|, as does the
+\environment{sloppypar} environment. This value is the largest
+available, this side of infinity, and can allow pretty poor-looking
+breaks (this author rarely uses \csx{sloppy} ``bare'', though he does
+occasionally use \environment{sloppypar}~--- that way, the change of
+\csx{tolerance} is confined to the environment). More satisfactory is
+to make small changes to \csx{tolerance}, incrementally, and then to look to
+see how the change affects the result; very small increases can often
+do what's necessary. Remember that \csx{tolerance} is a paragraph
+parameter, so you need to ensure it's actually applied~--- see
+``\Qref*[question]{ignoring paragraph parameters}{Q-paraparam}''.
+\LaTeX{} users could use an environment like:
+\begin{quote}
+\begin{verbatim}
+\newenvironment{tolerant}[1]{%
+ \par\tolerance=#1\relax
+}{%
+ \par
+}
+\end{verbatim}
+\end{quote}
+enclosing entire paragraphs (or set of paragraphs) in it.
+
+The value of \csx{emergencystretch} is added to the assumed
+stretchability of each line of a paragraph, in a further run of the
+paragraph formatter in case that the paragraph can't be made to look
+right any other way. (The extra scan happens if
+\csx{emergencystretch\textgreater0pt}~--- if it's zero or negative, no gain
+could be had from rerunning the paragraph setter.) The example above
+set it to \texttt{3em}; the Computer Modern fonts ordinarily fit three
+space skips to the \texttt{em}, so the change would allow anything up
+to the equivalent of nine extra spaces in each line. In a line with
+lots of spaces, this could be reasonable, but with (say) only three
+spaces on the line, each could stretch to four times its natural
+width. It is therefore clear that \csx{emergencystretch} needs to be
+treated with a degree of caution.
+
+More subtle (but more tricky to manage) are the microtypographic
+extensions provided by \PDFTeX{}. Since \PDFTeX{} is the default
+`engine' for \LaTeX{} and \CONTeXT{} work in all distributions,
+nowadays, the extensions are available to all. There are two
+extensions, margin kerning and font expansion; margin kerning only
+affects the visual effect of the typeset page, and has little effect
+on the ability of the paragraph setter to ``get things right''.
+Font expansion works like a subtler version of the trick that
+\csx{emergencystretch} plays: \PDFTeX{} `knows' that your current font
+may be stretched (or shrunk) to a certain extent, and will do that
+``on the fly'' to optimise the setting of a paragraph. This is a
+powerful tool in the armoury of the typesetter.
+
+As mentioned above, the microtypographic extensions are tricky beasts
+to control; however, the \Package{microtype} package relieves the user
+of the tedious work of specifying how to perform margin adjustments
+and how much to scale each font~\dots{}\@ for the fonts the package
+knows about; it's a good tool, and users who can take on the
+specification of adjustments for yet more fonts are always welcome.
+\begin{ctanrefs}
+\item[microtype.sty]\CTANref{microtype}
+\end{ctanrefs}
+
+\Question[Q-exscale]{Maths symbols don't scale up}
+
+By default, the ``large'' maths symbols stay at the same size
+regardless of the font size of the text of the document. There's good
+reason for this: the \FontName{cmex} fonts aren't really designed to
+scale, so that \TeX{}'s maths placement algorithms don't perform as
+well as they might when the fonts are scaled.
+
+However, this behaviour confounds user expectations, and can lead to
+slightly odd-looking documents. If you want the fonts to scale,
+despite the warning above, use the \Package{exscale} package~--- just
+loading it is enough.
+%%
+%% (Note: if you are using bitmap versions of the \FontName{cmex} fonts,
+%% you will find extra bitmaps are generated. The extended sizes are not
+%% ordinarily generated for any other purpose.)
+\begin{ctanrefs}
+\item[exscale.sty]Part of the \LaTeX{} distribution.
+\end{ctanrefs}
+
+\Question[Q-linespread]{Why doesn't \csx{linespread} work?}
+
+The command \cmdinvoke*{linespread}{factor} is supposed to multiply
+the current \csx{baselineskip} by \meta{factor}; but, to all
+appearances, it doesn't.
+
+In fact, the command is equivalent to
+\cmdinvoke{renewcommand}{\csx{baselinestretch}}{factor}: written that
+way, it somehow feels less surprising that the effect isn't immediate.
+The \csx{baselinestretch} factor is only used when a font is selected;
+a mere change of \csx{baselinestretch} doesn't change the font, any
+more than does the command
+\cmdinvoke*{fontsize}{size}{baselineskip}~--- you have to follow
+either command with \csx{selectfont}. So:
+\begin{quote}
+\begin{verbatim}
+\fontsize{10}{12}%
+\selectfont
+\end{verbatim}
+\end{quote}
+or:
+\begin{quote}
+\begin{verbatim}
+\linespread{1.2}%
+\selectfont
+\end{verbatim}
+\end{quote}
+Of course, a package such as \Package{setspace}, whose job is to
+manage the baseline, will deal with all this stuff~--- see
+``\Qref*[question]{managing double-spaced documents}{Q-linespace}''. If
+you want to avoid \Package{setspace}, beware the behaviour of
+linespread changes within a paragraph: read % ! line break
+``\Qref*[question]{\csx{baselineskip} is a paragraph parameter}{Q-baselinepar}''.
+\begin{ctanrefs}
+\item[setspace.sty]\CTANref{setspace}
+\end{ctanrefs}
+
+\Question[Q-baselinepar]{Only one \csx{baselineskip} per paragraph}
+
+The \csx{baselineskip} is not (as one might hope) a property of a
+line, but of a paragraph. As a result, in a \texttt{10pt} (nominal)
+document (with a default \csx{baselineskip} of \texttt{12pt}), a
+single character with a larger size, as:
+\begin{quote}
+\begin{verbatim}
+{\Huge A}
+\end{verbatim}
+\end{quote}
+will be squashed into the paragraph: \TeX{} will make sure it doesn't
+scrape up against the line above, but won't give it ``room to
+breathe'', as it does the text at standard size; that is, its size
+(\texttt{24.88pt}) is taken account of, but its \csx{baselineskip}
+(\texttt{30pt}) isn't. Similarly
+\begin{quote}
+\begin{verbatim}
+Paragraph text ...
+{\footnotesize Extended interjection ...
+ ... into the paragraph.}
+ ... paragraph continues ...
+\end{verbatim}
+\end{quote}
+will look silly, since the \texttt{8pt} interjection will end up set
+on the \texttt{12pt} \csx{baselineskip} of the paragraph, rather than
+its preferred \texttt{8.5pt}. Finally, something like
+\begin{quote}
+\begin{verbatim}
+Paragraph text ...
+ ... paragraph body ends.
+{\footnotesize Short comment on paragraph.}
+
+Next paragraph starts...
+\end{verbatim}
+\end{quote}
+will set the body of the first paragraph on the constricted
+\csx{baselineskip} of the \csx{footnotesize} comment.
+
+So, how to deal with these problems? The oversized (short) section is
+typically corrected by a \emph{strut}: this word comes from movable
+metal typography, and refers to a spacer that held the boxes (that
+contained the metal character shapes) apart. Every time you change
+font size, \LaTeX{} redefines the command \csx{strut} to provide the
+equivalent of a metal-type strut for the size chosen. So for the
+example above, we would type
+\begin{quote}
+\begin{verbatim}
+Paragraph text ...
+ {\Huge A\strut}
+ ... paragraph continues ...
+\end{verbatim}
+\end{quote}
+However, more extended insertions (whether of larger or smaller text)
+are always going to cause problems; while you can strut larger text,
+ensuring that you strut every line will be tiresome, and there's no
+such thing as a ``negative strut'' that pulls the lines together for
+smaller text.
+
+The only satisfactory way to deal with an extended insertion at a
+different size is to set it off as a separate paragraph. A
+satisfactory route to achieving this is the \environment{quote}
+environment, which sets its text modestly inset from the enclosing
+paragraph:
+\begin{quote}
+\begin{verbatim}
+Paragraph text ...
+\begin{quote}
+ \footnotesize This is an inset account
+ of something relevant to the enclosing
+ paragraph...
+\end{quote}
+... paragraph continues ...
+\end{verbatim}
+\end{quote}
+Such quote-bracketing also deals with the problem of a trailing
+comment on the paragraph.
+
+\Question[Q-tocloftwrong]{Numbers too large in table of contents, etc.}
+
+\LaTeX{} constructs the table of contents, list of figures, tables,
+and similar tables, on the basis of a layout specified in the class.
+As a result, they do \emph{not} react to the sizes of things in them,
+as they would if a \environment{tabular} environment (or something
+similar) was used.
+
+This arrangement can provoke problems, most commonly with deep section
+nesting or very large page numbers: the numbers in question just don't
+fit in the space allowed for them in the class.
+
+A separate answer discusses % ! line break
+\nothtml{re-designing the tables ---} % ! line break
+\Qref{re-designing the tables}{Q-tocloft}\nothtml{ ---}
+and those techniques can be employed to make the numbers fit.
+
+\Question[Q-gutter]{Why is the inside margin so narrow?}
+
+If you give the standard classes the \pkgoption{twoside} option, the
+class sets the margins narrow on the left of odd-numbered pages, and
+on the right of even-numbered pages. This is often thought to look
+odd, but it is quite right.
+
+The idea is that the typographic urge for symmetry should also apply
+to margins: if you lay an even numbered page to the left of an
+odd-numbered one, you will see that you've three equal chunks of
+un-printed paper: the left margin of the even page, the right margin
+of the odd page, and the two abutting margins together.
+
+This is all very fine in the abstract, but in practical book(let)
+production it only works ``sometimes''.
+
+If your booklet is produced on double-width paper and stapled, the
+effect will be good; if your book(let) is produced using a so-called
+``perfect'' binding, the effect will again be good.
+
+However, almost any ``quality'' book-binder will need some of your
+paper to grab hold of, and a book bound in such a way won't exhibit
+the treasured symmetry unless you've done something about the margin
+settings.
+
+The packages recommended in % ! line break
+``\Qref*{setting up margins}{Q-marginpkgs}'' mostly have provision for
+a ``binding offset'' or a ``binding correction''~--- search for
+``binding'' in the manuals (\Package{vmargin} doesn't help, here).
+
+If you're doing the job by hand (see % ! line break
+\Qref[question]{manual margin setup}{Q-marginmanual}), the trick is to
+calculate your page and margin dimensions as normal, and then:
+\begin{itemize}
+\item subtract the binding offset from \csx{evensidemargin}, and
+\item add the binding offset to \csx{oddsidemargin}.
+\end{itemize}
+which can be achieved by:
+\begin{quote}
+\begin{verbatim}
+\addtolength{\evensidemargin}{-offset}
+\addtolength{\oddsidemargin}{offset}
+\end{verbatim}
+\end{quote}
+(substituting something sensible like ``\texttt{5mm}'' for
+``\texttt{offset}'', above).
+
+The above may not be the best you can do: you may well choose to
+change the \csx{textwidth} in the presence of the binding offset; but
+the changes do work for constant \csx{textwidth}.
+
+\subsection{Why shouldn't I?}
+
+\Question[Q-t1enc]{Why use \Package{fontenc} rather than \Package{t1enc}?}
+
+In the very earliest days of \LaTeXe{}, the only way to use the
+\acro{T}1 encoding was \Package{t1enc}; with the summer 1994
+``production'' release, the \Package{fontenc} package appeared, and
+provided comprehensive support for use of the encoding.
+
+Nevertheless, the \Package{t1enc} package remains (as part of the
+\LaTeXo{} compatibility code), but it does very little: it merely
+selects font encoding \acro{T}1, and leaves to the user the business
+of generating the character codes required.
+
+Generating such character codes could be a simple matter, \emph{if}
+the \acro{T}1 encoding matched any widely-supported encoding standard,
+since in that case, one might expect one's keyboard to generate the
+character codes. However, the \acro{T}1 encoding is a mix of several
+standard encodings, and includes code points in areas of the table
+which standard encodings specifically exclude, so no \acro{T}1
+keyboards have been (or ever will be) manufactured.
+
+By contrast, the \Package{fontenc} package generates the \acro{T}1
+code points from ordinary \LaTeX{} commands (e.g., it generates the
+\texttt{\'e} character codepoint from the command |\'|{}|e|). So, unless you
+have program-generated \acro{T}1 input, use
+\cmdinvoke{usepackage}[T1]{fontenc} rather than
+\cmdinvoke{usepackage}{t1enc}.
+
+\Question[Q-why-inp-font]{Why bother with \Package{inputenc} and \Package{fontenc}?}
+
+The standard input encoding for Western Europe (pending the arrival of
+Unicode) is \acro{ISO}~8859--1 (commonly known by the standard's
+subtitle `Latin-1'). Latin-1 is remarkably close, in the codepoints
+it covers, to the \AllTeX{} \acro{T}1 encoding.
+
+In this circumstance, why should one bother with \Package{inputenc}
+and \Package{fontenc}? Since they're pretty exactly mirroring each
+other, one could do away with both, and use just \Package{t1enc},
+despite its \Qref*{shortcomings}{Q-t1enc}.
+
+One doesn't do this for a variety of small reasons:
+\begin{description}
+\item[Confusion] You've been happily working in this mode, and for
+ some reason find you're to switch to writing in German: the effect
+ of using ``\texttt{\ss}'' is somewhat startling, since \acro{T}1
+ and Latin-1 treat the codepoint differently.
+\item[Compatibility] You find yourself needing to work with a
+ colleague in Eastern Europe: their keyboard is likely to be set to
+ produce Latin-2, so that the simple mapping doesn't work.
+\item[Traditional \LaTeX{}] You lapse and write something like
+ |\'|{}|e| rather than typing \texttt{\'e}; only \Package{fontenc}
+ has the means to convert this \LaTeX{} sequence into the \acro{T}1
+ character, so an \csx{accent} primitive slips through into the
+ output, and hyphenation is in danger.
+\end{description}
+The \Package{inputenc}--\Package{fontenc} combination seems slow and
+cumbersome, but it's safe.
+
+\Question[Q-eqnarray]{Why not use \environment{eqnarray}?}
+
+The environment \environment{eqnarray} is attractive for the
+occasional user of mathematics in \LaTeX{} documents: it seems to
+allow aligned systems of equations. Indeed it \emph{does} supply such
+things, but it makes a serious mess of spacing. In the system:
+\begin{quote}
+\begin{verbatim}
+\begin{eqnarray}
+ a & = & b + c \\
+ x & = & y - z
+\end{eqnarray}
+\end{verbatim}
+\end{quote}
+the spacing around the ``='' signs is \emph{not} that defined in the
+metrics for the font from which the glyph comes~--- it's
+\csx{arraycolsep}, which may be set to some very odd value for reasons
+associated with real arrays elsewhere in the document.
+
+The user is far better served by the \AMSLaTeX{} bundle, which
+provides an \environment{align} environment, which is designed with
+the needs of mathematicians in mind (as opposed to the convenience of
+\LaTeX{} programmers). For this simple case (align is capable of far
+greater things), code as:
+\begin{quote}
+\begin{verbatim}
+\begin{align}
+ a & = b + c \\
+ x & = y - z
+\end{align}
+\end{verbatim}
+\end{quote}
+The matter is discussed in more detail in a % ! line break
+\href{http://tug.org/pracjourn/2006-4/madsen/madsen.pdf}{Prac\TeX{} journal paper}
+by Lars Madsen.
+\begin{ctanrefs}
+\item[AMSLaTeX]\CTANref{amslatex}
+\end{ctanrefs}
+
+\Question[Q-dolldoll]{Why use \csx{[}\,\dots{}\csx{]} in place of \texttt{\$\$}\,\dots{}\texttt{\$\$}?}
+
+\LaTeX{} defines inline- and display-maths commands, apparently
+s those that derive from the \TeX{} primitive maths
+sequences bracketing maths commands with single (or pairs of) dollar signs.
+
+As it turns out, \LaTeX{}'s inline maths grouping, % !line break
+\csx{(}\texttt{ ... }\csx{)}, has precisely the same effect as the
+\TeX{} primitive version \texttt{\$ ... \$}. (Except that
+the \LaTeX{} version checks to ensure you don't put \csx{(} and
+\csx{)} the wrong way round.)
+
+In this circumstance, one often finds \LaTeX{} users, who have some
+experience of using \plaintex{}, merely assuming that \LaTeX{}'s
+display maths grouping \csx{[}\texttt{ ... }\csx{]} may be replaced by
+the \TeX{} primitive display maths \texttt{\$\$ ... \$\$}.
+
+Unfortunately, they are wrong: if \LaTeX{} code is going to patch display
+maths, it can only do so by patching \csx{[} and \csx{]}. The most
+obvious way this turns up, is that the class option \pkgoption{fleqn}
+simply does not work for equations coded using % ! line break
+\texttt{\$\$ ... \$\$}, whether you're using the standard classes
+alone, or using package \Package{amsmath}. Also, the \csx{[} and
+\csx{]} construct has code for rationalising vertical spacing in some extreme
+cases; that code is not available in \texttt{\$\$ ... \$\$}, so if you
+use the non-standard version, you may occasionally observe
+inconsistent vertical spacing .
+
+There are more subtle effects (especially with package
+\Package{amsmath}), and the simple rule is ``use % ! line break
+\csx{[}\texttt{ ... }\csx{]} whenever displayed maths is needed in
+\LaTeX{}''.
+
+\Question[Q-2letterfontcmd]{What's wrong with \csx{bf}, \csx{it}, etc.?}
+
+The font-selection commands of \LaTeXo{} were \csx{rm}, \csx{sf},
+\csx{tt}, \csx{it}, \csx{sl}, \csx{em} and \csx{bf}; they were modal
+commands, so you used them as:
+\begin{quote}
+\begin{verbatim}
+{\bf Fred} was {\it here\/}}.
+\end{verbatim}
+\end{quote}
+with the font change enclosed in a group, so as to limit its effect;
+note the italic correction command \csx{/} that was necessary at the
+end of a section in italics.
+
+At the release of \LaTeXe{} in summer 1994, these simple commands were
+deprecated, but recognising that their use is deeply embedded in the
+brains of \LaTeX{} users, the commands themselves remain in \LaTeX{},
+\emph{with their \LaTeXo{} semantics}. Those semantics were part of
+the reason they were deprecated: each |\|\emph{\texttt{xx}} overrides
+any other font settings, keeping only the size. So, for example,
+\begin{quote}
+\begin{verbatim}
+{\bf\it Here we are again\/}
+\end{verbatim}
+\end{quote}
+ignores \csx{bf} and produces text in italic, medium weight (and the
+italic correction has a real effect), whereas
+\begin{quote}
+\begin{verbatim}
+{\it\bf happy as can be\/}
+\end{verbatim}
+\end{quote}
+ignore \csx{it} and produces upright text at bold weight (and the
+italic correction has nothing to do). The same holds if you mix
+\LaTeXe{} font selections with the old style commands:
+\begin{quote}
+\begin{verbatim}
+\textbf{\tt all good friends}
+\end{verbatim}
+\end{quote}
+ignores the \csx{textbf} that encloses the text, and produces
+typewriter text at medium weight.
+
+So why are these commands deprecated?~--- it is because of confusions
+such as that in the last example. The alternative (\LaTeXe{})
+commands are discussed in the rest of this answer.
+
+\LaTeXe{}'s font commands come in two forms: modal commands and
+text-block commands. The default set of modal commands offers weights
+\csx{mdseries} and \csx{bfseries}, shapes \csx{upshape},
+\csx{itshape}, \csx{scshape} and \csx{slshape}, and families
+\csx{rmfamily}, \csx{sffamily} and \csx{ttfamily}. A font selection
+requires a family, a shape and a series (as well as a size, of
+course). A few examples
+\begin{quote}
+\begin{narrowversion}
+\begin{verbatim}
+{\bfseries\ttfamily
+ and jolly good company!}
+\end{verbatim}
+\end{narrowversion}
+\begin{wideversion}
+\begin{verbatim}
+{\bfseries\ttfamily and jolly good company!}
+\end{verbatim}
+\end{wideversion}
+\end{quote}
+produces bold typewriter text (but note the lack of a % ! line break, big time
+\begin{narrowversion} % non hyper version
+ bold typewriter font~--- \Qref{}{Q-bold-extras}~---
+\end{narrowversion}
+\begin{wideversion}
+ \Qref{bold typewriter font}{Q-bold-extras}
+\end{wideversion}
+in the default Computer Modern fonts), or
+\begin{quote}
+\begin{narrowversion}
+\begin{verbatim}
+{\slshape\sffamily
+ Never mind the weather\/}
+\end{verbatim}
+\end{narrowversion}
+\begin{wideversion}
+\begin{verbatim}
+{\slshape\sffamily Never mind the weather\/}
+\end{verbatim}
+\end{wideversion}
+\end{quote}
+(note the italic correction needed on slanted fonts, too).
+
+\LaTeXe{}'s text block commands take the first two letters of the
+modal commands, and form a \csx{text}\emph{\texttt{xx}} command from
+them. Thus \csx{bfseries} becomes \cmdinvoke*{textbf}{text},
+\csx{itshape} becomes \cmdinvoke*{textit}{text}, and \csx{ttfamily}
+becomes \cmdinvoke*{texttt}{text}. Block commands may be nested, as:
+\begin{quote}
+\begin{verbatim}
+\textit{\textbf{Never mind the rain}}
+\end{verbatim}
+\end{quote}
+to produce bold italic text (note that the block commands supply
+italic corrections where necessary), and they be nested with the
+\LaTeXe{} modal commands, too:
+\begin{quote}
+\begin{narrowversion}
+\begin{verbatim}
+\texttt{\bfseries
+ So long as we're together}
+\end{verbatim}
+\end{narrowversion}
+\begin{wideversion}
+\begin{verbatim}
+\texttt{\bfseries So long as we're together}
+\end{verbatim}
+\end{wideversion}
+\end{quote}
+for bold typewriter, or
+\begin{quote}
+\begin{narrowversion}
+\begin{verbatim}
+{\slshape\textbf{%
+ Whoops! she goes again}\/}
+\end{verbatim}
+\end{narrowversion}
+\begin{wideversion}
+\begin{verbatim}
+{\slshape \textbf{Whoops! she goes again}\/}
+\end{verbatim}
+\end{wideversion}
+\end{quote}
+for a bold slanted instance of the current family (note the italic
+correction applied at the end of the modal command group, again).
+
+The new commands (as noted above) override commands of the same type.
+In almost all cases, this merely excludes ludicrous ideas such as
+``upright slanted'' fonts, or ``teletype roman'' fonts. There are a
+couple of immediate oddities, though. The first is the conflict
+between \csx{itshape} (or \csx{slshape}) and \csx{scshape}: while many
+claim that an italic small-caps font is typographically unsound, such
+fonts do exist. Daniel Taupin's \Package{smallcap} package enables
+use of the instances in the \Qref*{\acro{EC} fonts}{Q-ECfonts}, and
+similar techniques could be brought to bear on many other font sets.
+The second is the conflict between \csx{upshape} and \csx{itshape}:
+Knuth actually offers an upright-italic font which \LaTeX{} uses for
+the ``\pounds{}'' symbol in the default font set. The combination is
+sufficiently weird that, while there's a defined font shape, no
+default \LaTeX{} commands exist; to use the shape, the (eccentric) user
+needs \LaTeX{}'s simplest font selection commands:
+\begin{quote}
+\begin{narrowversion}
+\begin{verbatim}
+{\fontshape{ui}\selectfont
+ Tra la la, di dee}
+\end{verbatim}
+\end{narrowversion}
+\begin{wideversion}
+\begin{verbatim}
+{\fontshape{ui}\selectfont Tra la la, di dee}
+\end{verbatim}
+\end{wideversion}
+\end{quote}
+\begin{ctanrefs}
+\item[smallcap.sty]\CTANref{smallcap}
+\end{ctanrefs}
+
+\Question[Q-newfont*]{What's wrong with \csx{newfont}?}
+
+If all else fails, you \emph{can} specify a font using the \LaTeX{}
+\csx{newfont} command. The font so specified doesn't fit into the
+\LaTeX{} font selection mechanism, but the technique can be tempting
+under several circumstances. The command is merely the thinnest of
+wrappers around the \csx{font} primitive, and doesn't really fit with
+\LaTeX{} at all. A simple, but really rather funny, example of the
+problems it poses, may be seen in:
+\begin{quote}
+\begin{verbatim}
+\documentclass[10pt]{article}
+\begin{document}
+\newfont{\myfont}{cmr17 scaled 2000}
+\myfont
+\LaTeX
+\end{document}
+\end{verbatim}
+\end{quote}
+(the reader is encouraged to try this). The ``A'' of \csx{LaTeX} pretty
+much disappears: \LaTeX{} chooses the size on the ``A'' according to
+\emph{its} idea of the font size (10pt), but positions it according to
+the dimensions of ``\csx{myfont}'', which is more than three times
+that size.
+
+Another ``\csx{myfont}'' example arises from an entirely different
+source. The mini-document:
+\begin{quote}
+\begin{verbatim}
+\documentclass{article}
+\begin{document}
+\newfont{\myfont}{ecrm1000}
+{\myfont voil\`a}
+\end{document}
+\end{verbatim}
+\end{quote}
+gives you ``German low double quotes'' (under the ``a'') in place of
+the grave accent. This happens because \FontName{ecrm1000} is in a
+different \Qref*{font encoding}{Q-whatenc} than \LaTeX{} is
+expecting~--- if you use the \LaTeX{} \Package{fontenc} package to
+select the \acro{EC} fonts, all these tiresome encoding issues are
+solved for you, behind the scenes.
+
+There does however remain a circumstance when you will be tempted to
+use \csx{newfont}~--- viz., to get a font size that doesn't fall into
+the Knuth standard set of sizes: \LaTeX{} (by default) won't allow you
+to use such a size. Don't despair: see the answer % ! line break
+``\Qref*{arbitrary font sizes}{Q-fontsize}''.
+
+