summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-protect.html
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-protect.html')
-rw-r--r--Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-protect.html85
1 files changed, 0 insertions, 85 deletions
diff --git a/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-protect.html b/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-protect.html
deleted file mode 100644
index f3a712c36bc..00000000000
--- a/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-protect.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<head>
-<title>UK TeX FAQ -- question label protect</title>
-</head><body>
-<h3>What&#8217;s the reason for &#8216;protection&#8217;?</h3>
-<p/>Sometimes LaTeX saves data it will reread later. These data are
-often the argument of some command; they are the so-called moving
-arguments. (&#8216;Moving&#8217; because data are moved around.) Candidates
-are all arguments that may go into table of contents, list of figures,
-<em>etc</em>.; namely, data that are written to an auxiliary file and
-read in later. Other places are those data that might appear in head-
-or footlines. Section headings and figure captions are the most
-prominent examples; there&#8217;s a complete list in Lamport&#8217;s book
-(see <a href="FAQ-books.html">TeX-related books</a>).
-<p/>What&#8217;s going on really, behind the scenes? The commands in moving
-arguments are normally expanded to their internal structure during the
-process of saving. Sometimes this expansion results in invalid TeX
-code, which shows either during expansion or when the code is
-processed again. Protecting a command, using
-&#8220;<code>\</code><code>protect</code><code>\</code><code>cmd</code>&#8221; tells LaTeX to save <code>\</code><code>cmd</code> as
-<code>\</code><code>cmd</code>, without expanding it at all.
-<p/>So, what is a &#8216;fragile command&#8217;? &#8212; it&#8217;s a command that expands into
-illegal TeX code during the save process.
-<p/>What is a &#8216;robust command&#8217;? &#8212; it&#8217;s a command that expands into legal
-TeX code during the save process.
-<p/>Lamport&#8217;s book says in its description of every LaTeX command whether
-it is &#8216;robust&#8217; or &#8216;fragile&#8217;; it also says that every command with an
-optional argument is fragile. The list isn&#8217;t reliable, and neither
-is the assertion about optional arguments; the statements may have
-been true in early versions of LaTeX2e but are not any longer
-necessarily so:
-<ul>
-<li> Some fragile commands, such as <code>\</code><code>cite</code>, have been made robust
- in later revisions of LaTeX.
-<li> Some commands, such as <code>\</code><code>end</code> and <code>\</code><code>nocite</code>, are fragile
- even though they have no optional arguments.
-<li> The &#8220;user&#8217;s way&#8221; of creating a command with an optional
- argument (using <code>\</code><code>newcommand</code> or <code>\</code><code>newcommand*</code>) now always
- creates a robust command (though macros without optional arguments
- may still be fragile if they do things that are themselves fragile).
-<li> There is no reason that a package author should not also make
- robust commands with optional arguments as part of the package.
-<li> Some robust commands are redefined by certain packages to be
- fragile (the <code>\</code><code>cite</code> command commonly suffers this treatment).
-</ul>
-Further, simply &#8220;hiding&#8221; a fragile command in another command, has
-no effect on fragility. So, if <code>\</code><code>fred</code> is fragile, and you write:
-<blockquote>
-<pre>
-\newcommand{\jim}{\fred}
-</pre>
-</blockquote><p>
-then <code>\</code><code>jim</code> is fragile too. There is, however, the
-<code>\</code><code>newcommand</code>-replacement <code>\</code><code>DeclareRobustCommand</code>, which
-<em>always</em> creates a robust command (whether or not it has optional
-arguments). The syntax of <code>\</code><code>DeclareRobustCommand</code> is substantially
-identical to that of <code>\</code><code>newcommand</code>, and if you do the wrapping
-trick above as:
-<blockquote>
-<pre>
-\DeclareRobustCommand{\jim}{\fred}
-</pre>
-</blockquote><p>
-then <code>\</code><code>jim</code> is robust.
-<p/>Finally, we have the <i>makerobust</i> package, which defines
-<code>\</code><code>MakeRobustCommand</code> to convert a command to be robust. With the
-package, the &#8220;wrapping&#8221; above can simply be replaced by:
-<blockquote>
-<pre>
-\MakeRobustCommand\fred
-</pre>
-</blockquote><p>
-Whereafter, <code>\</code><code>fred</code> is robust. Using the package may be reasonable
-if you have lots of fragile commands that you need to use in moving
-arguments.
-<p/>In short, the situation is confusing. No-one believes this is
-satisfactory; the LaTeX team have removed the need for
-protection of some things, but the techniques available in
-current LaTeX mean that this is an expensive exercise. It remains
-a long-term aim of the team to remove all need for <code>\</code><code>protect</code>ion.
-<dl>
-<dt><tt><i>makerobust.sty</i></tt><dd>Distributed as part of Heiko Oberdiek&#8217;s bundle
- <a href="http://mirror.ctan.org/macros/latex/contrib/oberdiek.zip">macros/latex/contrib/oberdiek</a> (or <a href="http://mirror.ctan.org/macros/latex/contrib/oberdiek/">browse the directory</a>); <a href="http://mirror.ctan.org/help/Catalogue/entries/makerobust.html">catalogue entry</a>
-</dl>
-<p/><p>This question on the Web: <a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=protect">http://www.tex.ac.uk/cgi-bin/texfaq2html?label=protect</a>
-</body>