summaryrefslogtreecommitdiff
path: root/Master/texmf-doc/doc/english/FAQ-en/html/FAQ-patch.html
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-doc/doc/english/FAQ-en/html/FAQ-patch.html')
-rw-r--r--Master/texmf-doc/doc/english/FAQ-en/html/FAQ-patch.html97
1 files changed, 0 insertions, 97 deletions
diff --git a/Master/texmf-doc/doc/english/FAQ-en/html/FAQ-patch.html b/Master/texmf-doc/doc/english/FAQ-en/html/FAQ-patch.html
deleted file mode 100644
index 41ea39fc4c6..00000000000
--- a/Master/texmf-doc/doc/english/FAQ-en/html/FAQ-patch.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<head>
-<title>UK TeX FAQ -- question label patch</title>
-</head><body>
-<h3>Patching existing commands</h3>
-<p/>In the general case (possibly sticking something in the middle of an
-existing command) this is difficult. However, the common requirement,
-to add some code at the beginning or the end of an existing command,
-is conceptually quite easy. Suppose we want to define a version of a
-command that does some small extension of its original definition: we
-would naturally write:
-<blockquote>
-<pre>
-\renewcommand{\splat}{\mumble\splat}
-</pre>
-</blockquote><p>
-However, this would not work: a call to <code>\</code><code>splat</code> would execute
-<code>\</code><code>mumble</code>, and the call the redefined <code>\</code><code>splat</code> again; this is an
-infinite recursive loop, that will quickly exhaust TeX&rsquo;s memory.
-<p/>Fortunately, the TeX primitive <code>\</code><code>let</code> command comes to our
-rescue; it allows us to take a &ldquo;snapshot&rdquo; of the current state of a
-command, which we can then use in the redefinition of the command.
-So:
-<blockquote>
-<pre>
-\let\OldSmooth\smooth
-\renewcommand{\smooth}{\mumble\OldSmooth}
-</pre>
-</blockquote><p>
-effects the required patch, safely. Adding things at the end of a
-command works similarly. If <code>\</code><code>smooth</code> takes arguments, one must
-pass them on:
-<blockquote>
-<pre>
-\renewcommand{\smooth}[2]{\mumble\OldSmooth{#1}{#2}}
-</pre>
-
-</blockquote><p>
-<p/>The general case may be achieved in two ways. First, one can use the
-LaTeX command <code>\</code><code>CheckCommand</code>; this compares an existing command
-with the definition you give it, and issues a warning if two don&rsquo;t
-match. Use is therefore:
-<blockquote>
- <code>\CheckCommand{\complex}{</code>&lt;<i>original definition</i>&gt;<code>}</code><br>
- <code>\renewcommand{\complex}{</code>&lt;<i>new definition</i>&gt;<code>}</code>
-</blockquote><p>
-This technique is obviously somewhat laborious, but if the original
-command comes from a source that&rsquo;s liable to change under the control
-of someone else, it does at least warn you that your patch is in
-danger of going wrong.
-<p/>Otherwise, LaTeX users may use one of the <i>patchcmd</i>,
-<i>ted</i> or <i>etoolbox</i> packages.
-<p/>The <i>patchcmd</i> package addresses a slightly simpler task, by
-restricting the set of commands that you may patch; you mayn&rsquo;t patch
-any command that has an optional argument, though it does deal with
-the case of commands defined with <code>\</code><code>DeclareRobustCommand</code>. The
-package defines a <code>\</code><code>patchcommand</code> command, that takes three
-arguments: the command to patch, stuff to stick at the front of its
-definition, and stuff to stick on the end of its definition. So,
-after
-<blockquote>
-<pre>
-\def\b{b}
-\patchcmd\b{a}{c}
-</pre>
-</blockquote><p>
-we will have a new version of <code>\</code><code>b</code> defined as &ldquo;<code>abc</code>&rdquo;.
-<p/>The <i>ted</i> package is a &lsquo;token list editor&rsquo;, and provides a
-command <code>\</code><code>Substitute*</code> which will patch the contents of a macro,
-putting the result in a token-list, or (optionally) using the result
-to (re)define a macro. The package may also be used as a powerful
-debugging tool.
-<p/>The <i>etoolbox</i> (which provides user access to e-TeX&rsquo;s
-programming facilities) provides a command <code>\</code><code>patchcmd</code> which will
-perform a &ldquo;string substitution&rdquo; in a macro&rsquo;s definition. The
-package also provides commands that prepend (<code>\</code><code>pretocmd</code>) or append
-(<code>\</code><code>apptocmd</code>) to the definition of a command.
-<p/>Finally, we&rsquo;ll briefly consider a package that is (just about)
-usable, but not really recommendable. <i>Patch</i> gives you an
-ingenious (and difficult to understand) mechanism, and comes as an
-old-style LaTeX documented macro file, which can no longer be
-processed (as in
-
- <a href="FAQ-install-doc.html">generating documentation for a new package</a>).
-Fortunately, the file (<i>patch.doc</i>) may be input directly, and
-&ldquo;documentation&rdquo; may found by reading the source of the package.
-Roughly speaking, one gives the command a set of instructions
-analogous to <i>sed</i> substitutions, and it regenerates the
-command thus amended. Unless you can&rsquo;t do your job any other way, you
-had probably best avoid <i>Patch</i>.
-<dl>
-<dt><tt><i>etoolbox.sty</i></tt><dd><a href="ftp://cam.ctan.org/tex-archive/macros/latex/contrib/etoolbox.zip">macros/latex/contrib/etoolbox</a> (<a href="ftp://cam.ctan.org/tex-archive/macros/latex/contrib/etoolbox.tar.gz">gzipped tar</a>, <a href="http://www.tex.ac.uk/tex-archive/macros/latex/contrib/etoolbox/">browse</a>)
-<dt><tt><i>patch.doc</i></tt><dd><a href="ftp://cam.ctan.org/tex-archive/macros/generic/misc/patch.doc">macros/generic/misc/patch.doc</a>
-<dt><tt><i>patchcommand.sty</i></tt><dd><a href="ftp://cam.ctan.org/tex-archive/macros/latex/contrib/patchcmd.zip">macros/latex/contrib/patchcmd</a> (<a href="ftp://cam.ctan.org/tex-archive/macros/latex/contrib/patchcmd.tar.gz">gzipped tar</a>, <a href="http://www.tex.ac.uk/tex-archive/macros/latex/contrib/patchcmd/">browse</a>)
-<dt><tt><i>ted.sty</i></tt><dd><a href="ftp://cam.ctan.org/tex-archive/macros/latex/contrib/ted.zip">macros/latex/contrib/ted</a> (<a href="ftp://cam.ctan.org/tex-archive/macros/latex/contrib/ted.tar.gz">gzipped tar</a>, <a href="http://www.tex.ac.uk/tex-archive/macros/latex/contrib/ted/">browse</a>)
-</dl>
-<p/><p>This question on the Web: <a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=patch">http://www.tex.ac.uk/cgi-bin/texfaq2html?label=patch</a>
-</body>