summaryrefslogtreecommitdiff
path: root/tex/context/third
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/third')
-rw-r--r--tex/context/third/letterspace/t-letterspace.mkiv31
1 files 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