summaryrefslogtreecommitdiff
path: root/info/digests/tex-implementors/message.32
blob: 0f9426bccf784b964db45ad3d9da78d851a5b2c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
Date:     1 November 91                         Message No:     032

To:       TeX implementors and distributors

From:     Barbara Beeton

Subject:  Publication info for C & T; messages from DEK, part 1


On my return from several weeks of out-of-town meetings, I found
waiting for me a large package from DEK (about 1cm of paper, plus half
a dozen checks, or checques, depending which side of the Atlantic you
were on when you learned to spell English).  No major rewards in this
batch, although there will be a version 3.141 probably in January,
after some updates have been checked out a bit more thoroughly and DEK
returns from a couple months in Sweden.  I am just about ready to
distribute the checks and the supporting documentation to the original
submitters.  I will also post here the details of the submissions and
the replies; this involves deciphering DEK's handwritten notes and
typing them in so that they make sense.  The first installment is
included below.

I was also asked to find out the current status of several volumes in
the Computers & Typesetting series, in particular, whether volumes B
and D (**: The Program) now contain the version 3 (etc.) updates.  As
this information is likely to be of general interest, the report from
Addison-Wesley is given below.

As usual after such a long break in "official" messages, there have
been quite a few address updates and a few additions.  So, once again,
acknowledgements would be appreciated, to make sure the mail is getting
through.


########################################################################

status of volumes in the series Computers & Typesetting, by Donald E. Knuth
information received from Addison-Wesley, 23 October 1991

                                                           printing
 ref.no.  vol.  title                        edition   number      date

hardbound:

  13447    A    The TeXbook                     1       11th    June 1, 1991

  13437    B    TeX: The Program                1        4th    May 1, 1991

  13445    C    The METAFONTbook                1        4th    Sept, 1991

  13438    D    METAFONT: The Program           1        4th    Oct, 1991

  13446    E    Computer Modern Typefaces       1        3rd    Aug, 1987

soft/spiral bound:

  13448         The TeXbook                     1       20th    May 1, 1991

  13444         The METAFONTbook                1        6th    Feb, 1991

note:  all printings are marked "with corrections"


########################################################################

Date: Mon 24 Jun 91 13:28:03-EST
Subject: bug report (plain.tex) for don

don,
here's a bug in plain that has been flushed out by phil taylor.

    Date: Fri, 21 JUN 91 20:54:14 BST
    From: CHAA006@vax.rhbnc.ac.uk
                 "Philip Taylor (RHBNC) <P.Taylor@Uk.Ac.Rhbnc.Vax>"
    Subject: Bug in PLAIN

    Hi, Barbara et al ...

    I have just spent nine hours searching for a bug in my code ...
    I finally thought to check Plain.TeX (fmtversion{3.0}) and found ...

        \def\multispan#1{\omit \mscount#1
          \loop\ifnum\mscount>\@ne \sp@n\repeat}
        \def\sp@n{\span\omit\advance\mscount\m@ne}

    which explained everything ...

    It's simply that the first line ends `#1', rather than `#1\relax';
    if \multispan is invoked with a \countdef'd register, as in
        
        \multispan \columns \hrulefill \cr

    an extra and totally unwanted space intrudes before the \hrulefill.

    Is this a known bug, or has it just failed to emerge from the woodwork
    before ?

                                        ** Phil.

this little test demonstrates the problem "loud and clear".

    \def\testmspan#1{%
      \halign{##\hfil&&\qquad##\hfil\cr
        XX&\multispan{#1}XXXXX&XX\cr
        XX&XX&XX&XX&XX\cr}}

    \testmspan{3}

    \newcount\columns
    \columns=3
    \testmspan{\columns}

    \catcode`\@=11
    \def\multispan#1{\omit \mscount#1\relax
      \loop\ifnum\mscount>\@ne \sp@n\repeat}
    \catcode`\@=12

    \testmspan{\columns}

    \bye

i wonder how many people have noticed something slightly wrong but
never went out of their way to check?
                                                -- bb

[ reply from dek:

  $2.56 (which works out to about 28\cents{} per hour)
  Thanks very much!
  will be fixed in plain version 3.1
]


########################################################################

Date: Sun 15 Sep 91 15:03:54-EST
Subject: bugs and questions for don

don, here are some bug reports and other comments that have been
accumulating.  i should have sent most of them earlier, but most
of these aren't "easy" ones, and i've been out of town so much
  [ dek:         ^^^^ rather an understatement ...
        but nothing to match the earlier stuff on hyphenation & ligatures. ]
that i just never got them organized.
                                                -- bb
  [ dek:
        No problem -- good thing in fat, because I just finished a
        big project that was causing me to turn off all other mail --
        and I'm just about tostart another -- so Sep 17 was the day
        I chose to look at TeX stuff. ]

                        --------------------
Contents:
        question on "final" update to TeX and MF
        TeXbook errata and questions
                easy items
                handling of space tokens
                still a bug in p. 377 footnote
        incompatibility of positive/negative integer values
        file name overflow of string pool
        TeX
                handling of \newlinechar within \special
                size of \smash'ed boxes
                verifying that 8-bit input is supported
                incompatibilities between \input and \openin
        WEB system
                dealing with repeating code in .WEB files

************************************************************************

Question on "final" update to TeX and MF

Who will be authorized to change the version numbers of TeX and MF
to $\pi$ and $e$ respectively?  It might be a good idea just to have
this information "on the record"; perhaps a message to be placed on
file in the TUG office would suffice.

  [ dek:
        I put such a message into TEX82.BUG and MF84.BUG some time ago,
        so I presume any archive keeper could make the change.  (Actually
        it also implies changes to Volumes B and D also, and in the
        `Running' chapters of Volumes A and C; so I have added a phrase
        to TEX82.BUG and MF84.BUG.  I guess the authorized person will
        be my literary executor, given that my program is supposed to be
        literate?
  ]

************************************************************************

TeXbook errata and questions -- easy items

Date: Thu, 27 Jun 91 23:11:47 BST
From: CET1@phoenix.cambridge.ac.uk
Subject: A TeXbook possible-bug from Robert Hunt, etc

> Submitted: 20:44:00 12 Apr 91
> From: Robert Hunt <REH10>
> To: cet1
> Subject: TeX
>
> I've just discovered a _very_ minor problem with the TeXbook, but I thought I'd
> point it out to you anyway, while there's already an outstanding problem being
> considered. I certainly don't think it's a real "bug" but it's certainly worth
> telling Knuth! I've just noticed that the only place in the TeXbook where it
> informs you that exactly one space token is ignored after a closing $$ is in
> the answer to Exercise 14.30, on page 316. It surely ought to mention this in
> some other places as well: in particular, it should be on page 287, and
> possibly on page 189 (though Knuth is unlikely to want to do this as it'd be
> difficult to avoid having to rearrange lots of text to fit!).

I think that there is something in this, although I suspect that the
canonical place it should be documented is on page 293 (treatment of
$ and $$ when encountered in math mode), not page 287. Anyway, I think
  [ dek:                                 ^^^^^^^^^^^^  right
it deserves to have Don look at it: as far as I can make out there
haven't been any TeXbook changes that affect Robert's claim.
  [ dek:
        Aha, there _is_ room on page 293!
        $2.56 ]

i still have outstanding the various error reports about the p.377
footnote. I will try to get back to you on this *soon* (sigh).

Chris Thompson
 -------

Date: Mon, 9 Sep 91 13:19:21 PDT
From: raymond@math.berkeley.edu (Raymond Chen)
Subject: TeXbook errata

Please pass these on to DEK, as I ran across them in my marginal notes
after I mailed off my letter...

They're all index items, and they're not really errata.

add `\note: 318'.  Many times I've wanted to find that macro and couldn't.
  though perhaps keeping it under `footnotes: 121' is good enough.
    [ dek:      \check ]

add `72' to \hss, even though it doesn't appear explicitly, since that
  is where we learn exactly how much glue an \hss produces.  (Curiously,
  \hfil, \hfill, and \hfilneg are indexed for that page.  \hss is the
  odd man out.)
    [ dek:      32\cents ]

add `93' to `hyphenation', since that's where the most obvious method
  of suppressing hyphenation is presented.  (I get asked this quite a bit,
  and it's annoying not to be able to say, ``Just check the index.'')
    [ dek:      $2.56
        included in check sent directly to him in response to his letter ]

My proposals to change the index are usually rejected, but if DEK feels
like considering them, he can do so.

 --rjc
 -------

Date: Sun, 18 AUG 91 17:57:27 +0100
From: CA_ROWLEY@vax.acs.open.ac.uk
Subject: Bug in TeXbook

whilst idly perusing Chap 24, looking for yet more amazing syntax and
overloading (of the latter, \font was a new one for me!),
  [ dek:  you knew about \span ]
i discovered in black and white in the middle of page 275 the bold
statement:

"but in all cases this sign (=) is optional"

now you and i know that Don knows perfectly well that this is not
true---to take a simple example (there are other more subtle ones),
the assignment:

\let \equalsign = =

here the first equals sign is essential.
  [ dek:  precisely _because_ it is optional! ]

do you think Don wants to know about this?
  [ dek:  a (black and white) lie? ]

chris
 -------

Date: Wed, 21 Aug 91 12:12:15 +0200
From: Eberhard Mattes <mattes@azu.informatik.uni-stuttgart.de>
Subject: Very insignificant error in The TeXbook?

p. 96:
----------------------------------------------------------------------------
Some compound words in German text change their spelling when they are
split between lines.  For example, `backen' becomes `bak-ken' and `Bettuch'
becomes `Bett-tuch'.
----------------------------------------------------------------------------

I think `backen' isn't a compound word, if `compound word' meens
a word composed of two or more words (in contrast to syllables).
  [ dek:
        $2.56
        should i have used `backenfisch' instead? ]

 -Eberhard Mattes
 -------

************************************************************************

TeXbook errata and questions -- still a bug in p. 377 footnote

[ note that according to Chris Thompson, Robert Hunt had already
  informed him that the p. 377 bug wasn't entirely fixed; however
  this commentary reached me first. ]

Date: Fri, 31 May 91 11:43:02
From: Mike Piff <PM1MJP@primea.sheffield.ac.uk>
To: beebe <@nsfnet-relay.ac.uk:beebe@MATH.UTAH.edu>
Subject: Space tokens

% Please forward to DEK.
% The scheme in the footnote on p377 of The TeXbook appears not to work.
%        Mike Piff

[ test code was included, but was replaced by later version, below ]
 -----------------------------------------------------------------------------
 From   Dr M. J. Piff, Department of Pure Mathematics, PO Box 597,
        Hicks Noisy Building Site, Hounsfield Road,
  [ dek:^^^^^^^^^^^^^^^^^^^^^^^^^    beautiful ]
        SHEFFIELD S10 2UN, England.
 Tel.   SHEFFIELD(0742) 768555 Extension 4431.
 JANET  MPiff@UK.AC.SHEF.PA  or MPiff@UK.AC.SHEF.IBM
 -----------------------------------------------------------------------------
 -------
Date: Sat 1 Jun 91 23:32:27-EST
From: bbeeton <BNB@MATH.AMS.COM>
To: mpiff@pa.shef.ac.uk
Cc: beebe@math.utah.edu
Subject: texbook bug, footnote, p377

nelson beebe forwarded to me your bug report on the footnote on p.377
of the texbook.
this was already reported just a couple of months ago.  the attached
correction appears in the most recent errata.tex file (the seventh
such file).
                                                        -- bb
                        --------------------

\bugonpage A377, the bottom 14 lines (3/26/91)

\eightpoint\indent
ASCII \<space>; the macro
also decides whether a space token is explicit or implicit.
\begintt
\newif\ifspace \newif\iffunny \newif\ifexplicit
\def\stest#1{\expandafter\s\the#1! \stest}
\def\s{\funnyfalse \global\explicitfalse \futurelet\next\ss}
\def\ss{\ifcat\noexpand\next\stoken \spacetrue
   \ifx\next\stoken \let\next=\sss \else\let\next=\ssss \fi
  \else \let\next=\sssss \fi \next}
\long\def\sss#1 #2\stest{\def\next{#1}%
  \ifx\next\empty \global\explicittrue \fi}
\long\def\ssss#1#2\stest{\funnytrue {\uccode`#1=`~
  \uppercase{\ifcat\noexpand#1}\noexpand~% active funny space
  \else \escapechar=\if*#1`?\else`*\fi
    \if#1\string#1\global\explicittrue\fi \fi}}
\long\def\sssss#1\stest{\spacefalse}
\endtt
 -------
Date: Tue, 04 Jun 91 10:11:21
From: Mike Piff <PM1MJP@primea.sheffield.ac.uk>
Subject: texbook bug, footnote, p377

I don't think the code you sent works. It gives an error message on \ftoken.
Mine definitely works, and correctly distinguishes the SIX different space
[dek:^^^^^^^^^^^^^^^^  ha ha
        touch\'e [and I sure thought I had tested it ... ]
tokens.

Mike Piff
 -------
Date: Wed, 05 Jun 91 10:25:12
From: Mike Piff <PM1MJP@primea.sheffield.ac.uk>
Subject: Re: texbook bug, footnote, p377

% I attach a cleaned-up version of what I sent before. This looks more like
% the footnote on p377 of The TeXbook.
%        Mike Piff

\newif\ifspace \newif\iffunny \newif\ifexplicit \newif\ifactive
\def\stest#1{\expandafter\s\the#1 \stest}
%  [ dek:                        ^ put ! here in case the token list is empty ]
\def\s{\spacetrue\explicittrue\activefalse\funnyfalse\futurelet\next\ss}
%  [ dek:        ^            ^ \global (see page 301 near bottom) ]
\def\ss{\ifcat\noexpand\next\stoken
      \ifx\next\stoken\let\next=\sss\else\let\next=\ssss\fi
   \else\spacefalse\let\next=\sssss\fi\next}
\long\def\seeifactive#1{\expandafter\seex\string#1\seex}
\long\def\seex#1#2\seex{\def\Temp{#2}\ifx\Temp\empty\global\activetrue\fi}
\long\def\sss#1 #2\stest{\def\next{#1}%
   \ifx\next\empty\else\explicitfalse\seeifactive{#1}\fi}
%  [ dek:                                         ^^
        bug if the token list has length >1 ]
\long\def\ssss#1#2\stest{\funnytrue
   {\escapechar=\if*#1`?\else`*\fi
%  [ dek:                         ^ \relax needed here I think
        [Because TeX wants a space after `*!  Otherwise the escapechar
        isn't changed until after the \if#1\string#2 .]
        diagonalization, eh? ]
      \if#1\string#1\else\global\explicitfalse\seeifactive{#1}\fi}}
\long\def\sssss#1\stest{}
\def\CR{\immediate\write16{}}

  [ dek:
        nice; I had decided in March to give up trying to distinguish
        active ones!  Actually this _doesn't_ quite work, but it is
        my fault (a bug in 3.0: \string^^88 comes out of length 1 when
        ^^88 is not active, but of length 4 when it's active; according
        to page 213 it should be length 1 in both cases).
        Also it fails to distinguish _active_ _funny_ *
                                  from explicit funny *,
        Also there's a problem when you make |_| active because string
        converts that into a space token!  Then \seex will have a
        runaway argument because an undelimited parameter #1 can't be
        a space token.
        +-------+
        | Aargh |
        +-------+
        _Also_ a problem when \next is \futurelet to be \if ...
  ]

\def\report{%
   \ifspace
      \ifexplicit
         \message{explicit}%
      \else
         \message{implicit}%
         \ifactive
            \message{active}%
         \fi
      \fi
      \iffunny\message{funny}\else\message{normal}\fi
      \message{space}%
   \else
      \message{nonspace}
   \fi
   \CR
}


% and now, a few tests of the various possibilities

\newtoks\Test

\def\1{\let\stoken= }\1 %

\catcode`\!=\active
\def\2{\let!= }\2 %    ! active let to space

\uccode` =`*
\uppercase{\uppercase{\def\fspace{ }\let\ftoken= } }
% \fspace expands to *space, \ftoken let to *space

\catcode`[=\active
\edef\3{\let\noexpand[=\fspace\fspace}\3% [active let to *space

  [ dek:                                        where used? ]

\CR

\Test={ }     % explicit normal space
\stest\Test\report

\Test=\expandafter{\fspace} % explicit funny space
\stest\Test\report

\Test={\stoken}  %implicit normal space
\stest\Test\report

\Test={\ftoken}   % implicit funny space
\stest\Test\report

\Test={!}     % active normal space
\stest\Test\report

\catcode`|=\active \let|= \ftoken  % active funny space
\Test={|}
\stest\Test\report

\end

  [ dek:
        see enclosed test [p377.tex, p377.log] which I think _really_
        puts the thing through its paces
        [actually I did additional tests too because the enclosed
        trials always set \escapechar to `?]
  ]

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

p377  dated September 20, 1991 at 1014


% decoding space tokens (footnote on page A377)
% solution found with help of Mike Piff

\newif\ifspace \newif\iffunny \newif\ifexplicit \newif\ifactive
\def\stest#1{\funnyfalse \expandafter\s\the#1! \stest}
\def\s{\global\explicitfalse \global\activefalse \futurelet\next\ss}
\def\ss{\ifcat\noexpand\next\stoken\let\nxt\sx\else\let\nxt\ns\fi\nxt}
\def\sx{\spacetrue\ifx\next\stoken\let\nxt\sss\else\let\nxt=\ssss\fi\nxt}
\long\def\sss#1 #2\stest{\def\next{#1}%
  \ifx\next\empty\global\explicittrue \else\testactive#1\s\fi}
\long\def\ssss#1#2\stest{\funnytrue{\escapechar=\if*#1`?\else`*\fi\relax
  \if#1\string#1\uccode`#1=`~ % we assume that ~ is an active character
    \uppercase{\ifcat\noexpand#1}\noexpand~\global\activetrue
    \else\global\explicittrue\fi
  \else\testactive#1\s\fi}}
\long\def\ns#1\stest{\spacefalse}
\long\def\testactive#1#2\s{\expandafter\tact\string#1\s\tact}
\long\def\tact#1#2\tact{\def\next{#2}\ifx\next\xs\global\activetrue
  \else\ifx\next\empty \global\activetrue\fi\fi} \def\xs{\s}

\def\report#1{\message{#1:}%
  \ifspace
    \message{\ifexplicit ex\elseim\fi plicit}%
    \ifactive\message{active}%
    \message{\iffunny funny\else normal\fi space}%
  \else\message{nonspace}
  \fi
  \CR}
\def\CR{\immediate\write16{}}

\newtoks\Test

\def\1{\let\stoken= }\1 % implicit normal space token
\catcode`\!=\active
\def\2{\let!= }\2 % active normal space token
\uccode` =`*
\uppercase{\uppercase{\def\fspace{ }\let\ftoken= } }
% \fspace expands to explicit funny space, \ftoken is implicit funny *space
\uccode` =0

\CR

\test={ }
\stest\test\report1 % explicit normal space

\test=\expandafter{\fspace}
\stest\test\report2 % explicit funny space

\test={\stoken}
\stest\test\report3 % implicit normal space

\test={\ftoken}
\stest\test\report4 % implicit funny space

\test={!}
\stest\test\report5 % implicit active normal space

\catcode`\^^99=\active \let^^99= \ftoken
\test={^^99\par}
\stest\test\report6 % implicit active funny space

{\catcode`\*=\active \let*= ^^99
\test={*}
\stest\test\report7 % implicit active funny space
}

\test={}
\stest\test\report8 % nonspace

\test={{ }}
\stest\test\report9 % nonspace

\test={\if}
\stest\test\report{10} % dangerous nonspace

\test={ \par}
\stest\test\report{11} % explicit normal space

{\catcode`\ =\active\let =\stoken\stoken%
\test={ }%
\stest\test\report{12} % implicit active normal space
}

{\catcode`\ =\active\let =\stoken\ftoken%
\test={ }%
\stest\test\report{13} % implicit active funny space
}

\bye

(end of file)

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

This is TeX, Version 3.14a for SunOS (preloaded format=plain 91.9.20)
                                                           20 SEP 1991 10:13
  [ dek:             ^^^^^ Note!
        [Same variations do _not_ work with version 3.14;
        3.14a is an experimental "\alpha test" for next release]
  ]
**p377.tex
(p377.tex
\test=\toks12


1: explicit normalspace

2: explicit funnyspace

3: implicit normalspace

4: implicit funnyspace

5: implicit active normalspace

6: implicit active funnyspace

7: implicit active funnyspace

8: nonspace

9: nonspace

10: nonspace

11: explicit normalspace

12: implicit active normalspace

13: implicit active funnyspace

 )
No pages of output.

(end of file)
 

########################################################################

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Character code reference
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%                       Upper case letters: ABCDEFGHIJKLMNOPQRSTUVWXYZ
%                       Lower case letters: abcdefghijklmnopqrstuvwxyz
%                                   Digits: 0123456789
% Square, curly, angle braces, parentheses: [] {} <> ()
%           Backslash, slash, vertical bar: \ / |
%                              Punctuation: . ? ! , : ;
%          Underscore, hyphen, equals sign: _ - =
%                Quotes--right left double: ' ` "
%"at", "number" "dollar", "percent", "and": @ # $ % &
%           "hat", "star", "plus", "tilde": ^ * + ~
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

[ end of message 032 ]
-------