[texhax] Confused on \let for space
Jim Diamond
Jim.Diamond at acadiau.ca
Wed Jul 18 04:21:45 CEST 2012
On Tue, Jul 17, 2012 at 19:25 (-0600), Doug McKenna wrote:
> Reinhard Kotucha wrote -
>>>Quick question based on some kinda TeX primitive/syntax confusion in my
>>>head:
>>>How does one give a name, using \let, to a space character? E.g., in
>>> \let \blankspace =
>>>what comes after the '=' so that, for instance
>>> AB.C\ignorespaces \blankspace D
>>>will be typest as "AB.CD"?
>>>Or am I hallucinating that this \let is possible? It works fine for
>>>other non-space characters, e.g.,
>>> \let\bgroup={
>>Just a guess, does \let\blankspace\ work?
> Not really. It comes out as "AB. CD". In other words, \ (backslash
> space) breaks \ignorespaces's concentration before it gets to the 'D'.
> If one can define a name for a simple single input character (such as a
> left brace), how does one do it for a blank space character? Or is it
> impossible by design, given how spaces are generally coalesced and turned
> into skip glue?
How about one of
\def\setupkludge#1{\futurelet\spacetoken\relax} \setupkludge{a} \relax
\def\spacetoken#1{#1}%
\spacetoken{\let\spacetoken= } % <- keep this comment-char!!!!!
\afterassignment\romannumeral\futurelet\spacetoken0
\afterassignment\let\futurelet\spacetoken\: \:
I'd like to say I was clever enough to think of all of those, but,
alas, only one is mine. Regrettably, I can't give credit where it is
due for the others. Apologies to those whose names I didn't copy down.
Cheers.
Jim
More information about the texhax
mailing list