## LATEX-L@LISTSERV.UNI-HEIDELBERG.DE

 Options: Use Classic View Use Monospaced Font Show Text Part by Default Show All Mail Headers Topic: [<< First] [< Prev] [Next >] [Last >>]

 Re: expl3: parameter access letters Frank Mittelbach <[log in to unmask]> Fri, 7 Aug 1998 22:11:45 +0200 text/plain (54 lines) Javier  > In fact, both g and l specifiers are wrong, because TeX lacks  > the concept of variable scope. Only *assignments* are local  > or global and a certain macro is assigned globally or locally  > depending on the context. (That makes \global different to \outer  > and \long, as you can see in the p 210 of the TeXbook.) i think wrong here is the wrong word. The fact that the underlying language does in principle allow you to mix local and global assignments does not mean that on a higher level of abstraction you want to distinguish variables for global or local use (and discurrage or even prevent mixing those assignments).  > The best approach is not to believe that TeX is ModulaX or Java -- just nobody believes that TeX is that or at least I don't but that doesn't mean that i want to structure my variables. the fact that, for example, half of the \newif commands in current latex are meant to be used always globally but have no indication of needing this access method has resulted in quite a number of bugs over the years. or to give a different example, this is like claiming that LaTeX or plain TeX has no concept of internal commands (ie those with @ in them since it is not part of the language and everybody can make @ a letter at any time. or course everybody can but then he/she is conceptually starting to work with internal commands.  > > \g_master_parindent  > > \g_cur_parindent  > >  > >or something along those lines.  >  > And don't forget the intermediate levels when you write a footnote in  > a minipage in a float in an appendix in a document! ;-)  >  > >So I think the "C" should be discarded, leaving c l g R L G.  >  > I think all of them should be discarded. i disagree with both of you: discard RLG but keep the (in my opinion) helpful distinction between constants and variable intended for local or for global use. this covers 99.9% of any code you need to write and helps structuring it a lot for easier understanding and less errors. if you look at the article produced for TUB you will notice that there only c l g are described (plus a vague sentence that "these codes include the following" which indicates that there might be more). this was because working with this i found that more would not be helpful but rather over the top. frank