 %%%% 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!




