########## Expansion with \romannumeral ##################################################

The built in TeX token \romannumeral normally expands to the representation of its argument in roman letters.
The argument must be a number in the sense of TeX.
\romannumeral only expands to the representation if that number is positive.
It does not expand to anything if that number is zero or negative.
\romannumeral fully expands the next following tokens until they form a number, when it is itself expanded.
A number in the sense of TeX can be control sequnce that stands for a counter, dimension, penalty, character or math character.
A number in the sense of TeX can also be a so called integer denotation.
An integer denotation consists of
 - an optional sign: "+" or "-" AND
 - some digits: normal digits "0" to "9" or octal digits "0" to "7", preceded by "´" or hexadecimal digits "0" to "F", preceded by """ (the quote sign)
 OR
 - one character, preceded by "`" AND
 - an optional space
(see TeXbyTopic --> Numbers --> Integers, pp. 79ff)
Though an integer denotation that represents zero or a negative number stops the expansion introduced by \romannumeral and does not leave any output.



########## How the corrected version of etextools's \deblank works ##################################################

As far as I know there can be only one (and no more) space before or after some other tokens.
This is guaranteed by TeX's input processor
Here "text" stands for the argument of \deblank.
\romannumeral starts an fully expansion of all following tokens until \rmn@sgos.

The expansion of \ettl@deblank removes the trailing space:
    (1) If the text has a trailing space:
        The first delimited parameter #1 of \ettl@deblank is the text, with the trailing space removed,
            because it was considered as part of the delimiter in \ettl@blank's parameter text.
        At first the following " /" is left.
    (2) If the text has not a trailing space:
        The first delimited parameter #1 of \ettl@deblank is the unchanged text plus "/".
        The following " /" is removed, because it is considered as the delimiter.

The expansion of \ettl@deblank@i removes remaining helping stuff:
    (1) The first delimited parameter #1 of \ettl@deblank@i is still the text, with the trailing space removed.
        Because \ettl@deblank provides a "/", the call of \ettl@deblank@i is valid according to its parameter text,
        The following " /" is removed by the second undelimited parameter #2, which is discarded.
            (Because #2 is an undelimited parameter the space is skipped (in contrast to delimited parameters) and only "/" is the value of #2.
            see TexByTopic --> Macros --> The parameter text --> Undelimited parameters, p. 112)
    (2) The first delimited parameter #1 of \ettl@deblank is the unchanged text.
            The "/" was removed, because it was considered as a delimiter.
        The "/" provided by the call in \ettl@deblank is considered as the second undelimited parameter #2, which is discarded.

The expansion of \rmn@sgos stops the expansion and removes the trailing space:
    The replacement text of \rmn@sgos stops the expansion and fully expands the next token and removes if it is or expands to a space.
    (1) If the text has a leading space:
        Though it removes the leading space.
    (2) If the text has not a leading space:
        \rmn@sgos would expand the next token.

The sense of \noexpand:
    To stop \rmn@sgos from expanding the first token of the text (It could e.g. be an undefined control sequence.),
    we added \noexpand in front of the text.
    The \noexpand is kept in the first arguments of \ettl@deblank and \ettl@deblank@i.
    Directly after \rmn@sgos \noexpand<first token of text> is fully expanded to <first token of text>, which could be a space or not.
Usefull side effect:
    Because \noexpand is added in front of the text before \ettl@delank is expanded,
    it guarantees that the first parameter #1 consits of
    at least one token, if the text is the empty or at least two syntax units.
    (Every character or control sequence or group is a syntax unit. Further non-empty groups consits of syntax units.)
    In the latter case group braces are kept, if the text is exactly one such group.
    In contrast if \noexpand (or any other token) would be not provided these group braces would be removed
    for the value of the first parameter #1.
