summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-activechars.html
diff options
context:
space:
mode:
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.html129
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
-&#8220;<code>~</code>&#8221; as a &#8220;non-breakable space&#8221;. A
-character is made definable, or &#8220;active&#8221;, 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&#8217;s use for
-other purposes, and there are few characters &#8220;free&#8221; to be subverted
-in this way.
-<p/>To define the character &#8220;<code>z</code>&#8221; 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 &#8220;<code>z</code>&#8221; 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 &#8220;<code>\def z</code>&#8221;, &#8220;<code>z</code>&#8221; is no longer interpreted as
-a letter; the space is therefore not necessary &#8212; &#8220;<code>\defz</code>&#8221; 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
-
-&#8220;<a href="FAQ-verbwithin.html"><code>\</code><code>verb</code> in command arguments</a>&#8221;).
-An exemplary case is the <i>doc</i> package, which processes .dtx
-files using the <i>shortvrb</i> package to define
-<code>|&#8230;|</code> as a shorthand for
-<code>\</code><code>verb</code><code>|&#8230;|</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&#8217;t work as expected
-(see &#8220;<a href="FAQ-actinarg.html">Active characters in command arguments</a>&#8221;).
-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 (&#8220;tricksy&#8221;) 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 (&#8220;<code>~</code>&#8221;), 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 &#8212; the definition of the command persists even if the
-character&#8217;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>