home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / comp / text / tex / 14781 < prev    next >
Encoding:
Internet Message Format  |  1993-01-09  |  1.7 KB

  1. Path: sparky!uunet!cs.utexas.edu!qt.cs.utexas.edu!yale.edu!jvnc.net!newsserver.jvnc.net!rutgers!att-out!pacbell.com!network.ucsd.edu!mvb.saic.com!info-tex
  2. From: BNB@MATH.AMS.ORG (bbeeton)
  3. Newsgroups: comp.text.tex
  4. Subject: re: question about parsing numbers
  5. Message-ID: <726603701.528921.BNB@MATH.AMS.ORG>
  6. Date: 9 Jan 93 18:21:41 GMT
  7. Organization: Info-Tex<==>Comp.Text.Tex Gateway
  8. Lines: 30
  9. X-Gateway-Source-Info: Mailing List
  10.  
  11. julio dix (jd01@swtexas.bitnet, to comp.text.tex, jan 8) wants
  12. to strip off the first digit from a series of digits in a box,
  13. replacing the remaining digits into the same box.
  14.  
  15. i won't tackle the boxing part of the question, but can explain
  16. why the whole string of numbers is being gobbled at once.
  17.  
  18. take a simpler example:
  19.     \newcount\num
  20.     \def\newnum#1#2.{\num=#1 \def\rest{#2}}
  21.     \newnum12345.
  22. this will end up with \num=12345 and \rest empty (with a delimited
  23. string, the part between delimiters need not contain anything).
  24.  
  25. reason?  a counter is expecting an integer value.  12345 is just as
  26. much an integer as 1, so parsing of the argument continues until a
  27. non-digit is encountered.  this can also have some surprising effects
  28. when a numeric value is the last thing in the expansion of a
  29. definition and data following that control sequence in a file is
  30. also numeric.  (a warning in tugboat 5#1, p.48, covered this in more
  31. detail, but that was a long time ago, and maybe it's time to
  32. reiterate.)
  33.  
  34. if num is treated as a token string or an ordinary control sequence,
  35. this approach will work.  if it's really necessary to set a counter
  36. to the value of the first digit, do it in two steps:
  37.     \newcount\num
  38.     \def\newnum#1#2.{\def\xnum{#1}\num=\xnum \def\rest{#2}}
  39.     \newnum12345.
  40.                         -- bb
  41.