Jesteś w: Start / Przedsięwzięcia/Projects / TeX Pearls / 2009 Pearls / Hans and Taco / bachotex2009-hans-taco-pearl1.tex

bachotex2009-hans-taco-pearl1.tex

TeX document icon bachotex2009-hans-taco-pearl1.tex — TeX document, 1 KB (1470 bytes)

Zawartość pliku

%%% Scary \<space>

% In pure TeX

    \show\
    \show\ %

% gives the following log on Hans's machine
% 
%     **space.tex
%     (./space.tex
%     > \
%     =macro:
%     ->\ .
%     l.1 \show\
% 
%     ?
%     > \ =\ .
%     l.2 \show \
%                 %
%     ?
%      )
%     No pages of output.
% 
% and on Taco's machine gives:
% 
%     **space.tex
%     (./space.tex
%     > \^^M=macro:
%     ->\ .
%     l.1 \show\
% 
%     ?
%     > \ =\ .
%     l.2 \show \
%                 %
%     ?
%      )
%     No pages of output.
% 
% The visualization of a ^^M depends of the platform but since
% there's definitely a newline involved we need to take care of it.
% 
% When parsing the input the following happens (this is mentioned in
% one of the dangerous bends in the TeXbook):
%  
%     \let\x\ <newline> => \let\x\<endlinechar>
% 
% This means that when you want to store the meaning of this
% primitive, you need to make sure that TeX explicitly sees a
% space instead of a newline. So we get:

    \let\normalspaceprimitive=\ % space-comment is really needed

% In ConTeXt this is used for:
% 
%     \unexpanded\def\ {\mathortext\normalspaceprimitive{\dontleavehmode\space}}
% 
% If you don't use the explicit space a simple

    $\ $

% will execute \^^M. In Plain TeX (and in ConTeXt) we have:

    \def\^^M{\ } % control <return> = control <space>

% So this will result in a loop.

\end