[texhax] Ref. Man. Bausum [was tabbing]

Uwe Lück uwe.lueck at web.de
Mon Sep 18 20:57:16 CEST 2006

OK, thanks, Phil, you are refuting my explanation of
"hard-wired shorthand". I already should have been ashamed
of how \meaning\gdef changes after \def\gdef{\global\def}
-- and of how \let\def\relax affects the primitive \gdef
as opposed to the macro \gdef (Plain TeX example at bottom here).

Though I still find it appropriate to consider \gdef a "hard-wired shorthand"
for \global\def -- just can't explain it better now ...

Anyway, the issue arised from my claim that the TeXbook is not "complete".
I tried to explain this using the notion of a "hard-wired shorthand".
But if you don't understand this, please notice my different wording:
The TeXbook is not as explicit with respect to the algorithm of
\accent and which font data are used -- as compared with the
explicitness with respect to positioning and spacing in math formulas
(Appendix G of the TeXbook). Due to this, the TeXbook can't be
considered "complete" or "comprehensive".

... and in this sense my question was whether anybody knows
whether Bausum's Manual fills gaps of this kind.

-- Note one review [not dealing with my questions]:


[-- to be continued in my reply to Karl's posting!]

... -- Uwe.

At 01:16 15.09.06, Philip TAYLOR wrote:

>No, it does not.  Here is a short example which
>first uses the primitive \gdef and then uses
>a macro \gdef which expands to \global \def :
>         \def \skiponetok {\let \next = }
>         \long \def \foo #1{#1\par}
>         \expandafter \skiponetok \gdef \foo {bar}
>         \message {\meaning \foo}
>         \def \gdef {\global \def}
>         \long \def \foo #1{#1\par}
>         \expandafter \skiponetok \gdef \foo {bar}
>         \message {\meaning \foo}
>         \end
>Now here is the log file which it produces :
>notice the difference between the behaviour of
>the primitive and the behaviour of the macro :
>         This is pdfeTeXk, Version 3.141592-1.30.3-2.2 (Web2c 7.5.5)
>         (format=tex 2006.1.26)  15 SEP 2006 01:09
>         **uwe.tex
>         (./uwe.tex \long macro:#1->#1\par  macro:->bar [1] )
>         Output written on uwe.dvi (1 page, 224 bytes).
>Philip Taylor



   %% Demo device here: screen only -- [no .dvi output]

   %% Play with commenting in/out last two lines of present paragraph:
   %% (keeping percent marks adopts Standard)
%   \def\gdef{\global\def}%% primitive \gdef -> macro \gdef
%   \let\def\relax %% affecting macro \gdef, not primitive \gdef

   %% Effects demonstrated:
   \typeout{outcome from input sample ->}       %% enclose screen output
   \typeout{ \space \meaning\gdef}              %% effect on \meaning\gdef
   \gdef\demomac{demo output}
   \typeout{ \space\demomac}                    %% effect of \let\def\relax
   \typeout{<- end of outcome from input sample}%% enclose screen output


More information about the texhax mailing list