Received: from mx0.gmx.net (mx0.gmx.net [213.165.64.100]) by h1439878.stratoserver.net (8.14.2/8.14.2/Debian-2build1) with SMTP id pB39bGBv010184 for ; Sat, 3 Dec 2011 10:37:17 +0100 Received: (qmail 20275 invoked by alias); 3 Dec 2011 09:37:11 -0000 Delivered-To: GMX delivery to rainer.schoepf@gmx.net Received: (qmail invoked by alias); 03 Dec 2011 09:37:11 -0000 Received: from relay2.uni-heidelberg.de (EHLO relay2.uni-heidelberg.de) [129.206.210.211] by mx0.gmx.net (mx118) with SMTP; 03 Dec 2011 10:37:11 +0100 Received: from listserv.uni-heidelberg.de (listserv.uni-heidelberg.de [129.206.100.94]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id pB39Yfkx018028 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 3 Dec 2011 10:34:41 +0100 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 pB2N1FrY009001; Sat, 3 Dec 2011 10:34:40 +0100 Received: by LISTSERV.UNI-HEIDELBERG.DE (LISTSERV-TCP/IP release 16.0) with spool id 1925624 for LATEX-L@LISTSERV.UNI-HEIDELBERG.DE; Sat, 3 Dec 2011 10:34:40 +0100 Received: from relay2.uni-heidelberg.de (relay2.uni-heidelberg.de [129.206.210.211]) by listserv.uni-heidelberg.de (8.13.1/8.13.1) with ESMTP id pB39Ye5g021222 for ; Sat, 3 Dec 2011 10:34:40 +0100 Received: from lon1-msapost-3.mail.demon.net (lon1-msapost-3.mail.demon.net [195.173.77.182]) by relay2.uni-heidelberg.de (8.13.8/8.13.8) with ESMTP id pB39YPr6017998 for ; Sat, 3 Dec 2011 10:34:29 +0100 Received: from morningstar2.demon.co.uk ([80.176.134.7] helo=palladium.local) by lon1-post-3.mail.demon.net with esmtpsa (AUTH morningstar2) (TLSv1:AES256-SHA:256) (Exim 4.69) id 1RWlzF-000376-dD for latex-l@listserv.uni-heidelberg.de; Sat, 03 Dec 2011 09:34:25 +0000 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:8.0) Gecko/20111105 Thunderbird/8.0 MIME-Version: 1.0 X-Enigmail-Version: 1.3.3 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Message-ID: <4ED9ED20.40004@morningstar2.co.uk> Date: Sat, 3 Dec 2011 09:34:24 +0000 Reply-To: Mailing list for the LaTeX3 project Sender: Mailing list for the LaTeX3 project From: Joseph Wright Subject: Documentation of local/global variants To: LATEX-L@listserv.uni-heidelberg.de Precedence: list List-Help: , List-Unsubscribe: List-Subscribe: List-Owner: List-Archive: X-GMX-Antispam: 0 (Sender is in whitelist: joseph.wright@MORNINGSTAR2.CO.UK); Detail=5D7Q89H36p4L00VTXC6D4q0N+AH0PUCnBi0P5cROEGjO+pG7NAH/K+tf9SrVFtpLrKONl 2T9EL4W4U4jgzLbnCcGpk1z/zwmKT/K1fv3lD0=V1; X-Resent-By: Forwarder X-Resent-For: rainer.schoepf@gmx.net X-Resent-To: rainer@rainer-schoepf.de Status: R X-Status: X-Keywords: X-UID: 6968 Hello all, Part of our recent efforts with LaTeX3 has been to improve the documentation, adding in for example 'change dates' for functions in l3kernel. One area that I am not sure we have quite right at present is the documentation of local/global variants. Where functions exist in both local and global versions (for example \tl_set:Nn and \tl_gset:Nn), there are currently separate documentation entries for the two cases. This means that the scope of assignments can be clearly documented, but does make for rather repetitive text. A similar issue arises with the (TF) functions, where we have decided to have a general statement about the nature of the two branches for the entire content of interface3, and only to include information for individual functions where a special case applies. I wonder if it would make more sense to take the same approach for functions with local/global versions. Something like: 'Where functions for variable manipulation can apply either locally or globally, the latter case is indicated by the inclusion of a "g" in the last part of the function name. Thus \tl_set:Nn is a local function but \tl_gset:Nn acts globally. Functions of this type are always documented together, and the scope of action may therefore be inferred from the presence or absence of a "g".' The scope would then be excluded from the function documentation: % \begin{function} % { % \tl_set:Nn, \tl_set:cn, % \tl_gset:Nn, \tl_gset:cn % } % \begin{syntax} % \cs{tl_set:Nn} \meta{tl~var} \Arg{tokens} % \end{syntax} % Sets \meta{tl~var} to contain \meta{tokens}, % removing any previous content from the variable. % \end{function} Does this make sense as a sensible balance between formality and documentation length? -- Joseph Wright