diff options
Diffstat (limited to 'Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-ltxcmds.html')
-rw-r--r-- | Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-ltxcmds.html | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-ltxcmds.html b/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-ltxcmds.html index b03e4365358..3acdd3a405d 100644 --- a/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-ltxcmds.html +++ b/Master/texmf-dist/doc/generic/FAQ-en/html/FAQ-ltxcmds.html @@ -3,8 +3,8 @@ </head><body> <h3>The definitions of LaTeX commands</h3> <p/>There are several reasons to want to know the definitions of LaTeX -commands: from the simplest “idle curiosity”, to the pressing need -to patch something to make it “work the way you want it”. None of +commands: from the simplest “idle curiosity”, to the pressing need +to patch something to make it “work the way you want it”. None of these are <em>pure</em> motives, but knowledge and expertise seldom arrive through the purest of motives. <p/>The simple answer is to try <code>\</code><code>show</code>, in a run of LaTeX that is @@ -13,47 +13,47 @@ taking commands from the terminal: <pre> *\makeatletter *\show\protected@edef -> \protected@edef=macro: -->\let \@@protect \protect +> \protected@edef=macro: +->\let \@@protect \protect \let \protect \@unexpandable@protect \afterassignment \restore@protect \edef . </pre> </blockquote><p> -(I’ve rearranged the output there, from the rather confused version +(I’ve rearranged the output there, from the rather confused version TeX itself produces.) We may perhaps, now, wonder about <code>\</code><code>@unexpandable@protect</code>: <blockquote> <pre> *\show\@unexpandable@protect -> \@unexpandable@protect=macro: -->\noexpand \protect \noexpand . +> \@unexpandable@protect=macro: +->\noexpand \protect \noexpand . </pre> </blockquote><p> -and we’re starting to see how one part of the <code>\</code><code>protect</code>ion +and we’re starting to see how one part of the <code>\</code><code>protect</code>ion mechanism works (one can probably fairly safely guess what <code>\</code><code>restore@protect</code> does). <p/>Many kernel commands are declared robust: <blockquote> <pre> *\show\texttt -> \texttt=macro: -->\protect \texttt . +> \texttt=macro: +->\protect \texttt . </pre> </blockquote><p> -so that <code>\</code><code>show</code> isn’t much help. Define a command <code>\</code><code>pshow</code> as +so that <code>\</code><code>show</code> isn’t much help. Define a command <code>\</code><code>pshow</code> as shown below, and use that instead: <blockquote> <pre> *\def\pshow#1{{\let\protect\show #1}} *\pshow\texttt -> \texttt =\long macro: -#1->\ifmmode \nfss@text {\ttfamily #1}% +> \texttt =\long macro: +#1->\ifmmode \nfss@text {\ttfamily #1}% \else \hmode@bgroup \text@command {#1}% \ttfamily \check@icl #1\check@icr \expandafter \egroup \fi . </pre> </blockquote><p> -Note that the command name that is protected is the ‘base’ command, +Note that the command name that is protected is the ‘base’ command, with a space appended. This is cryptically visible, in a couple of places above. (Again, the output has been sanitised.) <p/>If one has a malleable text editor, the same investigation may more @@ -66,24 +66,24 @@ you can refer to those instead. The LaTeX distribution includes a file <i>source2e.tex</i>, and most systems retain it, again in <i>tex/latex/base</i>. <i>Source2e.tex</i> may be processed to provide a complete source listing of the LaTeX kernel (in fact the -process isn’t entirely straightforward, but the file produces messages +process isn’t entirely straightforward, but the file produces messages advising you what to do). The result is a huge document, with a line-number index of control sequences the entire kernel and a separate index of changes recorded in each of the files since the LaTeX team took over. -<p/>The printed kernel is a nice thing to have, but it’s unwieldy and sits +<p/>The printed kernel is a nice thing to have, but it’s unwieldy and sits on my shelves, seldom used. One problem is that the comments are patchy: the different modules range from well and lucidly documented, through modules documented only through an automatic process that converted the documentation of the source of LaTeX 2.09, to modules that hardly had any useful documentation even in the LaTeX 2.09 original. <p/>In fact, each kernel module <code>.dtx</code> file will process separately -through LaTeX, so you don’t have to work with the whole of +through LaTeX, so you don’t have to work with the whole of <i>source2e</i>. You can easily determine which module defines the -macro you’re interested in: use your “malleable text editor” to find +macro you’re interested in: use your “malleable text editor” to find the definition in <i>latex.ltx</i>; then search backwards from that point for a line that starts -<code>%%% From File:</code> — that line +<code>%%% From File:</code> — that line tells you which <code>.dtx</code> file contains the definition you are interested in. Doing this for <code>\</code><code>protected@edef</code>, we find: <blockquote> @@ -94,10 +94,10 @@ in. Doing this for <code>\</code><code>protected@edef</code>, we find: When we come to look at it, <i>ltdefns.dtx</i> proves to contain quite a dissertation on the methods of handling <code>\</code><code>protect</code>ion; it also contains some automatically-converted LaTeX 2.09 documentation. -<p/>And of course, the kernel isn’t all of LaTeX: your command may be -defined in one of LaTeX’s class or package files. For example, we +<p/>And of course, the kernel isn’t all of LaTeX: your command may be +defined in one of LaTeX’s class or package files. For example, we find a definition of <code>\</code><code>thebibliography</code> in <i>article</i>, but -there’s no <i>article.dtx</i>. Some such files are generated from +there’s no <i>article.dtx</i>. Some such files are generated from parts of the kernel, some from other files in the distribution. You find which by looking at the start of the file: in <i>article.cls</i>, we find: |