LATEX-L Archives

Mailing list for the LaTeX3 project

LATEX-L@LISTSERV.UNI-HEIDELBERG.DE

Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Joseph Wright <[log in to unmask]>
Reply To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Date:
Thu, 18 Sep 2008 13:31:20 +0100
Content-Type:
text/plain
Parts/Attachments:
text/plain (110 lines)
Hello,

To save everyone a little time, how about the following for a
comprehensive set (following the \char_if_<whatever> names where available):

\def_new:Npn \char_make_escape:N #1 {
  \char_set_catcode:nn {`#1} {\c_zero}
}
\def_new:Npn \char_make_begin_group:N #1 {
  \char_set_catcode:nn {`#1} {\c_one}
}
\def_new:Npn \char_make_begin_end:N #1 {
  \char_set_catcode:nn {`#1} {\c_two}
}
\def_new:Npn \char_make_math_shift:N #1 {
  \char_set_catcode:nn {`#1} {\c_three}
}
\def_new:Npn \char_make_alignment:N #1 {
  \char_set_catcode:nn {`#1} {\c_four}
}
\def_new:Npn \char_make_end_line:N #1 {
  \char_set_catcode:nn {`#1} {\c_five}
}
\def_new:Npn \char_make_parameter:N #1 {
  \char_set_catcode:nn {`#1} {\c_six}
}
\def_new:Npn \char_make_math_superscript:N #1 {
  \char_set_catcode:nn {`#1} {\c_seven}
}
\def_new:Npn \char_make_math_subscript:N #1 {
  \char_set_catcode:nn {`#1} {8}
}
\def_new:Npn \char_make_ignore:N #1 {
  \char_set_catcode:nn {`#1} {\c_nine}
}
\def_new:Npn \char_make_space:N #1 {
  \char_set_catcode:nn {`#1} {\c_ten}
}
\def_new:Npn \char_make_letter:N #1 {
  \char_set_catcode:nn {`#1} {\c_eleven}
}
\def_new:Npn \char_make_other_char:N #1 {
  \char_set_catcode:nn {`#1} {12}
}
\def_new:Npn \char_make_active_char:N #1 {
  \char_set_catcode:nn {`#1} {13}
}
\def_new:Npn \char_make_comment:N #1 {
  \char_set_catcode:nn {`#1} {14}
}
\def_new:Npn \char_make_invalid:N #1 {
  \char_set_catcode:nn {`#1} {15}
}
\def_new:Npn \char_make_escape:n #1 {
  \char_set_catcode:nn {#1} {\c_zero}
}
\def_new:Npn \char_make_begin_group:n #1 {
  \char_set_catcode:nn {#1} {\c_one}
}
\def_new:Npn \char_make_begin_end:n #1 {
  \char_set_catcode:nn {#1} {\c_two}
}
\def_new:Npn \char_make_math_shift:n #1 {
  \char_set_catcode:nn {#1} {\c_three}
}
\def_new:Npn \char_make_alignment:n #1 {
  \char_set_catcode:nn {#1} {\c_four}
}
\def_new:Npn \char_make_end_line:n #1 {
  \char_set_catcode:nn {#1} {\c_five}
}
\def_new:Npn \char_make_parameter:n #1 {
  \char_set_catcode:nn {#1} {\c_six}
}
\def_new:Npn \char_make_math_superscript:n #1 {
  \char_set_catcode:nn {#1} {\c_seven}
}
\def_new:Npn \char_make_math_subscript:n #1 {
  \char_set_catcode:nn {#1} {8}
}
\def_new:Npn \char_make_ignore:n #1 {
  \char_set_catcode:nn {#1} {\c_nine}
}
\def_new:Npn \char_make_space:n #1 {
  \char_set_catcode:nn {#1} {\c_ten}
}
\def_new:Npn \char_make_letter:n #1 {
  \char_set_catcode:nn {#1} {\c_eleven}
}
\def_new:Npn \char_make_other_char:n #1 {
  \char_set_catcode:nn {#1} {12}
}
\def_new:Npn \char_make_active_char:n #1 {
  \char_set_catcode:nn {#1} {13}
}
\def_new:Npn \char_make_comment:n #1 {
  \char_set_catcode:nn {#1} {14}
}
\def_new:Npn \char_make_invalid:n #1 {
  \char_set_catcode:nn {#1} {15}
}

with \char_make_<whatever>:n taking a number and \char_make_<whatever>:N
requiring a single (escaped) token, for example:

\char_make_other:N \$
\char_make_letter:n {`\$}
-- 
Joseph Wright

ATOM RSS1 RSS2