summaryrefslogtreecommitdiff
path: root/language/typingtex/multicategory.tex
blob: 47b23aabca19201a237887799f1cd541917f6b2f (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
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
 %%%% MultiCat.tex --- Le d'efi de Yannis Delmas-Rigoutsos
 %% et  Daniel Taupin.
 %% Version alpha. 
 %% Affichage: ftp matups.matups.fr directory TypingTeX.dir.
 %% Sur la liste GUT <gut@dmi.ens.fr> archiv'ee sur ftp ftp.cicb.fr,
 %% et suite `a des critiques g'en'e'rales de Yannis, Daniel 
 %% a note (Fri, 11 Jun 1993) que:
 %% <<\def\truc#1:#2>{....} se plante quand on a mis french 
 %% comme option de style.>> 
 %% Or, french est un logiciel de B. Gaulle qui souvent active
 %% ;  et  > .  Cette constatation s'applique `a tout logiciel
 %% qui qui osera faire autant, et il semble que tous les logiciels
 %% grands et petits qui offrent une typographie francaise
 %% activent ; : ! ? du moins optionellement.  C'est bien le cas de
 %% fe-Plain de Desarmenien de 1987(?) et ses 
 %% extensions/revisions pour d'autres formats  
 %% fran_cais fournis par format-dumper-cm (ou -ck),
 %% que j'affiche moi-m^eme sur ftp matups.matups.fr.

 %% Voici tentatives de solutions en 'etat de marche, dont seulement
 %% celle qui utilise \csname...\endcsname est `a retenir.

 %% J'invite les tous les texperts fran_cais qui sentent 
 %% une m'efiance `a l/'egard de l'activation que je 
 %% pratique de formuler des critiques pr'ecises.

 %% A la fin de ce fichier se trouve des pol'emiques sur l'activation
 %% pass'ees par Yannis, Daniel ou moi-m^eme sur la liste GUT.

 %% Pour simplifier l/'ecriture des exemples on supposera que 
 %% le macro \truc#1;#2> a le m^eme *effet* qu'un macro
 %% \Truc#1#2.  Ce n'est gu`ere une restriction.  En effet,
 %% \let\oldtruc\truc
 %% \def\Truc#1#2{\oldtruc#1;#2>}
 %% semble arranger cela.
 %%
 %% On supposera aussi que le \truc de Taupin
 %% a 'et'e programm'e `a l'origine pour categorie 12

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % -------- couper
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%
 %%%% (1) Solution de pure politesse
 %%% --- on avertit l'utilisateur qu'il devra 
 %%% maintenir les s'eparateurs de cat'egorie other
 \chardef\trucAt\catcode`\@
 \catcode`\@=11
 \def\trucms@g{%
    \immediate\write16{}%
    \immediate\write16{ *** Sorry, the macro \noexpand\truc requires}%
    \immediate\write16{ *** both \string; and \string> to have category 12.}%
    \immediate\write16{ *** Try switching off national typography mechanisms.}%
    \immediate\write16{ *** Or seek help from a TeX programmer.}%
 }
 \newcount\scratch
 \def\truc#1;#2>{\count255=\catcode`\;%
 \multiply \count255  by \catcode`\>%
 \advance\count255 by -144 \multiply \count255  by \count255  
 \ifnum\count255 >\z@
   \trucms@g
 \else
   \Truc{#1}{#2}%
 \fi}

\catcode`\@=\trucAt

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %% Test
\def\Truc#1#2{[#1][#2]}

\truc aaaaa>>>aa{;}aaaa;{bbbb>>bbbbb}>

\end

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % -------- couper
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%
 %%%% (2) Solution 'econome *FAUTIVE* (voir remarque (B))
 %%% --- semble applicable tant que les arguments de \gadget
 %%% ne contiennent pas les s'eparateurs (entre accolades).
 %%% Le macro et ses arguments sont prot'eges dans cette 
 %%% version par un groupement TeX.
 
 \chardef\trucAt\catcode`\@
 \catcode`\@=11
 
 \def\truc{\trucA\trucB}
 \def\trucA{\begingroup\catcode`\;=12\catcode`\>=12}
 \def\trucB#1#2{\Truc{#1}\Truc{#2}\endgroup}

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %% Test
 \def\Truc#1#2{[#1][#2]}
 
 \truc aaaaa>>>aa{;}aaaa;{bbbb>>bbbbb}>
 
 \end

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % -------- couper
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%
 %%%% (3) Solution 'econome bis *FAUTIVE* (voir remarque (B))
 %%% --- semble applicable tant que les arguments de \gadget
 %%% ne contiennent pas les s'eparateurs (entre accolades).
 %%% Pas de protection par groupement.
 
 \chardef\trucAt\catcode`\@
 \catcode`\@=11
 \chardef\trucscoloncat@
 \chardef\trucgrcat@
 \def\truc{\trucA\trucB}
 \def\trucA{\trucscoloncat@=\the\catcode`\;%
              \trucgrcat@=\the\catcode`\>
      \catcode`\;=12\catcode`\>=12
      \Truc{#1}\Truc{#2}%
      \catcode`\;=\trucscoloncat@\catcode`\>=\trucgrcat@
     }
 \def\trucB#1#2{\Truc{#1}\Truc{#2}\endgroup}

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %% Test
 \def\Truc#1#2{[#1][#2]}
 
 \truc aaaaa>>>aa{;}aaaa;{bbbb>>bbbbb}>
 
 \end

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % -------- couper
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%
 %%%% (4) Solution \csname ... \endcsname
 %%% --- valable meme si les arguments contiennent les 
 %%% s'eparateurs  ;  et  >   (prot'eg'es par accolades TeX).
 %%% --- une fragilit'e de cette solution est `a remarquer.
 %%% Les changements de categorie de ; et > (par exemple
 %%% induits par changement de langue) ne doivent pas
 %%% intervenir `a l'int'erieur des arguments de macro.
 %%% Ce probl`eme suggre la politique suivante:
 %%% Les changements de langue routines ne doivent pas
 %%% changer la cat'egorie de caract`eres.
 %%% Le changement de cat'gorie est une affaire de texperts
 %%% qui sauront le faire au bon endroit, en particulier
 %%% pas dans l'argument d'un macro.
 %%% Cette politique est d'ej`a suivi a peu pr`es par les
 %%% formats fran_cais-anglais g'er'es par format-dumper...


\chardef\trucAt\catcode`\@
\catcode`\@=11
\let\EX@\expandafter
\let\@CS\csname\let\E@CS\endcsname
\begingroup
\catcode`\;=12\catcode`\>=12
\EX@\gdef\@CS truc1212\E@CS#1;#2>{\Truc{#1}{#2}}
\catcode`\;=13\catcode`\>=12
\EX@\gdef\@CS truc1312\E@CS#1;#2>{\Truc{#1}{#2}}
\catcode`\;=12\catcode`\>=13
\EX@\gdef\@CS truc1213\E@CS#1;#2>{\Truc{#1}{#2}}
\catcode`\;=13\catcode`\>=13
\EX@\gdef\@CS truc1313\E@CS#1;#2>{\Truc{#1}{#2}}
\endgroup

  \def\truc{\edef\temp{truc\the\catcode`\;\the\catcode`\>}%
     \EX@\@CS \temp\E@CS}

\catcode`\@=\trucAt

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %% Test
\def\Truc#1#2{[#1][#2]}

\truc aaaaa>>>aa{;}aaaa;{bbbb>>bbbbb}>

\end

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 % -------- couper
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%
 %%%%%%    REMARQUES
 %%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

  (A)   Chacune solution semble avoir une version robotise' dont le 
syntaxe serait du genre:

     \reconstruct\gadget#1;#2>\endreconstruct

mais la loudreur de ce genre de programmation est un grave d'efaut.
 

  (B)   Pi`ege:  Savoir au moment de la saisie quelle
cat'egorie recevera un caract`ere qu'on tape (il re_coit sa cat'egorie une fois pour
toutes `a l'entr'ee dans TeX) est fort difficile.  Par exemple

\long\def\preread#1{#1} \catcode`\;=13 \preread{\gadget xxx ; yyy>}

va faire en sorte que le ; dans xxx ; yyy recoit la categorie 13.

     Ainsi "solutions" (2) et (3) font que d'elimitateur voulu  ";" est
introuvable.  Solutions (2) et (3) sont donc s'ereusement compromises.
    
     La solution (3) est l'eg`erement compromise.  Elle ne change pas
de cat'egories elle m^eme.   Mais il ne faut pas que les changements
de langue changent cat'egorie --- au moins dans des arguments
de macro. Notons que pour fe-Plain fe-amstex etc. la ponctuation  ;
: ? !  maintient normalement cat'egorie 13 malgr'e les changements
entre \Francais et \Anglais.

 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%
 %%%%%%    DIVERS POL'EMIQUES SUR L'ACTIVATION
 %%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

    #43         10-JUN-1993 15:10:15.04 NEWMAIL
From:   CCPNGW::"gut-request@nef.ens.fr"
To:     gut@dmi.ens.fr
CC:     delmas@clipper.ens.fr (Yannis Delmas-Rigoutsos)
Subj:   Re: ... (Super (La)ToX en fait...)

[...]
 
1) Les changements de catcodes posent des proble`mes avec des jeux
de macros, par exemple pour tout ce qui est trace' de diagrammes
mathe'matiques. Par exemple pour utiliser XY-Pic je dois rendre normaux
< et >, d'ou` la ne'cessite' d'avoir:
        /"<<"/  ->  "\\oguill "  ++
        /">>"/  ->  "\\fguill "  --

1') C'est la me^me raison qui fait que je ne m'amuse surtout pas a`
ajouter des caracte`res actifs. J'ai ainsi eu a` m'arracher les cheveux
pour saisir du Grec pour l'annuaire de l'Ecole: comme French.sty e'tait
installe' il y avait un certain nombre de caracte`res actifs qui
empe`chaient une ligature normale formant les accents, les esprits,
ou le iota souscrit. On peut toujours faire un changement de catcodes,
pour du texte mais c,a devient re'ellement du de'lire quand on doit
faire cela pour des arguments de macros,... (\truc{\grec >'h}, me^me
si \grec change les catcodes ne marche pas).

2) Il faut une saisie spe'ciale des espaces devant les ponctuations pour
contenter french.sty. C'est pre'cise'ment ce que font les re`gles:
        /"(!"/    ->  idem
        /"~"?!/   ->  "~!"
        /"(?"/    ->  idem
        /"~"?"?"/ ->  "~?"
        /"~"?;/   ->  "~;"
        /"~"?:/   ->  "~:"

[...]

                                  \
        Yannis Delmas-Rigoutsos    \
                                    \
----------------------------------

adresse postale         : Ecole Normale Supe'rieure
                               45, rue d' Ulm
                            75230, Paris CEDEX 05.
te'le'phone             : [33] (1) 44 32 20 65 (ENS)
adresses e'lectroniques : delmas@ens.fr,@logique.jussieu.fr,(@FRULM63.bitnet)

----------------------------------


    #43         11-JUN-1993 05:45:11.31     NEWMAIL
From:   CCPNGW::"gut-request@nef.ens.fr"
To:     gut@dmi.ens.fr, kris@diku.dk
CC:     
Subj:   Translit&CorToX r'eponses ...


[...]

     J'accepte ce que dit ici Yannis en tant que louange de
vertus de Translit. Quand on construit un pr'eprocesseur on
essaie naturellement d'en tirer un maxi!

     Mon approbation est pourtant mitig'ee par le constat que
ces  ~  f^achent l'oeil!

     Malheureusement on peut interpreter ces remarques comme une
requisitoire contre l'exploitation de caract`eres actifs et donc
contre email-fr. D'accord qu'il faut une longue experience pour
programmer un caract`ere actif qui se trouve dans le zone ascii;
mais l'activation (de ;:?!) est une voie que j'emprunte (suivant
Desarmenien) depuis d'ebut 1989 --- sans le moindre regret;
l'activation de `  '  et  ^  par email-fr ne m'affolle donc pas.
Quant `a l'utilisateur, en cas de difficult'e, il d'esactive
automatiquement en 'eteignant localement email-fr. Si on signale
clairement `a un programmeur, comme K. Rose, auteur de xy-pict,
que < et > etc. risquent d'etre actifs il pourra arranger ses
macros pour les rendre *indiff'erentes* `a l'activation de < >
etc.  Dans le cas des formats pr'eexistants l'indiff'erence `a
l'activation bien connu de ;:?! est r'ealise'e par de petits
patchs (dus a Spivak et/ou moi-m^eme) lesquels se trouvent dans
fe-format-dumper sur ftp matups.matups.fr.  Et naturellement je
crois tr`es fort `a ce que les prochaines versions de ces
formats incorporent de tels patchs pour 'eliminer d'avance tout
probl`eme.

      Les plusieurs probl`emes d'activation que Yannis cite ont
tous des solutions satisfaisantes, dont plusieurs ont d'ej`a
'et'e mentionn'es sur cette liste.  Me contacter pour des
probl`emes sp'ecifiques, surtout en ce qui concerne email-fr ou
(affaire en principe totalement disjointe!!) fe-format-dumper.
D'ailleurs ce dernier contient une discussion utile sous forme de
remarques.  (On y trouve provisoirement amstexfr.sty qui permet
l'activation de  ;:?! pour AmSLaTeX; ce fichier appelle
amstex.sty et ajoute un petit patch.)

[...]

                 Laurent S

From:   CCPNGW::"gut-request@nef.ens.fr"
To:     gut@dmi.ens.fr
CC:     delmas@dmi.ens.fr (Yannis Delmas-Rigoutsos)
Subj:   French et caracteres actifs


Bon, je ne vais pas parler de Translit & al. mais je vais (re)-soulever
un point e'voque' par la discussion et qui concerne beaucoup de gens.

Il s'agit d'un re'quisitoire contre l'activation des lettres,...

Je me contenterais de poser un petit proble`me dont j'attends qu'on me
propose une solution e'le'gante, e'ventuellement simple.

a*  French est PEUT-ETRE utilise' (on ne sait pas a` priori)
b*  on veut utiliser du grec, qui est appele' par \grec
b'* d'autres langues peuvent s'ajouter arbitrairement
    (j'utilise \viet et \russe)
c*  les divers e'le'ments (franc,ais, grecs et autres langues)
    sont employe's comme arguments de macros.


Les deux seules solutions que j'ai trouve' sont:

1) on teste l'existence de la macros de french desactivant ce qui
doit l'e^tre ou on de'sactive soi-me^me.

-> proble`me: le point *c* n'est pas respecte'

2) on defini <, > et e'ventuellement | comme valant la chai^ne les
repre'sentant.

-> proble`me: French peut changer, d'autres caracte`res actifs peuvent
              e^tre ajoute's, au besoin en concurenc,ant les de'finitions
              de French.

2') on rede'fini tous les caracte`res actifs comme valant leur chai^ne
naturelle.

-> proble`me: ine'le'gant.


Le gros proble`me de French, de ce point de vue, est qu'il fait
tre`s salement ses de'finitions au niveau du \begin{document}.
Autrement dit, on ne peut pas utiliser un style ne serait-ce
que pour choisir des options de French. Sauf, bien entendu, a`
rede'finir, comme French, la macro \document.

Il n'est pas rare, ainsi, de voir dans mes fichiers de style:
        \let\french@orig@begindocument=\document
        \def\document{%
          \french@orig@begindocument%
          ...mes options...%
          }

J'en arrive donc a` ma grosse critique: les caracte`res actifs de French
ne sont qu'une partie de l'iceberg, son GROS proble`me est de ne
pas e^tre modulaire. French croit toujours qu'il est tout seul:
de`s qu'il s'agit de faire des maths ou d'autres langues, c'est tre`s
ge^nant (on ne peut pas modifier tous les jeux de macros qu'on rec,oit!).

Voila, sinon French est tre`s bien.

      Y

__________________________________
                                  \
        Yannis Delmas-Rigoutsos    \
                                    \
----------------------------------

adresse postale         : Ecole Normale Supe'rieure
                               45, rue d' Ulm
                            75230, Paris CEDEX 05.
te'le'phone             : [33] (1) 44 32 20 65 (Ecole), 47 46 96 41 (pers.)
adresses e'lectroniques : delmas@ens.fr,@logique.jussieu.fr,(@FRULM63.bitnet)

----------------------------------

    #45         11-JUN-1993 14:33:09.44   NEWMAIL
From:   CCPNGW::"gut-request@nef.ens.fr"
To:     GUT@nef.ens.fr
CC:     
Subj:   RE:  French et caracteres actifs

Avis partage par DT quant a la non-modularite de French.

Et les caracteres actifs ne peuvent plus etre utilises comme delimiteurs
de procedures, ex:

\def\truc#1:#2>{....} se plante quand on a mis french comme
option de style. De meme, \write\xxx{ choses : machins }
insere des \relac et des \penalty dans le fichier de sortie.
Et quand on utilise TeX pour ecrire du metafont a usage ulterieur,
c'est epouivantable (bien que contournable par essais
et erreurs).

Toutefois, \nofrenchtypography annule pas mal de catcodes actifs.
(mais attention: les catcodes ne sont pas digeres au meme niveau
que les macros !


================== RFC 822 Headers ==================
Received: by nef.ens.fr (5.65c8/ULM-1.0)
Message-Id: <199306111224.AA29674@nef.ens.fr>
Received: by nef.ens.fr (5.65c8/ULM-1.0)
Received-Date: Fri, 11 Jun 1993 14:24:35 +0200
Date: 11 JUN 93 14:28:34.28-GMT
Errors-To: listman@nef.ens.fr
Reply-To: GUT Distribution List <gut@dmi.ens.fr>
X-Sequence: 77


    #42         14-JUN-1993 03:36:16.19  NEWMAIL
From:   CCPNGW::"gut-request@nef.ens.fr"
To:     gut@dmi.ens.fr
CC:     
Subj:   activons-nous!   


 ***** activons-nous! *****  

     Craindre des caract`eres actifs est absurde, car on
se nierait ainsi la pleine puissance du concept de macro
qui est la fondation m^eme du langage TeX. Les texperts
doivent remplacer leur peur par une combinaison de
savoir, diligence, et prudence!

    Yannis Delmas-Rigoutsos a r'ecemment remis
l'activation en cause:

 YDR> Je me contenterais de poser un petit proble`me dont
 YDR> j'attends qu'on me propose une solution e'le'gante

Mais il me semble que Yannis ne donne que des *solutions*
en vrac `a des probl`emes non-sp'ecifi'es d'activation!
Heureusement, Daniel Taupin offre ensuite deux probl`emes
typiques et concr^ets qui surgissent quand  :  et  >
changent de cat'egorie entre 12 (=other la valeur le plus
usit'ee) et 13 (=active, la valeur qui accorde le statut de
macro).

 DT> \def\truc#1:#2>{....} se plante quand on a mis french
 DT>  comme option de style.

 DT> \write\xxx{ choses : machins }  insere des [...] dans 
 DT> le fichier de sortie.

Le deuxi`eme probl`eme est joliment r'esolu par le macro 
"inexpanded write" qui fut trouv'ee juste `a temps pour
LaTeX 3. 

Pour le probl`eme de \truc, il y a une solution tr`es
robuste. Il y plusieurs versions d'un tel macro \trucother
\trucfrench, etc.  --- chacune cuisin'ee par la m^me
recette mais dans les conditions de cat'egorie
appropri'ees. Ensuite le changement vers french doit
s'electionner la bonne version, soit par \let
\truc=\trucfrench. L'avantage est que #1 peut ^etre
{...>...:...}.[Plus loin une petite fragilit'e va 
appara^itre,  voir 17juin.]

     Mais le d'efaut est que l'option french doit d'avance
connaitre \truc. C'est raisonable pour un \truc de LaTeX
ou amstex (de tels \truc's sont rares), mais parfaitement
d'eraisonable pour un \truc de xy-pic.

     Kristoffer Rose, l'auteur de xy-pic sera donc
contraint `a utiliser d'autres id'ees pour ses \truc's `a
lui, dont certaines que Yannis a mentionne'es.  Par exemple
\truc peut avoir l'expansion \trucA\trucB o`u \trucA donne
cat'egorie 12 (other) `a  : et  >  et m'emorise les
cat'egories ant'erieures ('eventuellemnt par simple
groupement). Ensuite \trucB a le syntaxe "apparante" de
\truc mais les  :  et  > sont de cat 12 (other); les
cat'egories d'origine de  :  et >  seront restaur'es `a la
sortie. D'efaut--  : et  > seront de cat'egorie other dans
les arguments #1 et #2. [Cette solution a une faute 
fatale voir 17juin.]

     Il y a bien d'autres d'astuces; je suis s^ur que
j'en ignore certaines!

     On fr^ole ici des limites arbitraires de TeX. En
effet, un TeX 'etendu pourrait facilement r'esoudre
d'efinitivement le probl`me \truc (sans laisser de
d'efaut r'esiduel), en introduisant des "token classes"
comme param`etres de macros. Les classes en question ici
sont: "character token of ascii code `\:" et "character
token of ascii code `\>". La variabilit'e de cat'egorie
permise serait limit'ee par le programmeur, normalement `a
12  et 13.

     Les utilisateurs fran_cais de TeX se doivent de
constituer un lobby vigoureux aupr`es des programmeurs
pour assurer que les logiciels TeX supportent bien les
changements de cat'egorie qui s'av`erent utiles en France.
Commen_cons par l'AmS et continuons avec les individus de
bonne volont'e comme Kristoffer Rose!

     Laurent S



Date: 14 Jun 93 13:28:29+0200
From: TAUPIN@FRUPS51.bitnet
Message-ID: <199306141106.AA21115@nef.ens.fr>
Subject: RE:  activons-nous!
To: GUT@nef.ens.fr
Reply-To: GUT Distribution List <gut@dmi.ens.fr>
Received-Date: Mon, 14 Jun 1993 13:06:22 +0200
Errors-To: listman@nef.ens.fr
X-Sequence: 85
Status: R

Activer d'autres caracteres que ceux de plain.tex ou latex est aussi
prudent que de construire SON installation electrique en 154volts et 277 Hertz.

Ok dans une ile deserte, mais sinon on a des emmerdes epouvantables des qu'on
veut utiliser ou transmettre des TeXtes a l'exterieur.

En effet l'activation des caracteres se produit a l'entree et un caractere
actif le reste meme dans une macro ou on a change son \catcode.

Donc un principe: redefinir des MACROS est inoffensif, ou redefinir les macros
de caracteres originellwement actifs. En revanche, activer ou desactiver
des caracteres conduit a dix fois plus de desastres que ca ne cree d'avantages.

Je pense en particulier aux pbs de french.sty quand on veut l'utiliser
avec d'autres logiciels avec lesquels il n'a pas ete teste (y compris
les logiciels et macros maison).


Date: 15 Jun 93 00:32:08+0200
From: Larry Siebenmann <ls@mathp7.jussieu.fr>
Message-ID: <9306142211.AA00809@frmap711.mathp7.jussieu.fr>
To: gut@dmi.ens.fr,
	kris@diku.dk
Subject: Macros multivoltage
Reply-To: GUT Distribution List <gut@dmi.ens.fr>
Received-Date: Tue, 15 Jun 1993 00:10:07 +0200
Errors-To: listman@nef.ens.fr
X-Sequence: 87
Status: RO


       ****** Macros multivoltage ******

       L'anologie de Daniel Taupin entre categorie TeX et
tension de courant secteur n/est pas mal au fond. Les
emmerdements de tension, surtout dues aux normes divergentes
120Volts (USA) et 220Volts (Europe) sont r'eels et actuels.
J'ai travers'e l'Atlantique `a plusieurs reprises avec un petit
Macintosh 220Volts et j'ai du acheter en catastrophe des
transfos ou ouvrir le Mac pour changer un contact sur la carte
d'alimentation. Pour tout dire j'ai aussi p'et'e quelques
fusibles.  Mais tout ca c/est FINI depuis quelques ann'ees, car
Apple s/est reconnu fabricant INTERNATIONAL et fabrique
dor'enavant des micros MULTIVOLTAGE et d'ailleurs
multifr'equence!

       Est-ce donc ridicule de demander que les logiciels TeX
soient adapt'es `a bien supporter le changement de cat'egorie
entre 12 et 13 pour les charact`eres ;:?! etc. qu'on a envie
d'activer en Europe? Pour chaque logiciel TeX (AmSTeX par exemple
ou xy-pic) il s'agit d'une r'evision peu couteuse en temps ---
donn'ee la texnologie dont on dispose en 1993.

       Comme j'ai d'ej`a dit, il suffit d'avoir la clairvoyance
de demander ces petits changements --- question d'^etre un
groupe d'utilisateurs de TeX suffisamment organis'es pour se faire
entendre!

       La pol'emique de Taupin contre l'activation termine sur
une affirmation assez sp'ecifique:

 > En revanche, activer ou d'esactiver des caracteres conduit
 > a dix fois plus de desastres que ca ne cree d'avantages.

 > Je pense en particulier aux pbs de french.sty quand on veut
 > l'utiliser avec d'autres logiciels avec lesquels il n'a pas
 > ete teste (y compris les logiciels et macros maison).

Bon, si on suit mes conseils, il restrera quelques d'esastres
quand on utilisera des jeux de macros "maison" c/est-`a-dire de
la main d'amateurs inconscients.  Grande prudence donc en Europe
avec de tels logiciels jusqu'au jour o`u leur bonne tenue est
verifi'ee! Entretemps, on peut 'eteindre l'activation quand il
faut, ou 'eviter ce jeu l`a, ou encore demander `a un texpert de
"patcher".  Il serait bon que les programmeurs affichent leurs
tolerances `a cet egard, par exemple:

  %% The macros of this package tolerate category 12 OR 13
  %% for the ascii characters  : ; ? ! < > ` ' " ^
  %% See TUG recommendations of 199X, ...

aussi bien que leurs exigeances.

     J'estime que Taupin recommande une voie sans activation
qui m`ene l/Europe vers des environements de saisie barbares
offrant une qualit'e typographique m'ediocre. Si par exemple on
se d'ecide `a taper ~: ~; ~? ~! pour 'eviter d'activer : ; ? !
la saisie est d'esagr'eable `a ex'ecuter, d'esagr'eable `a
relire, et probablement charg'ee de fautes car on oublie
fatalement quelques ~!

     Si Daniel! --- l'activation rapporte d/'ej`a plus qu'elle ne
co^ute; et si GUT se mobilise le bilan sera enti`erement
positif.

    Laurent S


PS pour Jacques Andr'e:  Par la m^eme logique je suis `a priori
tout `a fait pour une norme `a huit bits pour le courrier
'electronique comportant les lettres fran_caises accentu'ees.
Mais il faut de me convaincre qu'il s'agit d'une possiblilit'e
r'ealisable!

Date: 15 Jun 93 12:10:08+0200
From: TAUPIN@FRUPS51.bitnet
Message-ID: <199306150948.AA03485@nef.ens.fr>
Subject: RE:   Macros multivoltage
To: GUT@nef.ens.fr
Reply-To: GUT Distribution List <gut@dmi.ens.fr>
Received-Date: Tue, 15 Jun 1993 11:48:01 +0200
Errors-To: listman@nef.ens.fr
X-Sequence: 88
Status: RO

Activation: A moins d'etre introduite en des endroits definis au micron
pres et avec des precautions exorbitantes, la macro:

\def\truc#1:#2;{....} se plante avec french.sty, et marche sans.

En outre: \write\xxx{mon baratin ; } insere un \relax avant le
point-virgule avec french. On peut y remedier en definissant la macro
qui fait le wrirte avant l'entree en scene de french, sans doute avant
le \begin{document} (ce qui est streng verboten en principe). Or ceci
cree des katastrofes si le texte ecrit est destine a etre compile
ulterieurement en Pascal iou en Metafont !

Je dis que si on veut un ; avec un comportement different, il ne faut
pas activer le ; mais definit une macro comme \; !

Pour la saisie des messages, tu auras raison quand tu aura contraint -
le kalachnikoff dans le dos - MS-DOS a utiliser ISO-Latin1 au lieu de
850, idem pour les Mac's. C'est pas piour demain. Sinon, navre, il n'y a
que les caracteres codes de 32 a 126 qui soient portables!