On Thu, Sep 18, 2008 at 01:31:20PM +0100, Joseph Wright wrote: > To save everyone a little time, how about the following for a > comprehensive set (following the \char_if_<whatever> names where available): > [Definition text omitted in the following] In comments I have added the words from the column "Meaning" in "The TeXbook", chapter 7, page 37: > \def_new:Npn \char_make_escape:N #1 { % Escape character > \def_new:Npn \char_make_begin_group:N #1 { % Beginning of group > \def_new:Npn \char_make_begin_end:N #1 { % End of group ==> \char_make_end_group > \def_new:Npn \char_make_math_shift:N #1 { % Math shift > \def_new:Npn \char_make_alignment:N #1 { % Alignment tab > \def_new:Npn \char_make_end_line:N #1 { % End of line > \def_new:Npn \char_make_parameter:N #1 { % Parameter > \def_new:Npn \char_make_math_superscript:N #1 { % Superscript > \def_new:Npn \char_make_math_subscript:N #1 { % Subscript > \def_new:Npn \char_make_ignore:N #1 { % Ignored character > \def_new:Npn \char_make_space:N #1 { % Space > \def_new:Npn \char_make_letter:N #1 { % Letter > \def_new:Npn \char_make_other_char:N #1 { % Other character > \def_new:Npn \char_make_active_char:N #1 { % Active character > \def_new:Npn \char_make_comment:N #1 { % Comment character > \def_new:Npn \char_make_invalid:N #1 { % Invalid character > [...] > \char_make_other:N \$ But above you have defined \char_make_other_char. In general I think, where Knuth has written "xy character" the word "character" could be omitted, because it is already present as first compound of the macro. Also it would make the macro name a little shorter. In part you have done it already: \char_make_escape \char_make_ignore \char_make_comment \char_make_invalid but ==> \char_make_other ==> \char_make_active Yours sincerely Heiko <[log in to unmask]>