From a61cd9e1d10c210efde9a9dbb5e58c5357bb3f9e Mon Sep 17 00:00:00 2001 From: Philipp Gesang Date: Fri, 13 May 2011 20:36:36 +0200 Subject: bad idea: reverted to rev18 --- tex/context/third/letterspace/t-letterspace.mkiv | 31 +++++++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/tex/context/third/letterspace/t-letterspace.mkiv b/tex/context/third/letterspace/t-letterspace.mkiv index 8ab420e..ce3f026 100644 --- a/tex/context/third/letterspace/t-letterspace.mkiv +++ b/tex/context/third/letterspace/t-letterspace.mkiv @@ -87,12 +87,35 @@ \fi \fi% {\letterspace_setstuff\currentobject}% - % Hans’ macro \doifnextcharelse works a lot better than my - % previously defined kludge … - \doifnextcharelse{\ }{% + \doifnextspace{% {\letterspace_setstuff\ }% \gobblespacetokens% - }{}% + }% +} + +%D This is a partial ripoff of a couple of macros from +%D \type{syst-aux.mkiv}. +%D \useURL [flet] [http://www.tug.org/TUGboat/Articles/tb09-3/tb22bechtolsheim.pdf] [] [\type{futurelet}] +%D Very helpful for further understanding of what’s exactly going +%D on: Stephan von Bechtolsheim’s tutorial on \from[flet]. +%D +%D In short: the trick is checking whether the token following +%D the command is a space, that is: whether it expands to +%D \type{\blankspace}. If the test succeeds, a space will be +%D added that has the correct parameters and all space tokens +%D following the command will be gobbled. Otherwise -- the next +%D token being anything else -- \type{\letterspace} will proceed +%D without changing anything. + +\def\doifnextspace#1{% + \def\!!string{#1}% + \futurelet\nexttoken\inspectnexttoken% +} + +\def\inspectnexttoken{% + \ifx\nexttoken\blankspace + \@EA\!!string + \fi% } %D \macros -- cgit v1.2.3