diff options
Diffstat (limited to 'Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-activechars.html')
-rw-r--r-- | Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-activechars.html | 129 |
1 files changed, 0 insertions, 129 deletions
diff --git a/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-activechars.html b/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-activechars.html deleted file mode 100644 index d63fa666459..00000000000 --- a/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-activechars.html +++ /dev/null @@ -1,129 +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): -<blockquote> -<pre> -\catcode`\_=\active -</pre> -</blockquote><p> -Any character could, in principle, be activated this way and defined -as a macro: -<blockquote> -<pre> -\def_{\_} -</pre> -</blockquote><p> -which could be characterised as an over-simple answer to -<a href="FAQ-underscore.html">using underscores</a>. However, 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>Part of the LaTeX distribution <a href="http://mirror.ctan.org/macros/latex/base.zip">macros/latex/base</a> (or <a href="http://mirror.ctan.org/macros/latex/base/">browse the directory</a>); <a href="http://mirror.ctan.org/help/Catalogue/entries/doc.html">catalogue entry</a> -<dt><tt><i>shortvrb.sty</i></tt><dd>Part of the LaTeX distribution <a href="http://mirror.ctan.org/macros/latex/base.zip">macros/latex/base</a> (or <a href="http://mirror.ctan.org/macros/latex/base/">browse the directory</a>); <a href="http://mirror.ctan.org/help/Catalogue/entries/shortvrb.html">catalogue entry</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> |