Path: utzoo!attcan!uunet!seismo!dimacs.rutgers.edu!mips!zaphod.mps.ohio-state.edu!julius.cs.uiuc.edu!wuarchive!udel!princeton!carrot.princeton.edu!levy From: levy@carrot.princeton.edu (Silvio Levy) Newsgroups: comp.text.tex Subject: Re: inconsistency between TeX 2.9 and 3.0 Message-ID: <2863@idunno.Princeton.EDU> Date: 27 Sep 90 13:34:55 GMT References: <1990Sep27.010730.1819@zaphod.mps.ohio-state.edu> Sender: news@idunno.Princeton.EDU Lines: 24 eao@shape.mps.ohio-state.edu (Ed Overman) writes: >We just installed TeX 3.0 here over the weekend and there seems to be >an inconsistency between the new and old versions. I've experimented a bit more and I'm convinced that 3.0 does the right thing, at least according to my interpretation of the definition of \if on page 209. As I understand it \par and any \chardef control sequence are unexpandable, so after \if they're both considered to have "character code" 256. More generally, all of the conditions below should give true (and do, in 3.0): \if\par\times \message{TRUE}\else \message{FALSE}\fi \if\times\vskip \message{TRUE}\else \message{FALSE}\fi \if\vskip\# \message{TRUE}\else \message{FALSE}\fi \if\#\pageno \message{TRUE}\else \message{FALSE}\fi \if\pageno\par \message{TRUE}\else \message{FALSE}\fi While in 2.9 the first and last give false, thus drawing an unjustified distinction between \par on one hand and \times (a \mathchardef), \vskip (a primitive), \# (a \chardef) and \pageno (a \countdef) on the other. Silvio Levy