diff options
Diffstat (limited to 'Master/texmf-doc/doc/english/FAQ-en/html/FAQ-xspace.html')
-rw-r--r-- | Master/texmf-doc/doc/english/FAQ-en/html/FAQ-xspace.html | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/Master/texmf-doc/doc/english/FAQ-en/html/FAQ-xspace.html b/Master/texmf-doc/doc/english/FAQ-en/html/FAQ-xspace.html new file mode 100644 index 00000000000..a7d0593c9d0 --- /dev/null +++ b/Master/texmf-doc/doc/english/FAQ-en/html/FAQ-xspace.html @@ -0,0 +1,56 @@ +<head> +<title>UK TeX FAQ -- question label xspace</title> +</head><body> +<h3>Commands gobble following space</h3> +<p>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. +<p>This FAQ, +for example, is written with definitions that <em>require</em> one to +type <code>\</code><code>fred{}</code> + +for almost all macro invocations, regardless +of whether the following space is required: however, this 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. +<p>An alternative structure, that doesn't violate the design of LaTeX, +is to say <code>\</code><code>fred</code><code>\</code><code> </code> - the <code>\</code><code> </code> command is "self +terminating" (like <code>\</code><code>\</code>) and you don't need braces after +<em>it</em>. Thus one can reduce to one the extra characters one needs +to type. +<p>If even that one character is too many, the package <i>xspace</i> +defines a command <code>\</code><code>xspace</code> that guesses whether there should have +been a space after it, and if so introduces that space. So + +"<code>fred<code>\</code><code>xspace</code> jim</code>" produces "fred jim", while +"<code>fred<code>\</code><code>xspace</code>. jim</code>" produces "fred. jim". Which +usage would of course be completely pointless; but you can incorporate +<code>\</code><code>xspace</code> in your own macros: +<blockquote> +<pre> +\usepackage{xspace} +... +\newcommand{\restenergy}{\ensuremath{mc^2}\xspace} +... +and we find \restenergy available to us... +</pre> + +</blockquote> +The <code>\</code><code>xspace</code> 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. +<p>The <i>xspace</i> 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 <code>\</code><code>xspace</code> - 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 <code>\</code><code>xspace</code>. +<dl> +<dt><tt><i>xspace.sty</i></tt><dd>Distributed as part of <a href="ftp://cam.ctan.org/tex-archive/macros/latex/required/tools.zip">macros/latex/required/tools</a> (<a href="ftp://cam.ctan.org/tex-archive/macros/latex/required/tools.tar.gz">gzipped tar</a>, <a href="http://www.tex.ac.uk/tex-archive/macros/latex/required/tools/">browse</a>) +</dl> +<p><p>This question on the Web: <a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=xspace">http://www.tex.ac.uk/cgi-bin/texfaq2html?label=xspace</a> +</body> |