Received: from mail.proteosys.com ([213.139.130.197]) by nummer-3.proteosys with Microsoft SMTPSVC(6.0.3790.3959); Thu, 18 Sep 2008 15:16:30 +0200 Received: by mail.proteosys.com (8.13.8/8.13.8) with ESMTP id m8IDGPjX020599 for ; Thu, 18 Sep 2008 15:16:25 +0200 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id m8IDDBsY014349 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 18 Sep 2008 15:13:11 +0200 Received: from listserv.uni-heidelberg.de (localhost.localdomain [127.0.0.1]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id m8HM1hTh005980; Thu, 18 Sep 2008 15:13:05 +0200 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 15.5) with spool id 45802 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 18 Sep 2008 15:13:05 +0200 Received: from relay.uni-heidelberg.de (relay.uni-heidelberg.de [129.206.100.212]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id m8IDD5YK009834 for ; Thu, 18 Sep 2008 15:13:05 +0200 Received: from atlas.informatik.uni-freiburg.de (atlas.informatik.uni-freiburg.de [132.230.150.3]) by relay.uni-heidelberg.de (8.14.1/8.14.1) with ESMTP id m8IDClk8013858 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Thu, 18 Sep 2008 15:12:50 +0200 Received: from remote239-44.home.uni-freiburg.de ([132.230.239.44] helo=irwin.vpn.uni-freiburg.de) by atlas.informatik.uni-freiburg.de with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.68) (envelope-from ) id 1KgJJM-0004em-RI for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Thu, 18 Sep 2008 15:12:46 +0200 Received: by irwin.vpn.uni-freiburg.de (Postfix, from userid 500) id 1B60E178A0; Thu, 18 Sep 2008 15:06:10 +0200 (CEST) Mail-Followup-To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE References: <48D22952.9000204@morningstar2.co.uk> <27990a880809180405v7d5b816fk93b12cd51c6f442e@mail.gmail.com> <48D24A18.8000208@morningstar2.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Message-ID: <20080918130610.GA4040@irwin.vpn.uni-freiburg.de> Date: Thu, 18 Sep 2008 15:06:10 +0200 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Heiko Oberdiek Subject: Re: \char_set_catcode:nn To: LATEX-L@LISTSERV.UNI-HEIDELBERG.DE In-Reply-To: <48D24A18.8000208@morningstar2.co.uk> Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-ProteoSys-SPAM-Score: -2.599 () BAYES_00 X-Scanned-By: MIMEDefang 2.64 on 213.139.130.197 Return-Path: owner-latex-l@LISTSERV.UNI-HEIDELBERG.DE X-OriginalArrivalTime: 18 Sep 2008 13:16:31.0000 (UTC) FILETIME=[C3EF6180:01C91990] Status: R X-Status: X-Keywords: X-UID: 5355 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_ 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