diff options
Diffstat (limited to 'Master/texmf-doc/doc/english/FAQ-en/html/FAQ-activechars.html')
-rw-r--r-- | Master/texmf-doc/doc/english/FAQ-en/html/FAQ-activechars.html | 120 |
1 files changed, 0 insertions, 120 deletions
diff --git a/Master/texmf-doc/doc/english/FAQ-en/html/FAQ-activechars.html b/Master/texmf-doc/doc/english/FAQ-en/html/FAQ-activechars.html deleted file mode 100644 index 7bb7a695e11..00000000000 --- a/Master/texmf-doc/doc/english/FAQ-en/html/FAQ-activechars.html +++ /dev/null @@ -1,120 +0,0 @@ -<head> -<title>UK TeX FAQ -- question label activechars</title> -</head><body> -<h3>Defining characters as macros</h3> -<p/>Single characters can act as macros (defined commands), and both -Plain TeX and LaTeX define the character -“<code>~</code>” as a “non-breakable space”. A -character is made definable, or “active”, by setting its -<em>category code</em> (catcode) to be <code>\</code><code>active</code> (13): -<code>\catcode‘_=\active</code>. -<p/>Any character could, in principle, be activated this way and defined -as a macro (<code>\</code><code>def</code><code>_{</code><code>\</code><code>_</code><code>}</code> — the simple answer to - -<a href="FAQ-underscore.html">using underscores</a>), but you must be -wary: whereas people expect an active tilde, other active characters -may be unexpected and interact badly with other macros. Furthermore, -by defining an active character, you preclude the character’s use for -other purposes, and there are few characters “free” to be subverted -in this way. -<p/>To define the character “<code>z</code>” as a command, one would say something -like: -<blockquote> -<pre> -\catcode`\z=\active -\def z{Yawn, I'm tired}% -</pre> -</blockquote><p> -and each subsequent “<code>z</code>” in the text would become a yawn. This would be -an astoundingly bad idea for most documents, but might have special -applications. (Note that, in “<code>\def z</code>”, “<code>z</code>” is no longer interpreted as -a letter; the space is therefore not necessary — “<code>\defz</code>” would do; we -choose to retain the space, for what little clarity we can manage.) -Some LaTeX packages facilitate such definitions. For example, the -<i>shortvrb</i> package with its <code>\</code><code>MakeShortVerb</code> command. -<p/>TeX uses category codes to interpret characters as they are read -from the input. - -<em>Changing a catcode value will not affect characters that have already been read</em>. -Therefore, it is best if characters have fixed category codes for the -duration of a document. If catcodes are changed for particular -purposes (the <code>\</code><code>verb</code> command does this), then the altered -characters will not be interpreted properly when they appear in the -argument to another command (as, for example, in - -“<a href="FAQ-verbwithin.html"><code>\</code><code>verb</code> in command arguments</a>”). -An exemplary case is the <i>doc</i> package, which processes .dtx -files using the <i>shortvrb</i> package to define -<code>|...|</code> as a shorthand for -<code>\</code><code>verb</code><code>|...|</code>. But <code>|</code> is -also used in the preambles of tabular environments, so that tables in -<code>.dtx</code> files can only have vertical line separation between -columns by employing special measures of some sort. -<p/>Another consequence is that catcode assignments made -in macros often don’t work as expected -(see “<a href="FAQ-actinarg.html">Active characters in command arguments</a>”). -For example, the definition -<blockquote> -<pre> -\def\mistake{% -\catcode`_=\active -\def_{\textunderscore\-}% -} -</pre> -</blockquote><p> -does not work because it attempts to define an ordinary <code>_</code> character: -When the macro is used, the category change does not apply to the -underscore character already in the macro definition. Instead, one may -use: -<blockquote> -<pre> -\begingroup -\catcode`_=\active -\gdef\works{% note the global \gdef - \catcode`_=\active - \def_{\textunderscore\-}% -} -\endgroup -</pre> -</blockquote><p> -The alternative (“tricksy”) way of creating such an isolated -definition depends on the curious properties of <code>\</code><code>lowercase</code>, which -changes characters without altering their catcodes. Since there is -always <em>one</em> active character (“<code>~</code>”), we -can fool <code>\</code><code>lowercase</code> into patching up a definition without ever -explicitly changing a catcode: -<blockquote> -<pre> -\begingroup - \lccode`\~=`\_ - \lowercase{\endgroup - \def~{\textunderscore\-}% - }% -</pre> -</blockquote><p> -The two definitions have the same overall effect (the character is -defined as a command, but the character does not remain active), -except that the first defines a <code>\</code><code>global</code> command. -<p/>For active characters to be used only in maths mode, it is much better -to leave the character having its ordinary catcode, but assign it a -special active <em>maths code</em>, as with -<blockquote> -<pre> -\begingroup - \lccode`~=`x - \lowercase{\endgroup - \def~{\times}% - }% -\mathcode`x="8000 -</pre> -</blockquote><p> -The special character does not need to be redefined whenever it is -made active — the definition of the command persists even if the -character’s catcode reverts to its original value; the definition -becomes accessible again if the character once again becomes active. -<dl> -<dt><tt><i>doc.sty</i></tt><dd>Distributed as part of the source of LaTeX, <a href="ftp://cam.ctan.org/tex-archive/macros/latex/base.zip">macros/latex/base</a> (<a href="ftp://cam.ctan.org/tex-archive/macros/latex/base.tar.gz">gzipped tar</a>, <a href="http://www.tex.ac.uk/tex-archive/macros/latex/base/">browse</a>) -<dt><tt><i>shortvrb.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/><p>This question on the Web: <a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=activechars">http://www.tex.ac.uk/cgi-bin/texfaq2html?label=activechars</a> -</body> |