\def\fileversion{1.2}%
\def\filedate{2 January 1995}%
\def\docdate{2 January 1995}%
\def\CheckSum{4615}%
% \changes{v0.1}{28-May-1993}{first release}
% \changes{v0.8}{17-June-1993}{macros to draw accent on character added (taken from DCLFONT.STY)}
% \changes{v0.9}{15-October-1993}{revised naming convention, comments, and unify style}
% \changes{v1.0}{16-May-1994}{Add suppression of character translation, put in DOC format}
% \changes{v1.1}{26-September-1994}{Redesign of code to improve
%                                   memory usage, French text for the
%                                   introduction.}
% \changes{v1.2}{2-January-1995}{Suppression of some ``loop'' command and
%                                  expansion of code instead. This save many space on
%                                  input stack size. Mainly the files  
%                                  initcar and in codepage were changed.}
% \MakeShortVerb{|}
%
% \iffrench
% \title{\texttt{codepage} un style pour traiter
%        diff\'e{}rents code de page dans le m\^e{}me document} 
% \author{Alain Aubord}
% \maketitle
% \begin{abstract}
%    Cet article d\'e{}crit les nouvelles commandes disponibles pour
%    traiter un code de page\ft{Un code de page est une convention qui d\'e{}finit une association
%    unique entre un caract\`e{}re et un nombre qui le repr\'e{}sente dans un ordinateur.} ainsi que les
%    probl\`e{}mes rencontr\'e{}s pour r\'e{}aliser cette implantation uniquement en \TeX{}.
% \end{abstract}
%
% \section{Introduction\label{INTRO}}
%
%    La version 3 de \TeX{} permet de  composer plus facilement des documents dans une autre langue
%    que l'anglais. En effet, cette version autorise l'usage de caract\`e{}res cod\'e{}s sur 8 bits (valeurs
%    de 0 \`a{} 255) dans le texte source et de multiples tables de c\'e{}sures dans un format.
%
%    Ces am\'e{}liorations \'e{}taient n\'e{}cessaires, mais pas suffisantes. En effet, il est encore n\'e{}cessaire
%    de disposer de styles adapt\'e{}s aux diff\'e{}rentes langues 
%    ainsi que des polices de caract\`e{}res contenant
%    des signes sp\'e{}cifiques (comme les caract\`e{}res accentu\'e{}s\ft{La composition, c'est-\`a{}-dire 
%    l'utilisation d'une commande de positionnement d'un accent suivie par la lettre \`a{} accentuer, pr\'e{}sente
%    l'avantage de pouvoir accentuer n'importe quel caract\`e{}re mais emp\^e{}che la c\'e{}sure correcte d'un mot
%    accentu\'e{}.}, les guillemets fran\c c{}ais...).
%
%
%    Le style \Fich{Babel} et les polices  \textsc{Dc} ont \'e{}t\'e{} d\'e{}velopp\'e{}s pour r\'e{}soudre ces probl\`e{}mes.
%    Cependant, il reste encore un probl\`e{}me de taille: les diff\'e{}rents codes de page existant sont
%    incompatibles. Un document \'e{}crit dans un code de page doit \^e{}tre converti dans un nouveau code de page
%    lorsqu'il est utilis\'e{} sur un ordinateur avec un syst\`e{}me
%    d'exploitation diff\'e{}rent
%    ou avec des polices de caract\`e{}res dont l'encodage correspond \`a{} un autre code de page 
%    (comme les polices \textsc{Dc}).
%     La gestion des
%    diff\'e{}rents codes de page peut se faire de plusieurs mani\`e{}res en \TeX:
%    \begin{itemize}
%       \item Par l'utilisation d'un programme externe de conversion de caract\`e{}res.
%             Lorsqu'un tel programme est bien int\'e{}gr\'e{} dans \TeX{} (comme les 
%             tables \textsc{Tcp} d\'e{}finies par
%             \textsc{EmTeX}), cette solution est tr\`e{}s efficace et agr\'e{}able \`a{} utiliser. Son principal 
%             d\'e{}savantage est le manque de portabilit\'e{}.
%       \item Par l'utilisation de polices virtuelles\ft{Une police virtuelle est un m\'e{}canisme
%             fourni avec \TeX{} version 3 qui permet de changer le vecteur d'encodage d'une 
%             police de caract\`e{}res, de composer une nouvelle police de caract\`e{}res \`a{} partir
%             de plusieurs polices etc.}. Cette
%             solution est tr\`e{}s bien int\'e{}gr\'e{}e dans \TeX\ft{Certains vieux pilotes de p\'e{}riph\'e{}riques ne
%             savent pas utiliser les polices virtuelles.}. Cependant, il est n\'e{}cessaire de 
%             fournir les
%             fichiers d\'e{}crivant la m\'e{}trique et le r\'e{}-encodage de chaque police
%             virtuelle utilis\'e{}e dans un document. 
%       \item Par l'utilisation de la composition pour obtenir un caract\`e{}re accentu\'e{}  (i.e.|\'e| pour
%             \'e).
%             Cette solution fonctionne remarquablement bien avec les polices \textsc{Dc}. Le style fourni
%             pour l'utilisation de ces polices red\'e{}finit tr\`e{}s habilement les commandes qui dessinent un 
%             caract\`e{}re accentu\'e{}. Chaque fois qu'un caract\`e{}re accentu\'e{} existe dans la police, il est
%             employ\'e{} (en lieu et place de la composition). Ce syst\`e{}me est donc parfaitement int\'e{}gr\'e{} dans
%             \TeX{}, mais il est tr\`e{}s d\'e{}sagr\'e{}able de taper et de relire les caract\`e{}res accentu\'e{}s suivant
%             cette m\'e{}thode.
%       \item Par l'utilisation du paquet \Fich{codepage} qui est totalement compatible avec \TeX{} 
%             (version 3). Ce paquet offre en outre la possibilit\'e{} de composer avec \TeX{} un document
%             pr\'e{}vu pour un autre code de page que celui de son propre ordinateur et de d\'e{}clarer des
%             exceptions de c\'e{}sures contenant des syllabes accentu\'e{}es.
%
%             Ce paquet transforme tous les caract\`e{}res sup\'e{}rieurs \`a{} 127 
%             en caract\`e{}re \og actif\fg{}
%             (chaque caract\`e{}re actif est une commande \TeX)
%             et il n\'e{}cessite la transmission de quelques
%             fichiers annexes pour pouvoir composer un document sur un autre syst\`e{}me.
%    \end{itemize}
%
%    Comme on le voit, il n'y a pas de solution parfaite dans tous les cas. Le probl\`e{}me provient d'un manque
%    de norme dans la mani\`e{}re de coder les symboles sp\'e{}ciaux\ft{Si un standard unique devait voir le jour, 
%    il serait d\'e{}fini sur 16 bits (valeur de 0 \`a{} 65535).}.
%
%    \subsection{Le probl\`e{}me des c\'e{}sures\label{HYPHENATION}}
%    \TeX{} effectue une c\'e{}sure automatique des mots en se basant sur une table d\'e{}crivant
%    quelles syllabes peuvent \^e{}tre coup\'e{}es. Cette table est inclue dans le format\ft{Un format est
%    un
%    ensemble de commandes pr\'e{}-d\'e{}finies qui sont analys\'e{}es et enregistr\'e{}es sous une forme sp\'e{}ciale
%    par une variante du programme \TeX{} appel\'e{}e \textsc{Ini}\TeX{}. Le programme \TeX{} peut
%    ensuite
%    charger en m\'e{}moire tr\`e{}s rapidement un format.} et sa forme est fig\'e{}e
%    tant qu'un nouveau format n'est pas reconstruit. Lors de la construction
%    d'une table de c\'e{}sure toutes les syllabes  sont converties en minuscules (en utilisant le
%    \Comm{lccode} de chaque caract\`e{}re) avant d'\^e{}tre enregistr\'e{}es. Pour
%    trouver une c\'e{}sure lors de la composition d'un document,
%    le texte \`a{} couper est traduit en minuscule et compar\'e{} avec les tables
%    pr\'e{}-d\'e{}finies.
%
%    Lorsque les tables de c\'e{}sures utilis\'e{}es lors de la construction du 
%    format et le texte du document utilisent des codes de pages diff\'e{}rents,
%    les caract\`e{}res (dont la valeur est plus
%    grande que 127) du texte \`a{} composer et
%    ceux utilis\'e{}s pour les tables de c\'e{}sure ne correspondront jamais. Aucune
%    c\'e{}sure ne pourra alors \^e{}tre trouv\'e{}e (des exceptions existent cependant).
%
%    Il est \'e{}videmment possible de modifier la table de c\'e{}sure et de reg\'e{}n\'e{}rer
%    un nouveau format, cependant cette solution n'est pas toujours possible
%    ni forc\'e{}ment souhaitable pour plusieurs raisons:
%    \begin{itemize}
%       \item le fichier qui d\'e{}crit la table de c\'e{}sure devrait \^e{}tre identique
%             quel que soit le syst\`e{}me pour obtenir une c\'e{}sure identique
%             partout\ft{Un exemple tr\`e{}s concret de cette situation est l'utilisation
%             de la table de c\'e{}sure anglaise pour des textes fran\c c{}ais. Les tables
%             de c\'e{}sures anglaises sont disponibles et identiques quelle que soit
%             l'implantation de \TeX{}. Lorsqu'on veut transmettre un document \'e{}crit
%             en fran\c c{}ais \`a{} un correspondant dont on n'est pas certain qu'il puisse
%             disposer d'une table de c\'e{}sure fran\c c{}aise, il est toujours possible d'utiliser
%             le table de c\'e{}sure anglaise et d'indiquer les exceptions de c\'e{}sure avec la
%             commande \Comm{hyphenation}. Cette m\'e{}thode fonctionne relativement bien
%             si l'on prend la pr\'e{}caution de red\'e{}finir les commandes qui dessinent les
%             accents sur les caract\`e{}res (comme cela est fait dans le paquet \Fich{codepage}).}.
%       \item la g\'e{}n\'e{}ration d'un format est une op\'e{}ration complexe et d\'e{}licate 
%             qui peut exiger la possession d'autorisations sp\'e{}cifiques (sur une
%             machine partag\'e{}e entre plusieurs utilisateurs).
%    \end{itemize}
%
%    La solution propos\'e{}e par le paquet \Fich{codepage} pour r\'e{}soudre ce 
%    probl\`e{}me consiste en une nouvelle commande \Comm{MakeHyphenationLetter} qui
%    permet de modifier les valeurs associ\'e{}es \`a{} un caract\`e{}re cod\'e{} au-del\`a{} de 127
%    pour utiliser des valeurs compatibles avec la commande \Comm{hyphenation}. 
%
%    \section{L'interface utilisateur}
%    Cet interface a \'e{}t\'e{} con\c c{}u pour \^e{}tre \og le plus simple possible\fg.
%    Seules deux macros (commandes) et quelques constantes sont d\'e{}finies.
%
%    Les diff\'e{}rents codes de page possibles sont d\'e{}finis par des constantes:
%    \begin{description}
%      \item[\Comm{FourThreeSeven}]  pour le code de page 437 du PC; ce code
%           de page est surtout utilis\'e{} avec les syst\`e{}mes ayant l'anglais
%           comme langue principale;
%      \item[\Comm{EightFiveZero}]   pour le code de page 850 du PC. Ce code de 
%           page est semblable au code 437 mais il contient moins de signes 
%           semi-graphiques et math\'e{}matiques et plus de lettres (comme les 
%           caract\`e{}res majuscules accentu\'e{}s). Ce code de page est surtout
%           utilis\'e{} avec d'autres langues que l'anglais.
%      \item[\Comm{IsoOne}] ISO Latin set 1. Cette norme est utilis\'e{}e
%            par de nombreux syst\`e{}mes (la plupart des syst\`e{}mes \textsc{Unix}
%            et \textsc{Windows}). L'encodage \textsc{Dc} des polices \TeX{}
%            suit cette norme pour certains caract\`e{}res (en particulier toutes les lettres).
%            Lorsque ce code de page est utilis\'e{} les caract\`e{}res qui 
%            correspondent exactement aux caract\`e{}res des polices \textsc{Dc}
%            ne deviennent pas \og actifs\fg{} mais gardent le \og catcode\fg{}
%            de lettres. Les caract\`e{}res se dessinant en utilisant le mode
%            math\'e{}matique de \TeX{} restent cependant \og actifs\fg{}.
%      \item[\Comm{Mac}]    pour les caract\`e{}res du \textsc{Mac Intosh}.
%   \end{description}
%
%   Le choix de l'encodage des polices de \TeX{} est d\'e{}fini par deux autres 
%   constantes:
%   \begin{description}
%      \item[\Comm{CM}] d\'e{}finit l'encodage standard de \TeX{}. Ce code est 
%           d\'e{}fini sur 128 positions, les caract\`e{}res accentu\'e{}s sont
%           dessin\'e{}s par composition.
%      \item[\Comm{DC}] pour le nouvel encodage d\'e{}fini pour les polices \TeX{}.
%           L'utilisation de ce code implique l'usage des polices \textsc{Dc}.
%           Lorsque ce code est choisi, les caract\`e{}res existant dans un
%           code de page sont simplement convertis en caract\`e{}re \'e{}quivalent
%           des polices \textsc{Dc}.
%   \end{description}
%
%   Les symboles math\'e{}matiques sont dessin\'e{}s en utilisant les commandes et le 
%   mode math\'e{}matiques de \TeX{}, les autres symboles sont en g\'e{}n\'e{}ral ignor\'e{}s.
%
%   Les deux commandes principales sont:
%    \begin{description}
%      \item[\Comm{codepage\#1\#2}] cette macro accepte deux param\`e{}tres: le code
%           de page du document, et le type d'encodage choisi pour les polices
%           \TeX.
%
%           Apr\`e{}s l'appel \`a{} la macro \Comm{codepage} tous les caract\`e{}res 
%           sup\'e{}rieurs \`a{} 127 sont \og actifs\fg{} (ils se comportent
%           comme des commandes).
%    \item[\Comm{MakeHyphenationLetter\#1\#2}] cette macro n'existe
%            que si le code de page \textsc{Dc} est choisi. Elle sert
%            \`a{} modifier les valeurs associ\'e{}es \`a{} un caract\`e{}re sup\'e{}rieur
%            \`a{} 127 pour qu'il puisse \^e{}tre utilis\'e{} avec la commande
%            \Comm{hyphenation}. 
%            Pour que ces modifications restent locales,
%            \Comm{MakeHyphenationLetter} doit donc toujours \^e{}tre appel\'e{}e dans un groupe
%            (entre des accolades |{| et |}|). Pour des raisons techniques
%            ces modifications ne sont pas univoques, il est possible
%            que plusieurs caract\`e{}res aient des valeurs identiques apr\`e{}s
%            transformation. Cette situation n'est pas trop grave car elle
%            est peu fr\'e{}quente et n'entrave pas la c\'e{}sure  (du moins dans le cas
%            de la langue fran\c c{}aise), un message signalant un conflit 
%            potentiel est tout de fois \'e{}mis.
%    \item[\Comm{CurrentEncoding}] Cette commande contient la valeur du
%            syst\`e{}me d'encodage choisi. Sa valeur n'est d\'e{}finie qu'apr\`e{}s
%            l'appel \`a{} la commande \Comm{codepage}.
%    \end{description}
%
%
%    Toutes les commandes qui servent \`a{} dessiner des accents sur des caract\`e{}res 
%    sont red\'e{}finies. Les valeurs originales des commandes sont sauv\'e{}es avec un
%    nouveau nom:
%            \begin{center}
%               \begin{tabular}{ll}
%                  \textbf{Nouveau nom} & \textbf{Commande Originale}\\
%                  \Comm{Grave}               & \Comm{`}              \\
%                  \Comm{Circumflex}          & \Comm{\Circonflexe}   \\
%                  \Comm{Tilda}               & \Comm{\TildeChar}     \\
%                  \Comm{OverBar}             & \Comm{=}              \\
%                  \Comm{UnderBar}            & \Comm{b}              \\
%                  \Comm{Join}                & \Comm{t}              \\
%                  \Comm{HungarUmlaut}        & \Comm{H}              \\
%                  \Comm{Acute}               & \Comm{'}              \\
%                  \Comm{Diaresis}            & \Comm{"}              \\
%                  \Comm{Breve}               & \Comm{u}              \\
%                  \Comm{OverDot}             & \Comm{.}              \\
%                  \Comm{UnderDot}            & \Comm{d}              \\
%                  \Comm{Tcheche}             & \Comm{v}              \\
%                  \Comm{Cedille}             & \Comm{c}              \\
%               \end{tabular}
%           \end{center}
%
%  Voici encore quelques commandes d\'e{}finies par le paquet. Ces commandes 
%  devraient \^e{}tre d'un usage exceptionnel:
%  \begin{description}
%     \item[\Comm{TRtrue}] enclenche le m\'e{}canisme qui transforme chaque 
%            caract\`e{}re sup\'e{}rieur \`a{} 127 pour qu'il soit imprim\'e{} correctement 
%            par \TeX. C'est la valeur par d\'e{}faut !
%     \item[\Comm{TRfalse}] produit l'effet inverse de la commande pr\'e{}c\'e{}dente.
%            Cette commande est surtout utile lorsque des caract\`e{}res doivent
%            \^e{}tre \'e{}crits dans des fichiers auxiliaires (comme les fichiers
%            servant \`a{} construire les index ou les glossaires). Il est
%            alors souvent plus judicieux de convertir les caract\`e{}res sp\'e{}ciaux
%            lors de la relecture de ces fichiers plut\^o{}t qu'\`a{} leur \'e{}criture.
%     \item[\Comm{AllActive}] transforme tous les caract\`e{}res sup\'e{}rieurs
%            \`a{} 127 en caract\`e{}re actifs.
%     \item[\Comm{AllOther}] transforme tous les caract\`e{}res sup\'e{}rieurs \`a{} 127 en 
%            caract\`e{}re sans signification particuli\`e{}re pour TeX{} (leur
%            \Comm{catcode} vaut 12).
%     \item[\Comm{og}] dessine les guillemets fran\c c{}ais ouvrants (d\'e{}finis
%            seulement lorsque les polices \textsc{Cm} sont choisies).
%     \item[\Comm{fg}] dessine les guillemets fran\c c{}ais fermants (d\'e{}finis
%            seulement lorsque les polices \textsc{Cm} sont choisies).
%     \item[\Comm{atcatcode}] qui est une constante qui contient la valeur du 
%            |\catcode| du caract\`e{}re \textbf{@} lorsque cette valeur est 
%            modifi\'e{}e par le paquet \textsc{Codepage}. Autrement, elle
%            est identique \`a{} la commande |\relax|.
% \end{description}
%
% \section{Un bref exemple (pour \LaTeX{}2e)}
% {
% |   \documentclass{article}|\\
% |      \usepackage{t1enc,codepage}|\\
% |      {\MakeHyphenationLetter{\EightFiveZero}{|\tt\`e|}|\\
% |       \hyphenation{sys-t|\tt\`e|-me sys-t|\tt\`e|-mes}|\\
% |      }|\\
% |      \codepage{\EightFiveZero}{\DC}|\\
% |    \begin{document}|\\
% |       Unix est un joli syst|\tt \`e|me d'exploitation.|\\
% |    \end{document}|
% }
%
% Cet exemple fonctionnera correctement si tous les caract\`e{}res
% au-del\`a{} de 127 sont disponibles. Certaines implantations de \TeX{} (comme
% \textsc{Emtex}) transforment tous les caract\`e{}res au-del\`a{} de 127 en
% caract\`e{}re 127 ou utilise des tables sp\'e{}ciales (les tables
% \textsc{Tcp}  pour \textsc{EmTeX}).
%
% Pour obtenir un comportement correct avec \textsc{Emtex}, il faut
% utiliser l'option |/8| lorsque le format est g\'e{}n\'e{}r\'e{}.
%
% \fi
% \ifenglish
% \title{\texttt{code-page} a style to handle different code-pages in the same document}
% \author{Alain Aubord}
% \maketitle
% \begin{abstract}
%    This package provides some new commands to handle code page\ft{A code page is the convention
%    for associating a character with a number used to represent it in a computer.}. This text describes the
%    interface offered by the package and some problems which occur when the implementation is done only
%    in \TeX{}.
% \end{abstract}
%
% \section{Introduction\label{INTRO}}
%
%   The version 3 of TeX provides some facilities to work with documents written in a language
%   different than English. Mainly, by allowing the use of characters coded on eight bits (values from 1 to
%   255) and the possibility to use multiple hyphenation tables.
%
%    Although, this improvements are necessary, they are not sufficient. The standard \LaTeX{} style
%    should be adapted to the different languages and new polices of characters containing glyphs\ft{Most
%    foreign languages use characters with accent or diacritical marks. The
%    traditional way to draw an accented character in TeX is the composition, ---~i.e. by using a
%    macro to put an accent over a letter~---. This method offer the possibility to put accent on any character,
%    but prohibit hyphenation on word containing an accented letter.}
%    for the characters used in other language than English should be defined.
%
%
%    The style \Fich{Babel} and the new font \textsc{Dc} have been developed to solve these problems.
%    Well, one could think, ``don't worry, be happy'', documents will be typeset without problem.
%    Unfortunately this is not exactly the case, but the problem is outside \TeX{}: there isn't any
%    unique code page! Moreover some systems allow the use of many different code pages.
%    The \textsc{Dc} font obeys more or less to the \textsc{Iso Latin Set 1} standard, but many
%    other code pages exist. The solutions to this problem are multiples:
%    \begin{itemize}
%       \item The use of on external program to do the translation.
%             If the program is well interfaced with \TeX{} (like the \textsc{Tcp} tables of \textsc{Emtex})
%             this solution is very efficient and comfortable to use. But its main disadvantage is to be
%             implementation specific, and the transfer of the document on an other \TeX{} implementation
%             is not easy.
%       \item The use of virtual fonts to match the position of each character in a font to the local
%             code page. This solution is fully integrated with \TeX{}\ft{Some old driver don't work with
%             virtual fonts.}, but when a document is transferred, all the virtual fonts should
%             be given with the document (or defined at the other place), and the problem of hyphenation
%             (see~\ref{HYPHENATION}) is not solved.
%       \item The use of the standard convention to write accented character in \TeX{} (i.e.|\'e| for \'e).
%             This solution works well with \textsc{Dc} fonts (due to a very clever redefinition of macros
%             for positioning accent) and, naturally, is totally portable with any \TeX{} (version 2 and 3).
%             But the typing of accented characters is clumsy (even with a good editor) and
%             the reading is boring.
%       \item The use of the package \Fich{codepage} which is totally \TeX{} (version 3 only) compatible. It
%             can be used to typeset without any modifications a document with an other code page than those of
%             the local computer (this may be useful for a demo version of a document) and the problem of
%             hyphenation is partially (for hyphenation exceptions) solved.
%             But the transfer of document implies the use of package and most
%             of characters above 127 are
%             made ``active'' (they are like macros). This could cause some interference with other packages.
%    \end{itemize}
%    As one could see, no solution is totally perfect, this is due to the lack of a standard for code page not
%    to \TeX{}\ft{If, one day, a such standard should be established, no doubts it will be defined on sixteen
%    bits (number from 1 to 65535) to allow special characters for every applications (math symbols,
%    foreign languages, etc...).}.
%
%    \subsection{The hyphenation problem\label{HYPHENATION}}
%    The algorithm used in the \TeX{} program to hyphenate word is based on patterns read when the
%    format\ft{A format is a precompiled version of commands used to composed a document.} is build.
%    During the build of the hyphenation table, all the characters are put to lowercase by using the
%    \Comm{lccode} value. When a string of characters in a text is to be hyphenated, it is put in lowercase
%    by using the \Comm{lccode} value and the compared with hyphenation table to find a good break point.
%
%    If the pattern file use the \Comm{lccode} values defined for the \textsc{Dc} font (which is generally
%    the case), a match will never occur with the character above 127 in a text with a different 
%    code page
%    since the \Comm{lccode} are adapted to that code page\ft{This is mandatory to have a correct behaviour
%    with the command \Comm{uppercase} and \Comm{lowercase}, which transform a character in lower or upper case,
%    according to the values: \Comm{lccode} and \Comm{uccode}.}.
%    Despite this fact, the use of a pattern file containing characters above 127 is a good 
%    idea\ft{The
%    modification of the original pattern file should not be done to preserve portability and (often) to
%    respect the wish of maintainer who want to have a standard file.}, because
%    the results are surprisingly good (almost with French language). Moreover, the package \Fich{codepage}
%    provides the command \Comm{MakeHyphenationLetter} to adapt locally the \Comm{lccode} value to
%    a value usable by the |\hyphenation| command.
%
%    \section{The user interface}
%    The prime goal of the interface was to be ``as simple as possible''. Therefore it's composed by two
%    macros and some constants:
%
%    The code pages are defined by constants:
%    \begin{description}
%      \item[\Comm{FourThreeSeven}]  for the code page 437 of the PC; this code page is the standard code
%             page used with English system.
%      \item[\Comm{EightFiveZero}]   for the code page 850. This code page is similar to code page 437 but
%            contain more accented characters and less mathematical and special glyphs. It is used by
%            international systems.
%      \item[\Comm{IsoOne}] Iso Latin set 1 (the windows characters).
%      \item[\Comm{Mac}]    \textsc{Mac Intosh} characters.
%   \end{description}
%   The \TeX{} encoding are defined by two other constants:
%   \begin{description}
%      \item[\Comm{CM}] for the standard original \TeX{} encoding. This code is defined on only 128 position
%            and does not contain characters with diacritical marks.
%      \item[\Comm{DC}] for the new code defined at Cork. When this code is chosen, the \textsc{Dc} fonts
%           should be available.
%   \end{description}
%
%    Now the two main macros:
%    \begin{description}
%      \item[\Comm{codepage\#1\#2}] This macro has two parameters which should be the constants defined above. The
%           first parameter is the local code page, the second the encoding of the fonts used with \TeX{}
%           (|\DC|,|\CM|). This macro redefines all the macros for putting 
%           accent over a letter, the original macro is saved under
%           a new name.
%            \begin{center}
%               \begin{tabular}{ll}
%                  \textbf{New name} & \textbf{Original command}\\
%                  \Comm{Grave}               & \Comm{`}              \\
%                  \Comm{Circumflex}          & \Comm{\Circonflexe}   \\
%                  \Comm{Tilda}               & \Comm{\TildeChar}     \\
%                  \Comm{OverBar}             & \Comm{=}              \\
%                  \Comm{UnderBar}            & \Comm{b}              \\
%                  \Comm{Join}                & \Comm{t}              \\
%                  \Comm{HungarUmlaut}        & \Comm{H}              \\
%                  \Comm{Acute}               & \Comm{'}              \\
%                  \Comm{Diaresis}            & \Comm{"}              \\
%                  \Comm{Breve}               & \Comm{u}              \\
%                  \Comm{OverDot}             & \Comm{.}              \\
%                  \Comm{UnderDot}            & \Comm{d}              \\
%                  \Comm{Tcheche}             & \Comm{v}              \\
%                  \Comm{Cedille}             & \Comm{c}              \\
%               \end{tabular}
%           \end{center}
%      After the call of |\codepage| all the characters above 127 are ``active''.
%    \item[\Comm{MakeHyphenationLetter\#1\#2}] This macro has two parameters,
%         the first is the local code page
%         and the second is a character above 127. This macro should always be called in a group
%         (i.e. inside braces) to avoid undesirable change of \Comm{lccode}. After the call, the letter can be
%         use in the macro |\hyphenation| to construct correct pattern for hyphenation exceptions.
%         Unfortunately this is not one way transformation, and two different characters above 127 could have 
%         the same \Comm{lccode}. In this case a warning is used, but this could affect
%         only exceptionally the use of |\hyphenation| command\ft{The tests done with the French language
%         haven't shown any problem, although some french letters are
%         in conflict.}. This macro is defined only when the \textsc{Dc}
%         encoding is chosen.
%    \item[\Comm{CurrentEncoding}] This macro contain the value of the
%         encoding chosen. Its value is meaningful only after the call
%         to the \Comm{codepage} command.
%    \end{description}
%
%  Now we have some other macros defined by the package. Normally they should be quite rarely used:
%  \begin{description}
%     \item[\Comm{TRtrue}] to allow the translation of special characters (this is the default value !).
%     \item[\Comm{TRfalse}] to suppress the translation of special character. This is useful
%          when writing special characters into auxiliary (external) files like (\texttt{.idx, .toc}).
%          Sometimes, the translation should be done only when these files are read again and not when they are
%          written.
%     \item[\Comm{AllActive}] put the \Comm{catcode} for all characters above 127 to  \Comm{active}.
%     \item[\Comm{AllOther}] put the \Comm{catcode} for all characters above 127 to the value 12 
%          (other).
%     \item[\Comm{og}] draw the opening french guillomet (defined only when \textsc{Cm} encoding is used).
%     \item[\Comm{fg}] draw the closing french guillomet (defined only when \textsc{Cm} encoding is used).
%     \item[\Comm{atcatcode}] contain the value of the |\catcode| for the 
%                                         character \textbf{@} or |\relax| 
%                                         outside the part of code where this |\catcode| is modified.
%     \item[\Comm{CurrentEncoding}] contain the value of the \TeX{} encoding choosen.
% \end{description}
%
% \section{A short example (for \LaTeX2e)}
% {
% |   \documentclass{article}|\\
% |      \usepackage{t1enc,codepage}|\\
% |      {\MakeHyphenationLetter{\EightFiveZero}{|\tt\`e|}|\\
% |       \hyphenation{sys-t|\tt\`e|-me sys-t|\tt\`e|-mes}|\\
% |      }|\\
% |      \codepage{\EightFiveZero}{\DC}|\\
% |    \begin{document}|\\
% |       Unix est un joli syst|\tt \`e|me d'exploitation.|\\
% |    \end{document}|
% }
%
% This example will work correctly if all the characters above 127 are usable. Some
% implementations (like
% \textsc{Emtex}) map all characters above 127 on character 127 or use special translation tables
% (\textsc{Tcp} tables for \textsc{EmTeX}). With \textsc{Emtex} the options |/8| should be used when
% the format is generated.
%
%\fi 
%
% \StopEventually{
%    \begin{thebibliography}{9}
%       \bibitem{Companion} M.~Goosens, F.~Mittelbach, and A.~Samarin
%                \emph{The \LaTeX{} Companion}, 1994, Addison-Wesley.
%       \bibitem{TeXnician} V.~Eijkhout
%                \emph{\TeX{} by Topic A \TeX nician's Reference}, 1992 Addison-Wesley
%       \bibitem{PETIT} R.~Seroul
%                       \emph{Le petit livre de \TeX{}}, 1989, Inter\'Edition
%    \end{thebibliography}
%}
%
% \section{The implementation\label{IMPLEMENTATION}}
%
% \subsection{Introduction}
%
% The package is divided in three parts:
% \begin{enumerate}
%   \item The drawing of characters\ft{Not all the characters in all code page could be represented in \TeX{}.}.
%   \item The definition for the different code pages.
%   \item The interface.
% \end{enumerate}
%
% Inside the package the characters above 127 are defined by commands whose names try to follow 
% the
% standard defined by the \textsc{Postscript} language (\Comm{eacute} will draw the character \'e).
%
% The definition of a code page is done by associating a character with the command which draw it. To be more
% precise the command \Comm{eacute} does not draw the character directly, but it define an active character
% to draw the glyph ``e acute''. Thus a code page table is a call to a command which define each character
% from this code page to become an active character which draw the desired glyph.
%
% In addition, the associated code (\Comm{uccode} and \Comm{lccode}) are adapted to the values used in the code
% page to have a correct behaviour with the commands \Comm{uppercase} and \Comm{lowercase}. The change of
% \Comm{lccode} prohibit correct hyphenation\ft{Generally, the hyphenation patterns are defined with the
% \textsc{Dc} characters and it's not a good idea to modify this file to adapt it to a particular code page.},
% therefore the command \Comm{MakeHyphenationLetter} is provided to circumvent this problem.
%
% \subsection{File \Fich{codepage.sty}}
%
% First of all, a general purpose counter used in all package is declared:
%    \begin{macrocode}
%<*codepage>
%    \end{macrocode}
%
% Now we save the category code for the character \textbf{@}
%    \begin{macrocode}
\chardef\atcatcode=\catcode`\@
\catcode`\@=11\relax
%    \end{macrocode}
% and we define some conditionals to be able to test:
% \begin{itemize}
%    \item what format is used (because some commands do not exist in \TeX{})
%    \item if the translation should be executed on every special character. This is obviously almost ever
%          the case (why else using this package ?!) but in some cases this is not a good solution. When
%          the special characters are written in an auxiliary files, it could be better to translate them
%          when the text is read again, specially if these characters should be transform by commands such
%          \Comm{lowercase} or \Comm{uppercase}.
%    \item if it's the first time that the command \Comm{codepage} is called, because the definition for the
%          command drawing of accents should be saved just the first time (to avoid recursion problem).
% \end{itemize}
%    \begin{macrocode}
\newif\if@FirstCodePageCall
\@FirstCodePageCalltrue
\newif\ifTeX
\newif\ifTR        % True if we do the translation of character
\TRtrue
%    \end{macrocode}
%
% Here is the test to know if the format is plain \TeX{} or \LaTeX{}. This code is stolen
% from~\cite{TeXnician}.
%    \begin{macrocode}
\expandafter\ifx\csname @currsize\endcsname\relax\TeXtrue\else\TeXfalse\fi
\ifTeX
   \message{codepage.sty used in TeX context}%
\else
   \typeout{codepage.sty used in LaTeX context}%
\fi
%    \end{macrocode}
%
% \DescribeMacro{\@BadHyphenCarMsg}
% This macro is defined here because it's used in all code page tables. It issue a warning
% when a special character is used to hyphenate a word, but it is not really a letter. A symbol
% drawn using mathematical mode of \TeX{} could not be used to hyphenate word.
%    \begin{macrocode}
\def\@BadHyphenCarMsg#1{%
\ifTeX
    \message{Warning: the character \string #1 is not a character
             to form a word}%
    \message{Hyphenation can't be done with it}%
\else
    \typeout{Warning: the character \string #1 is not a character
             to form a word}%
    \typeout{Hyphenation can't be done with it}%
\fi
}%@BadHyphenCarMsg
%    \end{macrocode}
% \DescribeMacro{\@ConflictHyphenCarMsg}
% Due to the manner to treat the hyphenation (see paragraph~\ref{HYPHEN}),
% some conflicts could arise
% between two characters for hyphenation. The two arguments of the macro are the two characters in conflict.
%    \begin{macrocode}
\def\@ConflictHyphenCarMsg#1#2{%
\ifTeX
    \message{Warning the character #1 could be in conflict}%
    \message{with character #2 for hyphenation algorithm !}%
\else
    \typeout{Warning the character #1 could be in conflict}%
    \typeout{with character #2 for hyphenation algorithm !}%
\fi
}%\@ConflictHyphenCarMsg
%    \end{macrocode}
%
% Now we could declare the interface of the package, first the definition of constants
%    \begin{macrocode}
\chardef\CM=0%                The target font is CM encoding
\chardef\DC=1%                The target font is DC encoding
\chardef\FourThreeSeven=0%    Code page 437
\chardef\EightFiveZero=1%     Code page 850
\chardef\IsoOne=2%            Iso latin set 1
\chardef\Mac=3%               Apple Mac Intosh characters
%    \end{macrocode}
%
% \DescribeMacro{\codepage}
% This is the main macro which take two parameters:
% \begin{enumerate}
%    \item the source code page of the document;
%    \item the encoding scheme chosen for the output (\texttt{T1} or \texttt{OT1}).
% \end{enumerate}
% After the call of the macro, all the characters above 127 are made ``active''.
% Some characters draw their shape, the other issue a warning indicating that they could not be drawn
% with \TeX{} commands.
%
% The first thing to do is the save of the current encoding in a global 
% variable and the save of the original macros for putting accents over
% letter.
% This should be done inside the macro to be independent of the order of style's declarations and
% it should be done just once to avoid the recursion problem.
%    \begin{macrocode}
\def\codepage#1#2{%
\chardef\CurrentEncoding=#2%
\if@FirstCodePageCall
  \let\Grave=\`%
  \let\Circumflex=\^%
  \let\Tilda=\~%
  \let\OverBar=\=%
  \let\UnderBar=\b%
  \let\Join=\t%
  \let\HungarUmlaut=\H%
  \let\Acute=\'%
  \let\Diaresis=\"%
  \let\Breve=\u%
  \let\OverDot=\.%
  \let\UnderDot=\d%
  \let\Tcheche=\v%
  \let\Cedille=\c%
  \@FirstCodePageCallfalse
\fi
%    \end{macrocode}
% All the characters upper 127 are made active and the table for the
% code page of document is set.
%    \begin{macrocode}
\AllActive
\ifcase#1%
   \input code437 %
\or
   \input code850 %
\or
   \input codeiso1 %
\or
   \input codemac %
\fi
%    \end{macrocode}
% The last thing to do is to save with an other name the standard macros for drawing accent 
% which are modified by ``tabbing''
% environment of \LaTeX{} and the suppression of white space generated.
% Thus the same macro's name could
% be used everywhere to put accent on character.
%    \begin{macrocode}
\let\@Grave=\`%
\let\@Aigu=\'%
\let\@OverBar=\=%
\ignorespaces
}%\codepage
%    \end{macrocode}
%
% \DescribeMacro{\AllActive}
%    \begin{macrocode}
\def\AllActive{%
\catcode`\^^80=\active \catcode`\^^81=\active \catcode`\^^82=\active
\catcode`\^^83=\active \catcode`\^^84=\active \catcode`\^^85=\active
\catcode`\^^86=\active \catcode`\^^87=\active \catcode`\^^88=\active
\catcode`\^^89=\active \catcode`\^^8a=\active \catcode`\^^8b=\active
\catcode`\^^8c=\active \catcode`\^^8d=\active \catcode`\^^8e=\active
\catcode`\^^8f=\active \catcode`\^^90=\active \catcode`\^^91=\active
\catcode`\^^92=\active \catcode`\^^93=\active \catcode`\^^94=\active
\catcode`\^^95=\active \catcode`\^^96=\active \catcode`\^^97=\active
\catcode`\^^98=\active \catcode`\^^99=\active \catcode`\^^9a=\active
\catcode`\^^9b=\active \catcode`\^^9c=\active \catcode`\^^9d=\active
\catcode`\^^9e=\active \catcode`\^^9f=\active \catcode`\^^a0=\active
\catcode`\^^a1=\active \catcode`\^^a2=\active \catcode`\^^a3=\active
\catcode`\^^a4=\active \catcode`\^^a5=\active \catcode`\^^a6=\active
\catcode`\^^a7=\active \catcode`\^^a8=\active \catcode`\^^a9=\active
\catcode`\^^aa=\active \catcode`\^^ab=\active \catcode`\^^ac=\active
\catcode`\^^ad=\active \catcode`\^^ae=\active \catcode`\^^af=\active
\catcode`\^^b0=\active \catcode`\^^b1=\active \catcode`\^^b2=\active
\catcode`\^^b3=\active \catcode`\^^b4=\active \catcode`\^^b5=\active
\catcode`\^^b6=\active \catcode`\^^b7=\active \catcode`\^^b8=\active
\catcode`\^^b9=\active \catcode`\^^ba=\active \catcode`\^^bb=\active
\catcode`\^^bc=\active \catcode`\^^bd=\active \catcode`\^^be=\active
\catcode`\^^bf=\active \catcode`\^^c0=\active \catcode`\^^c1=\active
\catcode`\^^c2=\active \catcode`\^^c3=\active \catcode`\^^c4=\active
\catcode`\^^c5=\active \catcode`\^^c6=\active \catcode`\^^c7=\active
\catcode`\^^c8=\active \catcode`\^^c9=\active \catcode`\^^ca=\active
\catcode`\^^cb=\active \catcode`\^^cc=\active \catcode`\^^cd=\active
\catcode`\^^ce=\active \catcode`\^^cf=\active \catcode`\^^d0=\active
\catcode`\^^d1=\active \catcode`\^^d2=\active \catcode`\^^d3=\active
\catcode`\^^d4=\active \catcode`\^^d5=\active \catcode`\^^d6=\active
\catcode`\^^d7=\active \catcode`\^^d8=\active \catcode`\^^d9=\active
\catcode`\^^da=\active \catcode`\^^db=\active \catcode`\^^dc=\active
\catcode`\^^dd=\active \catcode`\^^de=\active \catcode`\^^df=\active
\catcode`\^^e0=\active \catcode`\^^e1=\active \catcode`\^^e2=\active
\catcode`\^^e3=\active \catcode`\^^e4=\active \catcode`\^^e5=\active
\catcode`\^^e6=\active \catcode`\^^e7=\active \catcode`\^^e8=\active
\catcode`\^^e9=\active \catcode`\^^ea=\active \catcode`\^^eb=\active
\catcode`\^^ec=\active \catcode`\^^ed=\active \catcode`\^^ee=\active
\catcode`\^^ef=\active \catcode`\^^f0=\active \catcode`\^^f1=\active
\catcode`\^^f2=\active \catcode`\^^f3=\active \catcode`\^^f4=\active
\catcode`\^^f5=\active \catcode`\^^f6=\active \catcode`\^^f7=\active
\catcode`\^^f8=\active \catcode`\^^f9=\active \catcode`\^^fa=\active
\catcode`\^^fb=\active \catcode`\^^fc=\active \catcode`\^^fd=\active
\catcode`\^^fe=\active \catcode`\^^ff=\active
}% \AllActive
%    \end{macrocode}
%
% \DescribeMacro{\AllOther}
%    \begin{macrocode}
\def\AllOther{%
%    \end{macrocode}
% This definition is used to save space (two digits take twice as space than and
% macro) and to clarify the meaning of catcode.
%    \begin{macrocode}
\chardef\other=12\relax
\catcode`\^^80=\other \catcode`\^^81=\other \catcode`\^^82=\other
\catcode`\^^83=\other \catcode`\^^84=\other \catcode`\^^85=\other
\catcode`\^^86=\other \catcode`\^^87=\other \catcode`\^^88=\other
\catcode`\^^89=\other \catcode`\^^8a=\other \catcode`\^^8b=\other
\catcode`\^^8c=\other \catcode`\^^8d=\other \catcode`\^^8e=\other
\catcode`\^^8f=\other \catcode`\^^90=\other \catcode`\^^91=\other
\catcode`\^^92=\other \catcode`\^^93=\other \catcode`\^^94=\other
\catcode`\^^95=\other \catcode`\^^96=\other \catcode`\^^97=\other
\catcode`\^^98=\other \catcode`\^^99=\other \catcode`\^^9a=\other
\catcode`\^^9b=\other \catcode`\^^9c=\other \catcode`\^^9d=\other
\catcode`\^^9e=\other \catcode`\^^9f=\other \catcode`\^^a0=\other
\catcode`\^^a1=\other \catcode`\^^a2=\other \catcode`\^^a3=\other
\catcode`\^^a4=\other \catcode`\^^a5=\other \catcode`\^^a6=\other
\catcode`\^^a7=\other \catcode`\^^a8=\other \catcode`\^^a9=\other
\catcode`\^^aa=\other \catcode`\^^ab=\other \catcode`\^^ac=\other
\catcode`\^^ad=\other \catcode`\^^ae=\other \catcode`\^^af=\other
\catcode`\^^b0=\other \catcode`\^^b1=\other \catcode`\^^b2=\other
\catcode`\^^b3=\other \catcode`\^^b4=\other \catcode`\^^b5=\other
\catcode`\^^b6=\other \catcode`\^^b7=\other \catcode`\^^b8=\other
\catcode`\^^b9=\other \catcode`\^^ba=\other \catcode`\^^bb=\other
\catcode`\^^bc=\other \catcode`\^^bd=\other \catcode`\^^be=\other
\catcode`\^^bf=\other \catcode`\^^c0=\other \catcode`\^^c1=\other
\catcode`\^^c2=\other \catcode`\^^c3=\other \catcode`\^^c4=\other
\catcode`\^^c5=\other \catcode`\^^c6=\other \catcode`\^^c7=\other
\catcode`\^^c8=\other \catcode`\^^c9=\other \catcode`\^^ca=\other
\catcode`\^^cb=\other \catcode`\^^cc=\other \catcode`\^^cd=\other
\catcode`\^^ce=\other \catcode`\^^cf=\other \catcode`\^^d0=\other
\catcode`\^^d1=\other \catcode`\^^d2=\other \catcode`\^^d3=\other
\catcode`\^^d4=\other \catcode`\^^d5=\other \catcode`\^^d6=\other
\catcode`\^^d7=\other \catcode`\^^d8=\other \catcode`\^^d9=\other
\catcode`\^^da=\other \catcode`\^^db=\other \catcode`\^^dc=\other
\catcode`\^^dd=\other \catcode`\^^de=\other \catcode`\^^df=\other
\catcode`\^^e0=\other \catcode`\^^e1=\other \catcode`\^^e2=\other
\catcode`\^^e3=\other \catcode`\^^e4=\other \catcode`\^^e5=\other
\catcode`\^^e6=\other \catcode`\^^e7=\other \catcode`\^^e8=\other
\catcode`\^^e9=\other \catcode`\^^ea=\other \catcode`\^^eb=\other
\catcode`\^^ec=\other \catcode`\^^ed=\other \catcode`\^^ee=\other
\catcode`\^^ef=\other \catcode`\^^f0=\other \catcode`\^^f1=\other
\catcode`\^^f2=\other \catcode`\^^f3=\other \catcode`\^^f4=\other
\catcode`\^^f5=\other \catcode`\^^f6=\other \catcode`\^^f7=\other
\catcode`\^^f8=\other \catcode`\^^f9=\other \catcode`\^^fa=\other
\catcode`\^^fb=\other \catcode`\^^fc=\other \catcode`\^^fd=\other
\catcode`\^^fe=\other \catcode`\^^ff=\other
}% \AllOther
%    \end{macrocode}
%
% \DescribeMacro{\MakeHyphenationLetter}
% This macro allow a special letter to be use in a \Comm{hyphenation} 
% command  to declare hyphenation exceptions.
% To do the hyphenation \TeX{} will transform all the characters to lowercase (by using the \Comm{lowerccase}
% primitive) and then compare the string of characters with the table of hyphenation; if a match is found
% the hyphenation could be done.
%
% The \Comm{lccode} and the \Comm{uccode} are always defined in term of code page of document
% (for instance the code page 850 of PC), but the process of
% hyphenation comes at a very late stage when all the characters are already translated in the \textsc{Dc}
% encoding. Thus a match is never possible. The macro \Comm{MakeHyphenationLetter} will then change locally the
% value of \Comm{lccode} to anticipate what it will be when the character is translated. Unfortunately this
% transformation is not one way, and different characters could give the same result, but this case is
% quite rare and a warning is issued.
%
% The two parameters for the macro are the code page of the document and the letter to be used in the
% \Comm{hyphenation} command.
%    \begin{macrocode}
\def\MakeHyphenationLetter#1#2{%
   \ifcase#1%
      \@MakeHyphenationFourThreeSeven{#2}%
   \or
      \@MakeHyphenationEightFiveZero{#2}%
   \or
      \@MakeHyphenationLatinOne{#2}%
   \or
      \@MakeHyphenationMac{#2}%
   \fi
}% MakeHyphenationLetter
%    \end{macrocode}
%
% \DescribeMacro{\@CarSmaller}
% Macros that work only with \LaTeX, and draw character smaller (two steps less
% than current writing size ie. normalsize is set to footnotesize).
% With \TeX{} this macros does nothing.
%    \begin{macrocode}
\def\@CarSmaller{\ifTeX
                 %Do nothing
                 \else
                 %We are in LaTeX
                   \ifx\@currsize\normalsize\relax
                        \footnotesize
                   \else
                     \ifx\@currsize\small\relax
                        \scriptsize
                     \else
                        \ifx\@currsize\footnotesize\relax
                            \tiny
                        \else
                           \ifx\@currsize\scriptsize\relax
                               \tiny % we cannot have less
                           \fi
                        \fi
                     \fi
                   \fi
                   \ifx\@currsize\large\relax
                      \small
                   \else
                    \ifx\@currsize\Large\relax
                         \normalsize
                      \else
                         \ifx\@currsize\LARGE\relax
                             \large
                         \else
                            \ifx\@currsize\huge\relax
                               \Large
                            \else
                               \ifx\@currsize\Huge\relax
                                  \LARGE
                               \fi
                            \fi
                         \fi
                      \fi
                   \fi
                 \fi
                }% \@CarSmaller
%    \end{macrocode}
%
% \DescribeMacro{\@Sup}
%    \begin{macrocode}
\def\@Sup#1{%
    \ifmmode
      ^{\hbox{\@CarSmaller #1}}%
    \else
      $^{\hbox{\@CarSmaller #1}}$%
    \fi
}%\@Sup
%    \end{macrocode}
% \DescribeMacro{\@Fraction}
% Create a fraction (for one half, one quarter etc.)
%    \begin{macrocode}
\def\@Fraction#1#2{%
     \ifmmode
       \ifTeX
         #1\over#2%
       \else
         \frac{#1}{#2}%
       \fi
     \else
       \ifTeX
         $#1\over#2$%
       \else
         $\frac{#1}{#2}$%
       \fi
     \fi
}%\@Fraction
%    \end{macrocode}
%
% \DescribeMacro{\@MathSymbol}
% MathSymbol defines its first parameter to print the mathematical
% symbol given as second parameter (given without {\tt\bslash{}})
%    \begin{macrocode}
\def\@MathSymbol#1#2{%
       %Do the global definitions
       \gdef#1{\ifTR
                 \ifmmode
                 % Already in math ==> no $
                   \csname#2\endcsname
                 \else
                   $\csname#2\endcsname$%
                 \fi
               \else
               %No translation to do
                 \string#1%
               \fi
              }%
    }%\@MathSymbol
%    \end{macrocode}
% \DescribeMacro{\@InMath}
% @InMath write its argument in mathematical mode (given without {\tt\bslash{}})
%    \begin{macrocode}
\def\@InMath#1{%
                 \ifmmode
                 % Already in math ==> no $
                   \csname#1\endcsname
                 \else
                   $\csname#1\endcsname$%
                 \fi
     }%\@InMath
%    \end{macrocode}
%
% \DescribeMacro{\@UC}
%    \begin{macrocode}
\def\@UC#1#2#3{%
   \global\uccode`#1=#2\global\lccode`#1=#3%
}%
%    \end{macrocode}
%
% \DescribeMacro{\@DefaultValue}
%Define the default macro for an active character which could not be printed.
%    \begin{macrocode}
\def\@DefaultValue#1{%
\ifTeX
   \message{The character No #1 doesn't exist in target
           font (ignored) !}%
\else
   \typeout{The character No #1 doesn't exist in target
           font (ignored) !}%
\fi
}%
%    \end{macrocode}
% The last thing to do is to restore the value of \textbf{@} character
%    \begin{macrocode}
\catcode`\@=\atcatcode \let\atcatcode\relax
%</codepage>
%    \end{macrocode}
%
% \subsection{The drawing of characters (Files 
%             \Fich{shapecm.tex}, \Fich{shapedc.tex})}
%
%
% One file for every different possible (in \TeX{}) coding scheme is 
% used. Each file should define macros to draw the characters and the
% accents in \TeX. All files should contain the same macros.
%
% \penalty -200
% Two types of macros are provided:
% \penalty 10000
% \begin{itemize}
%          \item The macros prefixed with the @ character which are used to facilitate
%                the drawing of some characters.
%                These macros should be global and shared by all the 
%                active characters (thus they are declared in the file
%                \Fich{codepage.tex}).
%          \item The macros to define active characters. The name of 
%                these macro follows the Postscript conventions for 
%                character's name (whenever possible) and does not
%                contain an @ character.
% \end{itemize} 
%
% The auxiliary macros which are used are:
% \begin{description}
%    \item[\Comm{@Sup}]  to put its argument in superscript
%    \item[\Comm{@Fraction}]  to create a fraction with the first parameter  over the second in
%                             smaller size than the current writing
%                             size.
%    \item[\Comm{@CarSmaller}]    which change the font to have
%                             a font two steps smaller than
%                             the current font (do nothing in \TeX{}).
%    \item[\Comm{@MathSymbol}]    draw a predefined \TeX{} math symbol.
%    \item[\Comm{@UC}]  just to have one macro for doing the same action
%                       many times.
% \end{description}
%
%    \begin{macrocode}
%<*shapecm>
  \chardef\atcatcode=\catcode`\@
  \catcode`\@=11\relax
%    \end{macrocode}
% \DescribeMacro{\@StartNewWord}
% This macro give the possibility to hyphenate word containing special characters between
% the syllabs containing the accented character. The trick used is to isolate a special character
% by surrounding it with ``end of word'' mark (i.e. a white space of 0pt where the hyphenation
% is prohibited).
%
% These techniques are used since many year in \TeX{} communauty.
%    \begin{macrocode}
  \gdef\@StartNewWord{\penalty\@M\hskip\z@skip}%
%    \end{macrocode}
% \DescribeMacro{\@TreatDotLessCar}
% Change a dot character to remove the dot when used with an accented character.
%    \begin{macrocode}
  \gdef\@TreatDotLessCar#1#2{%
               \@StartNewWord
               \ifx#1i%
                   \csname#2\endcsname \i
                 \else
                   \ifx#1j%
                     \csname#2\endcsname \j
                   \else
                     \csname#2\endcsname #1%
                   \fi
                 \fi
                 \@StartNewWord}%
  \gdef\`#1{{\@TreatDotLessCar{#1}{Grave}}}%
  \gdef\^#1{{\@TreatDotLessCar{#1}{Circumflex}}}%
  \gdef\~#1{{\@TreatDotLessCar{#1}{Tilda}}}%
  \gdef\=#1{{\@TreatDotLessCar{#1}{OverBar}}}%
  \gdef\b#1{{\underbar #1\@StartNewWord}}%
  \gdef\t#1{{\@TreatDotLessCar{#1}{Join}}}%
  \gdef\H#1{{\@TreatDotLessCar{#1}{HungarUmlaut}}}%
  \gdef\'#1{{\@TreatDotLessCar{#1}{Acute}}}%
  \gdef\"#1{{\@TreatDotLessCar{#1}{Diaresis}}}%
  \gdef\u#1{{\@TreatDotLessCar{#1}{Breve}}}%
  \gdef\.#1{{\@TreatDotLessCar{#1}{OverDot}}}%
  \gdef\d#1{{\UnderDot #1\@StartNewWord}}%
  \gdef\v#1{{\@TreatDotLessCar{#1}{Tcheche}}}%
  \gdef\c#1{{\Cedille #1\@StartNewWord}}%
%    \end{macrocode}
% Now we should define the definition for the french quotation marks which aren't defined
% in the \textsc{Cm} font. The code is taken from~\cite{PETIT}. 
%    \begin{macrocode}
  \gdef\og{\leavevmode\raise.3ex\hbox{$\scriptscriptstyle\langle\!\langle\,$}}%
  \gdef\fg{\leavevmode\raise.3ex\hbox{$\scriptscriptstyle\,\rangle\!\rangle$}}%
%    \end{macrocode}
% This is a rudimentary code to obtain pounds sign in \TeX{} mode.
%    \begin{macrocode}
  \ifTeX\gdef\pounds{{\it\$}}\fi
%    \end{macrocode}
%
% The macros for defining
% a active character to draw its glyph has always three parameters:
% \begin{enumerate}
%    \item The character in source font (should be active before the call)
%    \item The uppercase code
%    \item The lowercase code
% \end{enumerate}
%
%    \begin{macrocode}
\def\dieresis#1#2#3{%
%    \end{macrocode}
% This macro will define an active character to draw a ``diaresis'' character.
% The first thing to do is to set the \Comm{lccode} and \Comm{uccode} to values meaningful for the
% code page of the document.
%    \begin{macrocode}
      \@UC{#1}{#2}{#3}%
%    \end{macrocode}
% Then, depending on the \TeX{} encoding, the translation is done if the test \Comm{ifTR} is true, else
% the character is left verbatim (with \Comm{catcode=12}). When 
% |\ifTR| is true, the character is written |\char "xx| for
% the \textsc{Dc} encoding and it is composed (i.e. |\'e|)
% for the \textsc{Cm} encoding.
%    \begin{macrocode}
      \gdef#1{\ifTR\char"7F{}\else\string#1\fi}%
}%
\def\acute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"13{}\else\string#1\fi}%
}%
\def\cedilla#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"18{}\else\string#1\fi}%
}%
\def\Agrave#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\grave{A}\else\@Grave{A}\fi\else\string#1\fi}%
}%
\def\Aacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\acute{A}\else\@Aigu{A}\fi\else\string#1\fi}%
}%
\def\Acircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\hat{A}\else\^{A}\fi\else\string#1\fi}%
}%
\def\Atilde#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\tilde{A}\else\~{A}\fi\else\string#1\fi}%
}%
\def\Adieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\ddot{A}\else\"{A}\fi\else\string#1\fi}%
}%
\def\Aring#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\AA{}\else\string#1\fi}%
}%
\def\fiLigature#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{fi}\else\string#1\fi}%
}%
\def\flLigature#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{fl}\else\string#1\fi}%
}%
\def\AE#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\AE{}\else\string#1\fi}%
}%
\def\Ccedilla#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\c {C}\else\string#1\fi}%
}%
\def\Egrave#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\grave{E}\else\@Grave{E}\fi\else\string#1\fi}%
}%
\def\Eacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\acute{E}\else\@Aigu{E}\fi\else\string#1\fi}%
}%
\def\Ecircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\hat{E}\else\^{E}\fi\else\string#1\fi}%
}%
\def\Edieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\ddot{E}\else\"{E}\fi\else\string#1\fi}%
}%
\def\Igrave#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\grave{I}\else\@Grave{I}\fi\else\string#1\fi}%
}%
\def\Iacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\acute{I}\else\@Aigu{I}\fi\else\string#1\fi}%
}%
\def\Icircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\hat{I}\else\^{I}\fi\else\string#1\fi}%
}%
\def\Idieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\ddot{I}\else\"{I}\fi\else\string#1\fi}%
}%
\def\DBar#1#2#3{%
      \@UC{#1}{#2}{#3}%
         % nothing to do we use the default value
}%
\def\Ntilde#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\tilde{N}\else\~{N}\fi\else\string#1\fi}%
}%
\def\Ograve#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\grave{O}\else\@Grave{O}\fi\else\string#1\fi}%
}%
\def\Oacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\acute{O}\else\@Aigu{O}\fi\else\string#1\fi}%
}%
\def\Ocircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\hat{O}\else\^{O}\fi\else\string#1\fi}%
}%
\def\Otilde#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\tilde{O}\else\~{O}\fi\else\string#1\fi}%
}%
\def\Odieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\ddot{O}\else\"{O}\fi\else\string#1\fi}%
}%
\def\Oslash#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\O{}\else\string#1\fi}%
}%
\def\Ugrave#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\grave{U}\else\@Grave{U}\fi\else\string#1\fi}%
}%
\def\Uacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\acute{U}\else\@Aigu{U}\fi\else\string#1\fi}%
}%
\def\Ucircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\hat{U}\else\^{U}\fi\else\string#1\fi}%
}%
\def\Udieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\ddot{U}\else\"{U}\fi\else\string#1\fi}%
}%
\def\Yacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\acute{Y}\else\@Aigu{Y}\fi\else\string#1\fi}%
}%
\def\Thorn#1#2#3{%
      \@UC{#1}{#2}{#3}%
         % no definition in CM
}%
\def\germandbls#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{SS}\else\string#1\fi}%
}%
\def\agrave#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\grave{a}\else\@Grave{a}\fi\else\string#1\fi}%
}%
\def\aacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\acute{a}\else\@Aigu{a}\fi\else\string#1\fi}%
}%
\def\acircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\hat{a}\else\^{a}\fi\else\string#1\fi}%
}%
\def\atilde#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\tilde{a}\else\~{a}\fi\else\string#1\fi}%
}%
\def\adieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\ddot{a}\else\"{a}\fi\else\string#1\fi}%
}%
\def\aring#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\aa{}\else\string#1\fi}%
}%
\def\ae#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ae{}\else\string#1\fi}%
}%
\def\ccedilla#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\c {c}\else\string#1\fi}%
}%
\def\egrave#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\grave{e}\else\@Grave{e}\fi\else\string#1\fi}%
}%
\def\eacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\acute{e}\else\@Aigu{e}\fi\else\string#1\fi}%
}%
\def\ecircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\hat{e}\else\^{e}\fi\else\string#1\fi}%
}%
\def\edieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\ddot{e}\else\"{e}\fi\else\string#1\fi}%
}%
\def\igrave#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\grave{i}\else\@Grave{i}\fi\else\string#1\fi}%
}%
\def\iacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\acute{i}\else\@Aigu{i}\fi\else\string#1\fi}%
}%
\def\icircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\hat{i}\else\^{i}\fi\else\string#1\fi}%
}%
\def\idieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\ddot{i}\else\"{i}\fi\else\string#1\fi}%
}%
\def\dBar#1#2#3{%
      \@UC{#1}{#2}{#3}%
         % no definition in CM
}%
\def\ntilde#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\tilde{n}\else\~{n}\fi\else\string#1\fi}%
}%
\def\ograve#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\grave{o}\else\@Grave{o}\fi\else\string#1\fi}%
}%
\def\oacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\acute{o}\else\@Aigu{o}\fi\else\string#1\fi}%
}%
\def\ocircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\hat{o}\else\^{o}\fi\else\string#1\fi}%
}%
\def\otilde#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\tilde{o}\else\~{o}\fi\else\string#1\fi}%
}%
\def\odieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\ddot{o}\else\"{o}\fi\else\string#1\fi}%
}%
\def\OE#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\OE{}\else\string#1\fi}%
}%
\def\oe#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\oe{}\else\string#1\fi}%
}%
\def\oslash#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\o{}\else\string#1\fi}%
}%
\def\ugrave#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\grave{u}\else\@Grave{u}\fi\else\string#1\fi}%
}%
\def\uacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\acute{u}\else\@Aigu{u}\fi\else\string#1\fi}%
}%
\def\ucircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\hat{u}\else\^{u}\fi\else\string#1\fi}%
}%
\def\udieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\ddot{u}\else\"{u}\fi\else\string#1\fi}%
}%
\def\yacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\acute{y}\else\@Aigu{y}\fi\else\string#1\fi}%
}%
\def\thorn#1#2#3{%
      \@UC{#1}{#2}{#3}%
         % no definition in CM
}%
\def\ydieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\ddot{y}\else\"{y}\fi\else\string#1\fi}%
}%
\def\Ydieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\ifmmode\ddot{Y}\else\"{Y}\fi\else\string#1\fi}%
}%
%
\def\alpha#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{alpha}%
}%
\def\approx#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{approx}%
}%
\def\beta#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{beta}%
}%
\def\bullet#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{bullet}%
}%
\def\cap#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{cap}%
}%
\def\cent#1#2#3{%
      \@UC{#1}{#2}{#3}%
         % no definition in CM
        % no definition in DC
}%
\def\guillemeotright#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\fg{}\else\string#1\fi}%
}%
\def\copyright#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\copyright{}\else\string#1\fi}%
}%
\def\currency#1#2#3{% character hex A4 in Iso latin set 1
      \@UC{#1}{#2}{#3}%
         % no definition in CM
}%
\def\degree#1#2#3{%
      \@UC{#1}{#2}{#3}%
}%
\def\dag#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{dag}%
}%
\def\ddag#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{ddag}%
}%
\def\delta#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{delta}%
}%
\def\div#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{div}%
}%
\def\diamond#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{Diamond}%
}%
\def\emptysetSign#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{emptyset}% is nicer than epsilon
}%
\def\section#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\S}\else\string#1\fi}%
}%
\def\epsilon#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{varepsilon}% is nicer than epsilon
}%
\def\equiv#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{equiv}%
}%
\def\ellipsis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{...}\else\string#1\fi}%
}%
\def\exclamdown#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{!`}\else\string#1\fi}%
}%
\def\ordfeminine#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\@Sup{\b{a}}\else\string#1\fi}%
}%
\def\geq#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{geq}%
}%
\def\Gamma#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{Gamma}%
}%
\def\infty#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{infty}%
}%
\def\leq#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{leq}%
}%
\def\emdash#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{---}\else\string#1\fi}%
}%
\def\ordmasculine#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\@Sup{\b{o}}\else\string#1\fi}%
}%
\def\mu#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{mu}%
}%
\def\neg#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{neg}%
}%
\def\neq#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{neq}%
}%
\def\unbreakablespace#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR~\else\string#1\fi}%
}%
\def\Omega#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{Omega}%
}%
\def\OneHalf#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\@Fraction{1}{2}}\else\string#1\fi}%
}%
\def\OneQuarter#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\@Fraction{1}{4}}\else\string#1\fi}%
}%
\def\guilletmotleft#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\og{}\else\string#1\fi}%
}%
\def\Pi#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{Pi}%
}%
\def\pi#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{pi}%
}%
\def\pm#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{pm}%
}%
\def\ParagraphSign#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\P}\else\string#1\fi}%
}%
\def\partial#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{partial}%
}%
\def\Phi#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{Phi}%
}%
\def\pounds#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\pounds{}\else\string#1\fi}%
}%
\def\powerone#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\@Sup{1}}\else\string#1\fi}%
}%
\def\powerthree#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\@Sup{3}}\else\string#1\fi}%
}%
\def\powertwo#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\@Sup{2}}\else\string#1\fi}%
}%
\def\questiondown#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{?`}\else\string#1\fi}%
}%
\def\register#1#2#3{%
      \@UC{#1}{#2}{#3}%
         % no definition in CM
        % no definition in DC
}%
\def\Sigma#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{Sigma}%
}%
\def\sigma#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{sigma}%
}%
\def\quoteright#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{'}\else\string#1\fi}%
}%
\def\quoteleft#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{`}\else\string#1\fi}%
}%
\def\splitbar#1#2#3{%
      \@UC{#1}{#2}{#3}%
         % no definition in CM
}%
\def\tau#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{tau}%
}%
\def\ThetaSign#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{Theta}%
}%
\def\threequarter#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\@Fraction{3}{4}}\else\string#1\fi}%
}%
\def\times#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{times}%
}%
\def\trademark#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\@Sup{TM}\else\string#1\fi}%
}%
\def\quotedblright#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{''}\else\string#1\fi}%
}%
\def\quotedblleft#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{``}\else\string#1\fi}%
}%
\def\yen#1#2#3{%
      \@UC{#1}{#2}{#3}%
         % no definition in CM
        % no definition in DC
}%
\def\perthousand#1#2#3{%
      \@UC{#1}{#2}{#3}%
         % no definition in CM
        % no definition in DC
}%
\def\florin#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\it f}\else\string#1\fi}%
}%
\catcode`\@=\atcatcode \let\atcatcode\relax
%</shapecm>
%    \end{macrocode}
%
% These macros redefines all the effect of the macros to put accents on
% characters
% in order to produce directly the character in the font \textsc{Dc}.
% The code is stolen from the file \Fich{DCLFONT.STY} from the \textsc{Nfss} distribution.
% Two reasons have dictated this choice:
% \begin{itemize}
%    \item When \textsc{Nfss} is not used, the composition of character+accent
%          will give directly the accented character;
%    \item When \textsc{Nfss} is used, it's better to have the translation done
%          in command |\char 'xxx| instead of |^^xx|. This avoid bad translation when
%          an auxiliary file is reread.
% \end{itemize}
% The first thing to do is to save the catcode of @ character.
%    \begin{macrocode}
%<*shapedc>
\chardef\atcatcode=\catcode`\@
\catcode`\@=11\relax
\global\chardef\aa="0E5%
\global\chardef\ae="0E6%
\global\chardef\l="0AA%
\global\chardef\oe="0F7%
\global\chardef\o="0F8%
\global\chardef\ss="0FF%
\global\chardef\AA="0C5%
\global\chardef\AE="0C6%
\global\chardef\L="8A%
\global\chardef\OE="0D7%
\global\chardef\O="0D8%
\global\chardef\SS="0DF%
\global\chardef\i="19%
\global\chardef\j="1A%
\global\chardef\pounds="0BF%
\gdef\hbar{{\mathchar'11\mkern-9muh}}%
\def\@accent@def#1#2#3{\expandafter\gdef
       \csname @#1@\string#2@#1@\endcsname{#3}}%
\gdef\@accent@use#1#2#3{%
  \expandafter\ifx \csname @#1@\string#3@#1@\endcsname \relax
      {\accent#2 #3}%
    \else  \csname @#1@\string#3@#1@\endcsname\fi}%
\gdef\`{\@accent@use{grave}{0}}%
\let\@accii=\`%
\@accent@def{grave}{a}{\char"E0{}}%
\@accent@def{grave}{e}{\char"E8{}}%
\@accent@def{grave}{\i}{\char"EC{}}%
\@accent@def{grave}{i}{\char"EC{}}%
\@accent@def{grave}{o}{\char"F2{}}%
\@accent@def{grave}{u}{\char"F9{}}%
\@accent@def{grave}{A}{\char"C0{}}%
\@accent@def{grave}{E}{\char"C8{}}%
\@accent@def{grave}{I}{\char"CC{}}%
\@accent@def{grave}{O}{\char"D2{}}%
\@accent@def{grave}{U}{\char"D9{}}%
\gdef\'{\@accent@use{acute}{1}}%
\let\@acci=\'%
\@accent@def{acute}{n}{\char"AB{}}%
\@accent@def{acute}{l}{\char"A8{}}%
\@accent@def{acute}{r}{\char"AF{}}%
\@accent@def{acute}{s}{\char"B1{}}%
\@accent@def{acute}{z}{\char"B9{}}%
\@accent@def{acute}{a}{\char"E1{}}%
\@accent@def{acute}{e}{\char"E9{}}%
\@accent@def{acute}{\i}{\char"ED{}}%
\@accent@def{acute}{i}{\char"ED{}}%
\@accent@def{acute}{o}{\char"F3{}}%
\@accent@def{acute}{u}{\char"FA{}}%
\@accent@def{acute}{y}{\char"FD{}}%
\@accent@def{acute}{N}{\char"8B{}}%
\@accent@def{acute}{L}{\char"88{}}%
\@accent@def{acute}{R}{\char"8F{}}%
\@accent@def{acute}{S}{\char"91{}}%
\@accent@def{acute}{Z}{\char"99{}}%
\@accent@def{acute}{A}{\char"C1{}}%
\@accent@def{acute}{E}{\char"C9{}}%
\@accent@def{acute}{I}{\char"CD{}}%
\@accent@def{acute}{O}{\char"D3{}}%
\@accent@def{acute}{U}{\char"DA{}}%
\@accent@def{acute}{Y}{\char"DD{}}%
\@accent@def{acute}{c}{\char"A2{}}%
\@accent@def{acute}{C}{\char"82{}}%
\gdef\v{\@accent@use{check}{7}}%
\@accent@def{check}{c}{\char"A3{}}%
\@accent@def{check}{e}{\char"A5{}}%
\@accent@def{check}{n}{\char"AC{}}%
\@accent@def{check}{r}{\char"B0{}}%
\@accent@def{check}{s}{\char"B2{}}%
\@accent@def{check}{z}{\char"BA{}}%
\@accent@def{check}{C}{\char"83{}}%
\@accent@def{check}{D}{\char"84{}}%
\@accent@def{check}{E}{\char"85{}}%
\@accent@def{check}{N}{\char"8C{}}%
\@accent@def{check}{R}{\char"90{}}%
\@accent@def{check}{S}{\char"92{}}%
\@accent@def{check}{T}{\char"94{}}%
\@accent@def{check}{Z}{\char"9A{}}%
\gdef\u{\@accent@use{breve}{8}}%
\@accent@def{breve}{a}{\char"A0{}}%
\@accent@def{breve}{g}{\char"A7{}}%
\@accent@def{breve}{A}{\char"80{}}%
\@accent@def{breve}{G}{\char"87{}}%
\gdef\=#1{{\accent9 #1}}%
\let\@acciii=\=%
\gdef\^{\@accent@use{circflx}{2}}%
\@accent@def{circflx}{a}{\char"E2{}}%
\@accent@def{circflx}{e}{\char"EA{}}%
\@accent@def{circflx}{\i}{\char"EE{}}%
\@accent@def{circflx}{i}{\char"EE{}}%
\@accent@def{circflx}{o}{\char"F4{}}%
\@accent@def{circflx}{u}{\char"FB{}}%
\@accent@def{circflx}{A}{\char"C2{}}%
\@accent@def{circflx}{E}{\char"CA{}}%
\@accent@def{circflx}{I}{\char"CE{}}%
\@accent@def{circflx}{O}{\char"D4{}}%
\@accent@def{circflx}{U}{\char"DB{}}%
\gdef\.{\@accent@use{dot}{10}}%
\@accent@def{dot}{z}{\char"BB{}}%
\@accent@def{dot}{Z}{\char"9B{}}%
\@accent@def{dot}{I}{\char"9D{}}%
\@accent@def{dot}{i}{i}%
\gdef\H{\@accent@use{Hung}{5}}%
\@accent@def{Hung}{o}{\char"AE{}}%
\@accent@def{Hung}{u}{\char"B6{}}%
\@accent@def{Hung}{O}{\char"8E{}}%
\@accent@def{Hung}{U}{\char"96{}}%
\gdef\~{\@accent@use{tilde}{3}}%
\@accent@def{tilde}{a}{\char"E3{}}%
\@accent@def{tilde}{n}{\char"F1{}}%
\@accent@def{tilde}{o}{\char"F5{}}%
\@accent@def{tilde}{A}{\char"C3{}}%
\@accent@def{tilde}{N}{\char"D1{}}%
\@accent@def{tilde}{O}{\char"D5{}}%
\gdef\"{\@accent@use{Umlaut}{4}}%
\@accent@def{Umlaut}{a}{\char"E4{}}%
\@accent@def{Umlaut}{e}{\char"EB{}}%
\@accent@def{Umlaut}{\i}{\char"EF{}}%
\@accent@def{Umlaut}{i}{\char"EF{}}%
\@accent@def{Umlaut}{o}{\char"F6{}}%
\@accent@def{Umlaut}{u}{\char"FC{}}%
\@accent@def{Umlaut}{A}{\char"C4{}}%
\@accent@def{Umlaut}{E}{\char"CB{}}%
\@accent@def{Umlaut}{I}{\char"CF{}}%
\@accent@def{Umlaut}{O}{\char"D6{}}%
\@accent@def{Umlaut}{U}{\char"DC{}}%
\gdef\pb#1{\oalign{#1\crcr\hidewidth
    \vbox to.2ex{\hbox{\char9}\vss}\hidewidth}}%
\gdef\pc#1{\expandafter\ifx
    \csname @cedilla@\string#1@cedilla@\endcsname \relax
    \c@dilla#1\else \csname @cedilla@\string#1@cedilla@\endcsname\fi}%
\@accent@def{cedilla}{s}{\char"B3{}}%
\@accent@def{cedilla}{t}{\char"B5{}}%
\@accent@def{cedilla}{c}{\char"E7{}}%
\@accent@def{cedilla}{S}{\char"93{}}%
\@accent@def{cedilla}{T}{\char"95{}}%
\@accent@def{cedilla}{C}{\char"C7{}}%
\gdef\c@dilla#1{\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent11 #1%
  \else{\ooalign{\hidewidth\char11\hidewidth\crcr\unhbox\z@}}\fi}%
%
\def\dieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char'004{}\else\string#1\fi}%
}%
\def\acute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"01{}\else\string#1\fi}%
}%
\def\cedilla#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"0D{}\else\string#1\fi}%
}%
\def\Agrave#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"C0{}\else\string#1\fi}%
}%
\def\Aacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"C1{}\else\string#1\fi}%
}%
\def\Acircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"C2{}\else\string#1\fi}%
}%
\def\Atilde#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"C3{}\else\string#1\fi}%
}%
\def\Adieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"C4{}\else\string#1\fi}%
}%
\def\Aring#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"C5{}\else\string#1\fi}%
}%
\def\fiLigature#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{fi}\else\string#1\fi}%
}%
\def\flLigature#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{fl}\else\string#1\fi}%
}%
\def\AE#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"C6{}\else\string#1\fi}%
}%
\def\Ccedilla#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"C7{}\else\string#1\fi}%
}%
\def\Egrave#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"C8{}\else\string#1\fi}%
}%
\def\Eacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"C9{}\else\string#1\fi}%
}%
\def\Ecircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"CA{}\else\string#1\fi}%
}%
\def\Edieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"CB{}\else\string#1\fi}%
}%
\def\Igrave#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"CC{}\else\string#1\fi}%
}%
\def\Iacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"CD{}\else\string#1\fi}%
}%
\def\Icircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"CE{}\else\string#1\fi}%
}%
\def\Idieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"CF{}\else\string#1\fi}%
}%
\def\DBar#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"D0{}\else\string#1\fi}%
}%
\def\Ntilde#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"D1{}\else\string#1\fi}%
}%
\def\Ograve#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"D2{}\else\string#1\fi}%
}%
\def\Oacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"D3{}\else\string#1\fi}%
}%
\def\Ocircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"D4{}\else\string#1\fi}%
}%
\def\Otilde#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"D5{}\else\string#1\fi}%
}%
\def\Odieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"D6{}\else\string#1\fi}%
}%
\def\Oslash#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"D8{}\else\string#1\fi}%
}%
\def\Ugrave#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"D9{}\else\string#1\fi}%
}%
\def\Uacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"DA{}\else\string#1\fi}%
}%
\def\Ucircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"DB{}\else\string#1\fi}%
}%
\def\Udieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"DC{}\else\string#1\fi}%
}%
\def\Yacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"DD{}\else\string#1\fi}%
}%
\def\Thorn#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"DE{}\else\string#1\fi}%
}%
\def\germandbls#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"DF{}\else\string#1\fi}%
}%
\def\agrave#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"E0{}\else\string#1\fi}%
}%
\def\aacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"E1{}\else\string#1\fi}%
}%
\def\acircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"E2{}\else\string#1\fi}%
}%
\def\atilde#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"E3{}\else\string#1\fi}%
}%
\def\adieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"E4{}\else\string#1\fi}%
}%
\def\aring#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"E5{}\else\string#1\fi}%
}%
\def\ae#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"E6{}\else\string#1\fi}%
}%
\def\ccedilla#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"E7{}\else\string#1\fi}%
}%
\def\egrave#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"E8{}\else\string#1\fi}%
}%
\def\eacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"E9{}\else\string#1\fi}%
}%
\def\ecircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"EA{}\else\string#1\fi}%
}%
\def\edieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"EB{}\else\string#1\fi}%
}%
\def\igrave#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"EC{}\else\string#1\fi}%
}%
\def\iacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"ED{}\else\string#1\fi}%
}%
\def\icircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"EE{}\else\string#1\fi}%
}%
\def\idieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"EF{}\else\string#1\fi}%
}%
\def\dBar#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"F0{}\else\string#1\fi}%
}%
\def\ntilde#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"F1{}\else\string#1\fi}%
}%
\def\ograve#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"F2{}\else\string#1\fi}%
}%
\def\oacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"F3{}\else\string#1\fi}%
}%
\def\ocircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"F4{}\else\string#1\fi}%
}%
\def\otilde#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"F5{}\else\string#1\fi}%
}%
\def\odieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"F6{}\else\string#1\fi}%
}%
\def\OE#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\OE{}\else\string#1\fi}%
}%
\def\oe#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\oe{}\else\string#1\fi}%
}%
\def\oslash#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"F8{}\else\string#1\fi}%
}%
\def\ugrave#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"F9{}\else\string#1\fi}%
}%
\def\uacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"FA{}\else\string#1\fi}%
}%
\def\ucircumflex#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"FB{}\else\string#1\fi}%
}%
\def\udieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"FC{}\else\string#1\fi}%
}%
\def\yacute#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"FD{}\else\string#1\fi}%
}%
\def\thorn#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"FE{}\else\string#1\fi}%
}%
\def\ydieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"B8{}\else\string#1\fi}%
}%
\def\Ydieresis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"98{}\else\string#1\fi}%
}%
%
\def\alpha#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{alpha}%
}%
\def\approx#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{approx}%
}%
\def\beta#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{beta}%
}%
\def\bullet#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{bullet}%
}%
\def\cap#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{cap}%
}%
\def\cent#1#2#3{%
      \@UC{#1}{#2}{#3}%
        % no definition in DC
}%
\def\guillemeotright#1#2#3{%
      \@UC{#1}{#2}{#3}%
      % a small space is inserted before the french guillemot
      % and the pre-existing space is removed
      \gdef#1{\ifTR\unskip\@InMath{,}\char'024{}\else\string#1\fi}%
}%
\def\copyright#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\copyright{}\else\string#1\fi}%
}%
\def\currency#1#2#3{% character hex A4 in Iso latin set 1
      \@UC{#1}{#2}{#3}%
        % no definition in DC
}%
\def\degree#1#2#3{%
      \@UC{#1}{#2}{#3}%
}%
\def\dag#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{dag}%
}%
\def\ddag#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{ddag}%
}%
\def\delta#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{delta}%
}%
\def\div#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{div}%
}%
\def\diamond#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{Diamond}%
}%
\def\emptysetSign#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{emptyset}%
}%
\def\section#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\S}\else\string#1\fi}%
}%
\def\epsilon#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{varepsilon}%
}%
\def\equiv#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{equiv}%
}%
\def\ellipsis#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{...}\else\string#1\fi}%
}%
\def\exclamdown#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"BD{}\else\string#1\fi}%
}%
\def\ordfeminine#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\@Sup{\b{a}}\else\string#1\fi}%
}%
\def\geq#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{geq}%
}%
\def\Gamma#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{Gamma}%
}%
\def\infty#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{infty}%
}%
\def\leq#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{leq}%
}%
\def\emdash#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{---}\else\string#1\fi}%
}%
\def\ordmasculine#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\@Sup{\b{o}}\else\string#1\fi}%
}%
\def\mu#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{mu}%
}%
\def\neg#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{neg}%
}%
\def\neq#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{neq}%
}%
\def\unbreakablespace#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR~\else\string#1\fi}%
}%
\def\Omega#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{Omega}%
}%
\def\OneHalf#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\@Fraction{1}{2}}\else\string#1\fi}%
}%
\def\OneQuarter#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\@Fraction{1}{4}}\else\string#1\fi}%
}%
\def\guilletmotleft#1#2#3{%
      \@UC{#1}{#2}{#3}%
      % a small space is added after the opening guillemot
      % and the pre-existing space is removed
      \gdef#1{\ifTR\char"13\unskip\@InMath{,}\else\string#1\fi}%
}%
\def\Pi#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{Pi}%
}%
\def\pi#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{pi}%
}%
\def\pm#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{pm}%
}%
\def\ParagraphSign#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\P}\else\string#1\fi}%
}%
\def\partial#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{partial}%
}%
\def\Phi#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{Phi}%
}%
\def\pounds#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"BF{}\else\string#1\fi}%
}%
\def\powerone#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\@Sup{1}}\else\string#1\fi}%
}%
\def\powerthree#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\@Sup{3}}\else\string#1\fi}%
}%
\def\powertwo#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\@Sup{2}}\else\string#1\fi}%
}%
\def\questiondown#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\char"BE{}\else\string#1\fi}%
}%
\def\register#1#2#3{%
      \@UC{#1}{#2}{#3}%
        % no definition in DC
}%
\def\Sigma#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{Sigma}%
}%
\def\sigma#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{sigma}%
}%
\def\quoteright#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{'}\else\string#1\fi}%
}%
\def\quoteleft#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{`}\else\string#1\fi}%
}%
\def\splitbar#1#2#3{%
      \@UC{#1}{#2}{#3}%
        % no definition in DC
}%
\def\tau#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{tau}%
}%
\def\ThetaSign#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{Theta}%
}%
\def\threequarter#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\@Fraction{3}{4}}\else\string#1\fi}%
}%
\def\times#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \@MathSymbol{#1}{times}%
}%
\def\trademark#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR\@Sup{TM}\else\string#1\fi}%
}%
\def\quotedblright#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{''}\else\string#1\fi}%
}%
\def\quotedblleft#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{``}\else\string#1\fi}%
}%
\def\yen#1#2#3{%
      \@UC{#1}{#2}{#3}%
        % no definition in DC
}%
\def\perthousand#1#2#3{%
      \@UC{#1}{#2}{#3}%
        % no definition in DC
}%
\def\florin#1#2#3{%
      \@UC{#1}{#2}{#3}%
      \gdef#1{\ifTR{\it f}\else\string#1\fi}%
}%
\catcode`\@=\atcatcode \let\atcatcode\relax
%
%</shapedc>
%    \end{macrocode}
%
% \subsection{Table for the code page 850 (file:
%             \Fich{code850.tex})\label{HYPHEN}}
% This file contains code to set up the table to convert the
% code page 850 to 
% the DC or Cm encoding scheme (depending on the value of global 
% variable \Comm{CurrentEncoding}). This file should be moved into
% \TeX's
% memory with an \Comm{input} command and all the characters above 127
% should be active before the call to the \Comm{input} command.
%
%Some normal unaccented character should be made active, just for the case
%where the \Comm{uppercase} command is used with lowercase accented character which don't
%have uppercase accented equivalent (the normal unaccented character is used).
%
%Since the \Comm{uppercase} or \Comm{lowercase} command doesn't change the catcode, 
%the resulting character will have the catcode \Comm{active} (since all the characters
%above 127 are active). Thus a macro should exist !
%    \begin{macrocode}
%<*codepage850>
\chardef\atcatcode=\catcode`\@
\catcode`\@=11\relax
   {%
      \catcode`\Y=\active
      \gdef Y{\string Y}%
   }%
%    \end{macrocode}
% All the characters are assigned to a default value (each character issue a message telling it
% could not be drawn with \TeX{} commands) and a group  is started (in effect
% when the file \Fich{code850.tex} is read)
% to limit the scope of macros created by the inputting 
% of files \Fich{shapecm} or \Fich{shapedc}. These macros
% are used just for setting the tables and never useful
% after that.
% \begin{macrocode} 
\begingroup
\input initcar %
\ifcase\CurrentEncoding
   \input shapecm %
\or
   \input shapedc %
\fi
\Ccedilla{^^80}{"80}{"87}%
\udieresis{^^81}{"9A}{"81}%
\eacute{^^82}{"90}{"82}%
\acircumflex{^^83}{"B6}{"83}%
\adieresis{^^84}{"8E}{"84}%
\agrave{^^85}{"B7}{"85}%
\aring{^^86}{"8F}{"86}%
\ccedilla{^^87}{"80}{"87}%
\ecircumflex{^^88}{"D2}{"88}%
\edieresis{^^89}{"D3}{"89}%
\egrave{^^8a}{"D4}{"8A}%
\idieresis{^^8b}{"D8}{"8B}%
\icircumflex{^^8c}{"D7}{"8C}%
\igrave{^^8d}{"DE}{"8D}%
\Adieresis{^^8e}{"8E}{"84}%
\Aring{^^8f}{"8F}{"86}%
\Eacute{^^90}{"90}{"82}%
\ae{^^91}{"92}{"91}%
\AE{^^92}{"92}{"91}%
\ocircumflex{^^93}{"E2}{"93}%
\odieresis{^^94}{"99}{"94}%
\ograve{^^95}{"E3}{"95}%
\ucircumflex{^^96}{"EA}{"96}%
\ugrave{^^97}{"EB}{"97}%
\ydieresis{^^98}{"59}{"98}%
\Odieresis{^^99}{"99}{"94}%
\Udieresis{^^9a}{"9A}{"81}%
\oslash{^^9b}{"9D}{"9B}%
\pounds{^^9c}{"9C}{"9C}%
\Oslash{^^9d}{"9D}{"9B}%
\times{^^9e}{"9E}{"9E}%
\florin{^^9f}{"9F}{"9F}%
\aacute{^^a0}{"B5}{"A0}%
\iacute{^^a1}{"D6}{"A1}%
\oacute{^^a2}{"E0}{"A2}%
\uacute{^^a3}{"E9}{"A3}%
\ntilde{^^a4}{"A5}{"A4}%
\Ntilde{^^a5}{"A5}{"A4}%
\ordfeminine{^^a6}{"A6}{"A6}%
\ordmasculine{^^a7}{"A7}{"A7}%
\questiondown{^^a8}{"A8}{"A8}%
\register{^^a9}{"A9}{"A9}%
\neg{^^aa}{"AA}{"AA}%
\OneHalf{^^ab}{"AB}{"AB}%
\OneQuarter{^^ac}{"AC}{"AC}%
\exclamdown{^^ad}{"AD}{"AD}%
\guilletmotleft{^^ae}{"AE}{"AE}%
\guillemeotright{^^af}{"AF}{"AF}%
\Aacute{^^b5}{"B5}{"A0}%
\Acircumflex{^^b6}{"B6}{"83}%
\Agrave{^^b7}{"B7}{"85}%
\copyright{^^b8}{"B8}{"B8}%
\cent{^^bd}{"BD}{"BD}%
\yen{^^be}{"BE}{"BE}%
\atilde{^^c6}{"C7}{"C6}%
\Atilde{^^c7}{"C7}{"C6}%
\currency{^^cf}{"CF}{"CF}%
\dBar{^^d0}{"D1}{"D0}%
\DBar{^^d1}{"D1}{"D0}%
\Ecircumflex{^^d2}{"D2}{"88}%
\Edieresis{^^d3}{"D3}{"89}%
\Egrave{^^d4}{"D4}{"8A}%
\powerone{^^d5}{"D5}{"D5}%
\Iacute{^^d6}{"D6}{"A1}%
\Icircumflex{^^d7}{"D7}{"8C}%
\Idieresis{^^d8}{"D8}{"8B}%
\splitbar{^^dd}{"DD}{"DD}%
\Igrave{^^de}{"DE}{"8D}%
\Oacute{^^e0}{"E0}{"A2}%
\beta{^^e1}{"E1}{"E1}%
\Ocircumflex{^^e2}{"E2}{"93}%
\Ograve{^^e3}{"E3}{"95}%
\otilde{^^e4}{"E5}{"E4}%
\Otilde{^^e5}{"E5}{"E4}%
\mu{^^e6}{"E6}{"E6}%
\thorn{^^e7}{"E8}{"E7}%
\Thorn{^^e8}{"E8}{"E7}%
\Uacute{^^e9}{"E9}{"A3}%
\Ucircumflex{^^ea}{"EA}{"96}%
\Ugrave{^^eb}{"EB}{"97}%
\yacute{^^ec}{"ED}{"EC}%
\Yacute{^^ed}{"ED}{"EC}%
\pm{^^f1}{"F1}{"F1}%
\threequarter{^^f3}{"F3}{"F3}%
\ParagraphSign{^^f4}{"F4}{"F4}%
\section{^^f5}{"F5}{"F5}%
\div{^^f6}{"F6}{"F6}%
\cedilla{^^f7}{"F7}{"F7}%
\degree{^^f8}{"F8}{"F8}%
\dieresis{^^f9}{"F9}{"F9}%
\bullet{^^fa}{"FA}{"FA}%
\powerone{^^fb}{"FB}{"FB}%
\powerthree{^^fc}{"FC}{"FC}%
\powertwo{^^fd}{"FD}{"FD}%
\endgroup
%    \end{macrocode}
%
% \DescribeMacro{\@MakeHyphenation850}
%\Comm{@MakeHyphenationEightFiveZero} prepare a letter given as parameter
%to do a letter for hyphenation exception.
%
% The algorithm to build the exception hyphenation pattern put all the characters
% to lower case before setting up the hyphenation tables. When a string should be broken
% it is transformed in lowercase and then compared with the hyphenation pattern.
%
% Since these two transformations are performed on two different characters (the first, before
% a character from a code page was translated, the second after), a match could never occur.
%
% The aim of this macro is to adapt the value of the \Comm{lccode} of a character to be used
% in the \Comm{hyphenation} to permit a match when this character will be translated in something
% else.
%
%\textbf{Examples:}\\
%     ``e grave'' (character hexa 8a) in code page 850 will be translated in \textsc{Dc}
%     encoding scheme to character hexa (E8). In code page 850,
%     the character hexa
%     E8 will have a lowercase character hexa E7 (in code page 850). When the translated
%     character ``e grave'' will be put in lowercase, his value will be hexa E7.
%     From that we can deduce that to
%     use \Comm{hyphenation} with ``e grave'' (character hexa 8a in code page 850), ``e grave'' should
%     have \Comm{lccode="E7}.
%
%     ``n tilde'' (character hexa A4  in code page 850) will be translated
%     to character hexa F1 in \textsc{Dc} encoding. Character hexa F1 in code page
%     850 is ``plus-minus'' sign which has lowercase hexa F1 thus
%     the \Comm{lccode} for ``n tilde'' for use with the \Comm{hyphenation} command
%     should be hexa F1.
%
%     This macro is meaningless with the \textsc{Cm} encoding !
%   \begin{macrocode}
\ifnum\CurrentEncoding=\DC\relax
\def\@MakeHyphenationEightFiveZero#1{%
  \catcode`#1=12% make character given in parameter other which is
                % a legal catcode for \hyphenation
  \ifnum`#1="80
     %C cedilla translated in DC encoding to "D7 (which is A tilde)
     %with a tilde ("d6) as lowercase
     \lccode`#1="D6%
  \else\ifnum`#1="81
     %u dieresis --> "FC
     \lccode`#1="FC%
  \else\ifnum`#1="82
     %e acute --> "E9 (U acute) --> u acute
     \lccode`#1="A3%
  \else\ifnum`#1="83
     %a circumflex --> "E2 O circumflex --> o circumflex
     \lccode`#1="93%
  \else\ifnum`#1="84
     %a dieresis --> "E4 o tilde
     \lccode`#1="E4%
     \@ConflictHyphenCarMsg{a dieresis ("84)}{a ring ("86)}
  \else\ifnum`#1="85
     %a grave --> "E O acute --> "A2 (o acute in code page 850)
     \lccode`#1="A2%
  \else\ifnum`#1="86
     %a ring --> "E5 O tilde --> "E4
     \lccode`#1="E4%
     \@ConflictHyphenCarMsg{a ring ("86)}{a dieresis ("84)}
  \else\ifnum`#1="87
     %c cedilla --> "E7  --> "E7
     \lccode`#1="E7%
     \@ConflictHyphenCarMsg{c cedilla ("87)}{e grave ("8A)}
 \else\ifnum`#1="88
     %e circumflex --> "EA (U circumflex ---> "96
     \lccode`#1="96%
  \else\ifnum`#1="89
     %e dieresis --> "EB U grave --> "97
     \lccode`#1="97%
  \else\ifnum`#1="8A
     %e grave --> "E8 Thorn --> "E7
     \lccode`#1="E7%
     \@ConflictHyphenCarMsg{e grave ("8A)}{c cedilla ("87)}
  \else\ifnum`#1="8B
     %i dieresis --> "EF (acute accent)
     \lccode`#1="EF%
  \else\ifnum`#1="8C
     %i circumflex --> "EE (BAR Accent)
     \lccode`#1="EE%
  \else\ifnum`#1="8D
     %i grave --> "EC (y acute)
     \lccode`#1="EC%
     \@ConflictHyphenCarMsg{i grave ("8D)}{i acute ("A1)}
  \else\ifnum`#1="8E
     %A dieresis --> "C4 (semi graphical character)
     \lccode`#1="C4%
  \else\ifnum`#1="8F
     %A ring --> "C5 (semi graphical character)
     \lccode`#1="C5%
  \else\ifnum`#1="90
     %E acute --> "C9 (semi graphical character)
     \lccode`#1="C9%
  \else\ifnum`#1="91
     %ae ligature --> "E6 (mu sign)
     \lccode`#1="E6%
  \else\ifnum`#1="92
     %AE ligature --> "C6 (a tilde)
     \lccode`#1="C6%
  \else\ifnum`#1="93
     %o circumflex --> "F4 (Paragraph Sign)
     \lccode`#1="F4%
  \else\ifnum`#1="94
     %o dieresis --> "F6 (divide sign)
     \lccode`#1="F6%
  \else\ifnum`#1="95
     %O grave --> "F2 (equal sign)
     \lccode`#1="F2%
  \else\ifnum`#1="96
     %u circumflex --> "FB (Power one sign)
     \lccode`#1="FB%
  \else\ifnum`#1="97
     %u grave --> "F9 (dieresis accent)
     \lccode`#1="F9%
  \else\ifnum`#1="98
     %y dieresis --> "B8 (Copyright sign)
     \lccode`#1="B8%
  \else\ifnum`#1="99
     %O dieresis --> "D6 (I acute) --> i acute
     \lccode`#1="A1%
  \else\ifnum`#1="9A
     %U dieresis --> "DC (semi graphical sign)
     \lccode`#1="DC%
  \else\ifnum`#1="9B
     %o slash --> "F8 (Degree sign)
     \lccode`#1="F8%
  \else\ifnum`#1="9D
     %O slash --> "D8 (I dieresis) --> i dieresis
     \lccode`#1="8B%
  \else\ifnum`#1="A0
     %a acute --> "E1 (Beta sign)
     \lccode`#1="E1%
  \else\ifnum`#1="A1
     %i acute --> "ED (Y acute) --> y acute
     \lccode`#1="EC%
     \@ConflictHyphenCarMsg{i acute ("A1)}{i grave ("8D)}
  \else\ifnum`#1="A2
     %o acute --> "F3 (three quarter sign)
     \lccode`#1="F3%
  \else\ifnum`#1="A3
     %u acute --> "FA (Bullet sign)
     \lccode`#1="FA%
  \else\ifnum`#1="A4
     %n tilde --> "F1 (Plus minus sign)
     \lccode`#1="F1%
  \else\ifnum`#1="A5
     %N tilde --> "D1 (D bar) --> d bar
     \lccode`#1="D0%
     \@ConflictHyphenCarMsg{N tilde ("A5)}{D bar ("D1)}
  \else\ifnum`#1="B5
     %A acute --> "C1 (semi graphical sign)
     \lccode`#1="C1%
  \else\ifnum`#1="B6
     %A circumflex --> "C2 (semi graphical sign)
     \lccode`#1="C2%
  \else\ifnum`#1="B7
     %A grave --> "C0 (Semi graphical sign)
     \lccode`#1="C0%
  \else\ifnum`#1="D0
     %d bar --> "F0 (minus sign)
     \lccode`#1="F0%
  \else\ifnum`#1="D1
     %D bar --> "D0 (d bar)
     \lccode`#1="D0%
     \@ConflictHyphenCarMsg{D bar ("D1)}{N tilde ("A5}
  \else\ifnum`#1="D2
     %E circumflex --> "CA (semi-graphical sign)
     \lccode`#1="CA%
  \else\ifnum`#1="D3
     %E dieresis --> "CB (semi graphical sign)
     \lccode`#1="CB%
  \else\ifnum`#1="D4
     %E grave --> "C8 (semi graphical sign)
     \lccode`#1="C8%
  \else\ifnum`#1="D6
     %I acute --> "CD (semi graphical sign)
     \lccode`#1="CD%
  \else\ifnum`#1="D7
     %I circumflex --> "CE (semi-graphical sign)
     \lccode`#1="CE%
  \else\ifnum`#1="D8
     %I dieresis --> "CF (currency sign)
     \lccode`#1="CF%
  \else\ifnum`#1="E0
     %O acute --> "D3 (E dieresis) --> e dieresis
     \lccode`#1="89%
  \else\ifnum`#1="E2
     %O circumflex --> "D4 (E grave) --> e grave
     \lccode`#1="8A%
  \else\ifnum`#1="E3
     %O grave --> "D2 (E circumflex) --> e circumflex
     \lccode`#1="88%
  \else\ifnum`#1="E4
     %o tilde --> "F5 (End of flow sign)
     \lccode`#1="F5%
  \else\ifnum`#1="E5
     %O tilde --> "D5 (Power One sign)
     \lccode`#1="D5%
  \else\ifnum`#1="E7
     %thorn --> "FE (semi graphical sign)
     \lccode`#1="FE%
  \else\ifnum`#1="E8
     %P like letter --> "DE (I acute) --> i acute
     \lccode`#1="8D%
  \else\ifnum`#1="E9
     %U acute --> "DA (semi graphical sign)
     \lccode`#1="DA%
  \else\ifnum`#1="EA
     %U circumflex --> "DB (semi graphical sign)
     \lccode`#1="DB%
  \else\ifnum`#1="EB
     %U grave --> "D9 (semi graphical sign)
     \lccode`#1="D9%
  \else\ifnum`#1="EC
     %y acute --> "FD (Power two sign)
     \lccode`#1="FD%
  \else\ifnum`#1="ED
     %Y acute --> "DD (Slit vertical bar sign)
     \lccode`#1="DD%
  \else
    %we don't have a letter (a character to form word)
    \@BadHyphenCarMsg{#1}
    \catcode`#1=15% make this character invalid
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  \fi\fi\fi\fi\fi\fi\fi\fi
% We must have same count of \fi than \ifnum (58)
}%\@MakeHyphenationEightFiveZero
\fi % \ifx\CurrentEncoding...
\catcode`\@=\atcatcode \let\atcatcode\relax
%</codepage850>
%    \end{macrocode}
% \subsection{Table for the code page 437 (file: \Fich{code437.tex})}
% \DescribeMacro{\@FourThreeSeven}
%    \begin{macrocode}
%<*codepage437>
\chardef\atcatcode=\catcode`\@
\catcode`\@=11\relax
\begingroup
   \catcode`\A=\active
   \catcode`\E=\active
   \catcode`\I=\active
   \catcode`\O=\active
   \catcode`\U=\active
   \catcode`\Y=\active
   \gdef A{\string A}%
   \gdef E{\string E}%
   \gdef I{\string I}%
   \gdef O{\string O}%
   \gdef U{\string U}%
   \gdef Y{\string Y}%
\endgroup
\input initcar %
\begingroup
\ifcase\CurrentEncoding
   \input shapecm %
\or
   \input shapedc %
\fi
\Ccedilla{^^80}{"80}{"87}%
\Adieresis{^^8e}{"8E}{"84}%
\Aring{^^8f}{"8F}{"86}%
\Eacute{^^90}{"90}{"82}%
\AE{^^92}{"92}{"91}%
\Odieresis{^^99}{"99}{"94}%
\Udieresis{^^9a}{"9A}{"81}%
\Ntilde{^^a5}{"A5}{"A4}%
\udieresis{^^81}{"9A}{"81}%
\eacute{^^82}{"90}{"82}%
\acircumflex{^^83}{"41}{"83}%
\adieresis{^^84}{"8E}{"84}%
\agrave{^^85}{"41}{"85}%
\aring{^^86}{"8F}{"86}%
\ccedilla{^^87}{"80}{"87}%
\ecircumflex{^^88}{"45}{"88}%
\edieresis{^^89}{"45}{"89}%
\egrave{^^8a}{"45}{"8A}%
\idieresis{^^8b}{"49}{"8B}%
\icircumflex{^^8c}{"49}{"8C}%
\igrave{^^8d}{"49}{"8D}%
\ae{^^91}{"92}{"91}%
\ocircumflex{^^93}{"4F}{"93}%
\odieresis{^^94}{"99}{"94}%
\ograve{^^95}{"4F}{"95}%
\ucircumflex{^^96}{"55}{"96}%
\ugrave{^^97}{"55}{"97}%
\ydieresis{^^98}{"59}{"98}%
\pounds{^^9c}{"9C}{"9C}%
\florin{^^9f}{"9F}{"9F}%
\aacute{^^a0}{"41}{"A0}%
\iacute{^^a1}{"49}{"A1}%
\oacute{^^a2}{"4F}{"A2}%
\uacute{^^a3}{"55}{"A3}%
\ntilde{^^a4}{"A5}{"A4}%
\questiondown{^^a8}{"A8}{"A8}%
\exclamdown{^^ad}{"AD}{"AD}%
\guilletmotleft{^^ae}{"AE}{"AE}%
\guillemeotright{^^af}{"AF}{"AF}%
\alpha{^^e0}{"E0}{"E0}%
\beta{^^e1}{"E1}{"E1}%
\Gamma{^^e2}{"E2}{"E2}%
\pi{^^e3}{"E3}{"E3}%
\Sigma{^^e4}{"E4}{"E4}%
\sigma{^^e5}{"E5}{"E5}%
\mu{^^e6}{"E6}{"E6}%
\tau{^^e7}{"E7}{"E7}%
\Phi{^^e8}{"E8}{"E8}%
\ThetaSign{^^e9}{"E9}{"E9}%
\Omega{^^ea}{"EA}{"EA}%
\delta{^^eb}{"EB}{"EB}%
\infty{^^ec}{"EC}{"EC}%
\emptysetSign{^^ed}{"ED}{"ED}%
\epsilon{^^ee}{"EE}{"EE}%
\cap{^^ef}{"EF}{"EF}%
\equiv{^^f0}{"F0}{"F0}%
\pm{^^f1}{"F1}{"F1}%
\geq{^^f2}{"F2}{"F2}%
\leq{^^f3}{"F3}{"F3}%
\div{^^f6}{"F6}{"F6}%
\approx{^^f7}{"F7}{"F7}%
\bullet{^^f9}{"F9}{"F9}%
\endgroup
%    \end{macrocode}
% \DescribeMacro{\@MakeHyphenation437}
%    \begin{macrocode}
\ifnum\CurrentEncoding=\DC\relax
\def\@MakeHyphenationFourThreeSeven#1{%
  \catcode`#1=12%
  \ifnum`#1="80
     % C cedilla translated in DC encoding to "D7 (which is a semi graphical
     % sign  in code page 437)
     \lccode`#1="D7%
  \else\ifnum`#1="81
     %u dieresis --> "FC
     \lccode`#1="FC%
  \else\ifnum`#1="82
     %e acute --> "E9 (Theta sign)
     \lccode`#1="E9%
  \else\ifnum`#1="83
     %a circumflex --> "E2 (Gamma sign)
     \lccode`#1="E2%
  \else\ifnum`#1="84
     %a dieresis --> "E4 o tilde
     \lccode`#1="E4%
  \else\ifnum`#1="85
     %a grave --> "E0 (alpha sign)
     \lccode`#1="E0%
  \else\ifnum`#1="86
     %a ring --> "E5 (sigma sign)
     \lccode`#1="E5%
  \else\ifnum`#1="87
     %c cedilla --> "E7 (tau sign)
     \lccode`#1="E7%
 \else\ifnum`#1="88
     %e circumflex --> "EA (Omega sign)
     \lccode`#1="EA%
  \else\ifnum`#1="89
     %e dieresis --> "EB (delta sign)
     \lccode`#1="EB%
  \else\ifnum`#1="8A
     %e grave --> "E8 (Phi sign)
     \lccode`#1="E8%
  \else\ifnum`#1="8B
     %i dieresis --> "EF (set intersection sign)
     \lccode`#1="EF%
  \else\ifnum`#1="8C
     %i circumflex --> "EE (epsilon sign)
     \lccode`#1="EE%
  \else\ifnum`#1="8D
     %i grave --> "EC (infinity sign)
     \lccode`#1="EC%
  \else\ifnum`#1="8E
     %A dieresis --> "C4 (semi graphical character)
     \lccode`#1="C4%
  \else\ifnum`#1="8F
     %A ring --> "C5 (semi graphical character)
     \lccode`#1="C5%
  \else\ifnum`#1="90
     %E acute --> "C9 (semi graphical character)
     \lccode`#1="C9%
  \else\ifnum`#1="91
     %ae ligature --> "E6 (mu sign)
     \lccode`#1="E6%
  \else\ifnum`#1="92
     %AE ligature --> "C6 (semi graphical character)
     \lccode`#1="C6%
  \else\ifnum`#1="93
     %o circumflex --> "F4 (upper part of integral sign)
     \lccode`#1="F4%
  \else\ifnum`#1="94
     %o dieresis --> "F6 (divide sign)
     \lccode`#1="F6%
  \else\ifnum`#1="95
     %O grave --> "F2 (greater or equal sign)
     \lccode`#1="F2%
  \else\ifnum`#1="96
     %u circumflex --> "FB (square sign)
     \lccode`#1="FB%
  \else\ifnum`#1="97
     %u grave --> "F9 (big bullet sign)
     \lccode`#1="F9%
  \else\ifnum`#1="98
     %y dieresis --> "B8 (semi graphical character)
     \lccode`#1="B8%
  \else\ifnum`#1="99
     %O dieresis --> "D6 (semi graphical character)
     \lccode`#1="D6%
  \else\ifnum`#1="9A
     %U dieresis --> "DC (semi graphical sign)
     \lccode`#1="DC%
  \else\ifnum`#1="A0
     %a acute --> "E1 (Beta sign)
     \lccode`#1="E1%
  \else\ifnum`#1="A1
     %i acute --> "ED (empty set sign)
     \lccode`#1="ED%
  \else\ifnum`#1="A2
     %o acute --> "F3 (less or equal sign)
     \lccode`#1="F3%
  \else\ifnum`#1="A3
     %u acute --> "FA (Bullet sign)
     \lccode`#1="FA%
  \else\ifnum`#1="A4
     %n tilde --> "F1 (Plus minus sign)
     \lccode`#1="F1%
  \else\ifnum`#1="A5
     %N tilde --> "D1 (semi graphical character)
     \lccode`#1="D1%
  \else
    %we don't have a letter (a character to form word)
    \@BadHyphenCarMsg{#1}
    \catcode`#1=15% make this character invalid
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  \fi\fi\fi
% We must have same count of \fi than \ifnum (33)
}%
\fi %\ifx\CurrentEncoding...
\catcode`\@=\atcatcode \let\atcatcode\relax
%</codepage437>
%    \end{macrocode}
% \subsection{Table for the code page of {\normalfont\textsc{Mc Intosh}} (file: \Fich{codemac.tex})}
% \DescribeMacro{\@CodeMac}
%    \begin{macrocode}
%<*codepagemac>
\chardef\atcatcode=\catcode`\@
\catcode`\@=11\relax
   {%
      \catcode`\Y=\active
      \gdef Y{\string Y}%
   }%
\begingroup
\input initcar %
\ifcase\CurrentEncoding
   \input shapecm %
\or
   \input shapedc %
\fi
\Adieresis{^^80}{"80}{"8A}%
\Aring{^^81}{"81}{"8C}%
\Ccedilla{^^82}{"82}{"8D}%
\Eacute{^^83}{"83}{"8E}%
\Ntilde{^^84}{"84}{"96}%
\Odieresis{^^85}{"85}{"9A}%
\Udieresis{^^86}{"86}{"9F}%
\aacute{^^87}{"E7}{"87}%
\agrave{^^88}{"CB}{"88}%
\acircumflex{^^89}{"E5}{"89}%
\adieresis{^^8a}{"80}{"8A}%
\atilde{^^8b}{"CC}{"8B}%
\aring{^^8c}{"81}{"8C}%
\ccedilla{^^8d}{"82}{"8D}%
\eacute{^^8e}{"83}{"8E}%
\egrave{^^8f}{"E9}{"8F}%
\ecircumflex{^^90}{"E6}{"90}%
\edieresis{^^91}{"E8}{"91}%
\iacute{^^92}{"EA}{"92}%
\igrave{^^93}{"ED}{"93}%
\icircumflex{^^94}{"EB}{"94}%
\idieresis{^^95}{"EC}{"95}%
\ntilde{^^96}{"84}{"96}%
\oacute{^^97}{"EE}{"97}%
\ograve{^^98}{"F1}{"98}%
\ocircumflex{^^99}{"EF}{"99}%
\odieresis{^^9a}{"85}{"9A}%
\otilde{^^9b}{"CD}{"9B}%
\uacute{^^9c}{"F2}{"9C}%
\ugrave{^^9d}{"F4}{"9D}%
\ucircumflex{^^9e}{"F3}{"9E}%
\udieresis{^^9f}{"86}{"9F}%
\dag{^^a0}{"A0}{"A0}%
\degree{^^a1}{"A1}{"A1}%
\cent{^^a2}{"A2}{"A2}%
\pounds{^^a3}{"A3}{"A3}%
\section{^^a4}{"A4}{"A4}%
\bullet{^^a5}{"A5}{"A5}%
\ParagraphSign{^^a6}{"A6}{"A6}%
\beta{^^a7}{"A7}{"A7}%
\register{^^a8}{"A8}{"A8}%
\copyright{^^a9}{"A9}{"A9}%
\trademark{^^aa}{"AA}{"AA}%
\acute{^^ab}{"AB}{"AB}%
\dieresis{^^ac}{"AC}{"AC}%
\neq{^^ad}{"AD}{"AD}%
\AE{^^ae}{"AE}{"BE}%
\Oslash{^^af}{"AF}{"BF}%
\pm{^^b1}{"B1}{"B1}%
\leq{^^b2}{"B2}{"B2}%
\geq{^^b3}{"B3}{"B3}%
\yen{^^b4}{"B4}{"B4}%
\mu{^^b5}{"B5}{"B5}%
\delta{^^b6}{"B6}{"B6}%
\Sigma{^^b7}{"B7}{"B7}%
\Pi{^^b8}{"B8}{"B8}%
\pi{^^b9}{"B9}{"B9}%
\florin{^^ba}{"BA}{"BA}%
\ordfeminine{^^bb}{"BB}{"BB}%
\ordmasculine{^^bc}{"BC}{"BC}%
\Omega{^^bd}{"BD}{"BD}%
\ae{^^be}{"AE}{"BE}%
\oslash{^^bf}{"AF}{"BF}%
\questiondown{^^c0}{"C0}{"C0}%
\exclamdown{^^c1}{"C1}{"C1}%
\neg{^^c2}{"C2}{"C2}%
\approx{^^c5}{"C5}{"C5}%
\partial{^^c6}{"C6}{"C6}%
\guilletmotleft{^^c7}{"C7}{"C7}%
\guillemeotright{^^c8}{"C8}{"C8}%
\ellipsis{^^c9}{"C9}{"C9}%
\unbreakablespace{^^ca}{"CA}{"CA}%
\Agrave{^^cb}{"CB}{"88}%
\Atilde{^^cc}{"CC}{"8B}%
\Otilde{^^cd}{"CD}{"9B}%
\OE{^^ce}{"CE}{"CF}%
\oe{^^cf}{"CE}{"CF}%
\emdash{^^d1}{"D1}{"D1}%
\quotedblleft{^^d2}{"D2}{"D2}%
\quotedblright{^^d3}{"D3}{"D3}%
\quoteleft{^^d4}{"D4}{"D4}%
\quoteright{^^d5}{"D5}{"D5}%
\div{^^d6}{"D6}{"D6}%
\diamond{^^d7}{"D7}{"D7}%
\ydieresis{^^d8}{"D9}{"D8}%
\Ydieresis{^^d9}{"D9}{"D8}%
\currency{^^db}{"DB}{"DB}%
\fiLigature{^^de}{"DE}{"DE}%
\flLigature{^^df}{"DF}{"DF}%
\ddag{^^e0}{"E0}{"E0}%
\cedilla{^^e2}{"E2}{"E2}%
\perthousand{^^e4}{"E4}{"E4}%
\Acircumflex{^^e5}{"E5}{"89}%
\Ecircumflex{^^e6}{"E6}{"90}%
\Aacute{^^e7}{"E7}{"87}%
\Edieresis{^^e8}{"E8}{"91}%
\Egrave{^^e9}{"E9}{"8F}%
\Iacute{^^ea}{"EA}{"92}%
\Icircumflex{^^eb}{"EB}{"94}%
\Idieresis{^^ec}{"EC}{"95}%
\Igrave{^^ed}{"ED}{"93}%
\Oacute{^^ee}{"EE}{"97}%
\Ocircumflex{^^ef}{"EF}{"99}%
\Ograve{^^f1}{"F1}{"98}%
\Uacute{^^f2}{"F2}{"9C}%
\Ucircumflex{^^f3}{"F3}{"9E}%
\Ugrave{^^f4}{"F4}{"9D}%
\powerone{^^f5}{"F5}{"F5}%
\endgroup
%    \end{macrocode}
%
% \DescribeMacro{\@MakeHyphenationMac}
%    \begin{macrocode}
\ifnum\CurrentEncoding=\DC\relax
\def\@MakeHyphenationMac#1{%
 \catcode`#1=12%Legal value for \hyphenation
  \ifnum`#1="80
     % A dieresis --> C4 (graphical symbol)
     \lccode`#1="C4%
  \else\ifnum`#1="81
     %A ring --> "C5 (approx sign)
     \lccode`#1="C5%
  \else\ifnum`#1="82
     %C cedilla --> "C7 (french opening guillemet)
     \lccode`#1="C7%
  \else\ifnum`#1="83
     %E acute --> "C9 (three dot sign)
     \lccode`#1="C9%
  \else\ifnum`#1="84
     %N tilde --> "D1 (long dash)
     \lccode`#1="D1%
  \else\ifnum`#1="85
     %O dieresis --> "D6 (divide sign)
     \lccode`#1="D6%
  \else\ifnum`#1="86
     %U dieresis --> "DC (graphical symbol)
     \lccode`#1="DC%
  \else\ifnum`#1="87
     %a acute --> "E1 (graphical symbol)
     \lccode`#1="E1%
 \else\ifnum`#1="88
     %a grave --> "E0 (double dag sign)
     \lccode`#1="E0%
  \else\ifnum`#1="89
     %a circumflex --> "E2 (cedilla accent)
     \lccode`#1="E2%
  \else\ifnum`#1="8A
     %a dieresis --> "E4 (graphical symbol)
     \lccode`#1="E4%
  \else\ifnum`#1="8B
     %a tilde --> "E3 (graphical symbol)
     \lccode`#1="E3%
  \else\ifnum`#1="8C
     %a ring --> "E5 (A circumflex) --> a circumflex
     \lccode`#1="89%
  \else\ifnum`#1="8D
     %c cedilla --> "E7 (A acute) --> a acute
     \lccode`#1="87%
  \else\ifnum`#1="8E
     %e acute --> "E9 (E grave) --> e grave
     \lccode`#1="8F%
  \else\ifnum`#1="8F
     %e grave --> "E8 (E dieresis) --> e dieresis
     \lccode`#1="91%
  \else\ifnum`#1="90
     %e circumflex --> "EA (I acute) --> i acute
     \lccode`#1="92%
  \else\ifnum`#1="91
     %e dieresis --> "EB (I circumflex) --> i circumflex
     \lccode`#1="94%
  \else\ifnum`#1="92
     %i acute --> "ED (I grave) --> i grave
     \lccode`#1="93%
  \else\ifnum`#1="93
     %i grave --> "EC (I dieresis) --> i dieresis
     \lccode`#1="95%
  \else\ifnum`#1="94
     %i circumflex --> "EE (O acute) --> o acute
     \lccode`#1="97%
  \else\ifnum`#1="95
     %i dieresis --> "EF (O circumflex) --> o circumflex
     \lccode`#1="99%
  \else\ifnum`#1="96
     %n tilde --> "F1 (O grave) --> o grave
     \lccode`#1="98%
  \else\ifnum`#1="97
     %o acute --> "F3 (U circumflex) --> u circumflex
     \lccode`#1="9E%
  \else\ifnum`#1="98
     %o grave --> "F2 (U acute) --> u acute
     \lccode`#1="9C%
  \else\ifnum`#1="99
     %o circumflex --> "F4 (U grave) --> u grave
     \lccode`#1="9D%
  \else\ifnum`#1="9A
     %o dieresis --> "F6 (graphical sign)
     \lccode`#1="F6%
  \else\ifnum`#1="9B
     %o tilde --> "F5 (power one sign)
     \lccode`#1="F5%
  \else\ifnum`#1="9C
     %u acute --> "FA (graphical sign)
     \lccode`#1="FA%
  \else\ifnum`#1="9D
     %u grave --> "F9 (graphical sign)
     \lccode`#1="F9%
  \else\ifnum`#1="9E
     %u circumflex --> "FB (graphical sign)
     \lccode`#1="FB%
  \else\ifnum`#1="9F
     %u dieresis --> "FC (graphical sign)
     \lccode`#1="FC%
  \else\ifnum`#1="AE
     %AE ligature --> "C6 (differential sign)
     \lccode`#1="C6%
  \else\ifnum`#1="BE
     %ae ligature --> "E6 (E circumflex) --> e circumflex
     \lccode`#1="90%
  \else\ifnum`#1="CB
     %A grave --> "C0 (Interrogation down sign)
     \lccode`#1="C0%
  \else\ifnum`#1="CC
     %A tilde --> "C3 (graphical sign)
     \lccode`#1="C3%
  \else\ifnum`#1="CD
     %O tilde --> "D5 (closing american quote)
     \lccode`#1="D5%
  \else\ifnum`#1="CE
     %OE ligature --> "D7 (diamond sign)
     \lccode`#1="D7%
  \else\ifnum`#1="CF
     %oe ligature --> "F7 (graphical sign)
     \lccode`#1="F7%
  \else\ifnum`#1="D8
     %y dieresis --> "B8 (Pi sign)
     \lccode`#1="B8%
  \else\ifnum`#1="E5
     %A circumflex --> "C2 (neg sign)
     \lccode`#1="C2%
  \else\ifnum`#1="E6
     %E circumflex --> "CA (graphical sign)
     \lccode`#1="CA%
  \else\ifnum`#1="E7
     %A acute --> "C1 (Exclam down sign)
     \lccode`#1="C1%
  \else\ifnum`#1="E8
     %E dieresis --> "CB (A acute) --> a acute
     \lccode`#1="88%
  \else\ifnum`#1="E9
     %E grave --> "C8 (closing french guillemet)
     \lccode`#1="C8%
  \else\ifnum`#1="EA
     %I acute --> "CD (O tilde) --> o tilde
     \lccode`#1="9B%
  \else\ifnum`#1="EB
     %I circumflex --> "CE (OE ligature) --> oe ligature
     \lccode`#1="EF%
     \@ConflictHyphenCarMsg{I circumflex ("EB)}{I dieresis ("EC)}%
  \else\ifnum`#1="EC
     %I dieresis --> "CF (oe ligature)
     \lccode`#1="EF%
     \@ConflictHyphenCarMsg{I dieresis ("EC)}{I circumflex ("EB)}%
  \else\ifnum`#1="ED
     %I acute --> "CC (A tilde) --> a tilde
     \lccode`#1="8B%
  \else\ifnum`#1="EE%
     %O acute --> "D3 (closing us guillemet)
     \lccode`#1="D3%
  \else\ifnum`#1="EF%
     %O circumflex --> "D4 (opening quote)
     \lccode`#1="D4%
  \else\ifnum`#1="F1%
     %O grave --> "D2 (Opening US guillemets)
     \lccode`#1="D2%
  \else\ifnum`#1="F2%
     %U acute --> "DA (graphical character)
     \lccode`#1="DA%
  \else\ifnum`#1="F3%
     %U circumflex --> "DB (graphical character)
     \lccode`#1="DB%
  \else\ifnum`#1="F4%
     %U grave --> "D9 (Y dieresis) --> y dieresis
     \lccode`#1="D8%
  \else
    %we don't have a letter (a character to form word)
    \@BadHyphenCarMsg{#1}
    \catcode`#1=15% make this character invalid
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  \fi\fi\fi\fi\fi
% We must have same count of \fi than \ifnum (55)
}%
\fi %\ifx\CurrentEncoding...
\catcode`\@=\atcatcode \let\atcatcode\relax
%</codepagemac>
%    \end{macrocode}
% \subsection{Table for the code page of {\normalfont\textsc{Iso Latin set One}} (file: \Fich{codeiso1.tex})}
% \DescribeMacro{\@IsoLatinSetOne}
%    \begin{macrocode}
%<*codepageiso1>
\chardef\atcatcode=\catcode`\@
\catcode`\@=11\relax
   {%
      \catcode`\Y=\active
      \gdef Y{\string Y}%
   }%
\begingroup
\input initcar %
\ifcase\CurrentEncoding
   \input shapecm %
   \Agrave{^^c0}{"C0}{"E0}%
   \Aacute{^^c1}{"C1}{"E1}%
   \Acircumflex{^^c2}{"C2}{"E2}%
   \Atilde{^^c3}{"C3}{"E3}%
   \Adieresis{^^c4}{"C4}{"E4}%
   \Aring{^^c5}{"C5}{"E5}%
   \AE{^^c6}{"C6}{"E6}%
   \Ccedilla{^^c7}{"C7}{"E7}%
   \Egrave{^^c8}{"C8}{"E8}%
   \Eacute{^^c9}{"C9}{"E9}%
   \Ecircumflex{^^ca}{"CA}{"EA}%
   \Edieresis{^^cb}{"CB}{"EB}%
   \Igrave{^^cc}{"CC}{"EC}%
   \Iacute{^^cd}{"CD}{"ED}%
   \Icircumflex{^^ce}{"CE}{"EE}%
   \Idieresis{^^cf}{"CF}{"EF}%
   \DBar{^^d0}{"D0}{"F0}%
   \Ntilde{^^d1}{"D1}{"F1}%
   \Ograve{^^d2}{"D2}{"F2}%
   \Oacute{^^d3}{"D3}{"F3}%
   \Ocircumflex{^^d4}{"D4}{"F4}%
   \Otilde{^^d5}{"D5}{"F5}%
   \Odieresis{^^d6}{"D6}{"F6}%
   \times{^^d7}{"D7}{"D7}%
   \Oslash{^^d8}{"D8}{"F8}%
   \Ugrave{^^d9}{"D9}{"F9}%
   \Uacute{^^da}{"DA}{"FA}%
   \Ucircumflex{^^db}{"DB}{"FB}%
   \Udieresis{^^dc}{"DC}{"FC}%
   \Yacute{^^dd}{"DD}{"FD}%
   \thorn{^^de}{"FE}{"DE}%
   \beta{^^df}{"DF}{"DF}%
   \agrave{^^e0}{"C0}{"E0}%
   \aacute{^^e1}{"C1}{"E1}%
   \acircumflex{^^e2}{"C2}{"E2}%
   \atilde{^^e3}{"C3}{"E3}%
   \adieresis{^^e4}{"C4}{"E4}%
   \aring{^^e5}{"C5}{"E5}%
   \ae{^^e6}{"C6}{"E6}%
   \ccedilla{^^e7}{"C7}{"E7}%
   \egrave{^^e8}{"C8}{"E8}%
   \eacute{^^e9}{"C9}{"E9}%
   \ecircumflex{^^ea}{"CA}{"EA}%
   \edieresis{^^eb}{"CB}{"EB}%
   \igrave{^^ec}{"CC}{"EC}%
   \iacute{^^ed}{"CD}{"ED}%
   \icircumflex{^^ee}{"CE}{"EE}%
   \idieresis{^^ef}{"CF}{"EF}%
   \dBar{^^f0}{"D0}{"F0}%
   \ntilde{^^f1}{"D1}{"F1}%
   \ograve{^^f2}{"D2}{"F2}%
   \oacute{^^f3}{"D3}{"F3}%
   \ocircumflex{^^f4}{"D4}{"F4}%
   \otilde{^^f5}{"D5}{"F5}%
   \odieresis{^^f6}{"D6}{"F6}%
   \div{^^f7}{"F7}{"F7}%
   \oslash{^^f8}{"D8}{"F8}%
   \ugrave{^^f9}{"D9}{"F9}%
   \uacute{^^fa}{"DA}{"FA}%
   \ucircumflex{^^fb}{"DB}{"FB}%
   \udieresis{^^fc}{"DC}{"FC}%
   \yacute{^^fd}{"DD}{"FD}%
   \Thorn{^^fe}{"DE}{"FE}%
   \ydieresis{^^ff}{"59}{"FF}%
\or
   \input shapedc %
%    \end{macrocode}
% The following characters are in the same place in both
% (\textsc{Iso1} and \textsc{Dc}) encodings. Thus the only
% thing to do is to change the \emph{catcode} to transform
% the character in letter (can be used in control sequence, but
% this is not recommended if one want have portable documents) and
% to define good values for uppercase and lowercase characters.
%    \begin{macrocode}
   %Agrave
   \global\catcode"C0=11\global\uccode"C0="C0\global\lccode"C0="E0%
   %Aacute
   \global\catcode"C1=11\global\uccode"C1="C1\global\lccode"C1="E1%
   %Acircumflex
   \global\catcode"C2=11\global\uccode"C2="C2\global\lccode"C2="E2%
   %Atilde
   \global\catcode"C3=11\global\uccode"C3="C3\global\lccode"C3="E3%
   %Adieresis
   \global\catcode"C4=11\global\uccode"C4="C4\global\lccode"C4="E4%
   %Aring
   \global\catcode"C5=11\global\uccode"C5="C5\global\lccode"C5="E5%
   %AE
   \global\catcode"C6=11\global\uccode"C6="C6\global\lccode"C6="E6%
   %Ccedilla
   \global\catcode"C7=11\global\uccode"C7="C7\global\lccode"C7="E7
   %Egrave
   \global\catcode"C8=11\global\uccode"C8="C8\global\lccode"C8="E8%
   %Eacute
   \global\catcode"C9=11\global\uccode"C9="C9\global\lccode"C9="E9%
   %Ecircumflex
   \global\catcode"CA=11\global\uccode"CA="CA\global\lccode"CA="EA%
   %Edieresis
   \global\catcode"CB=11\global\uccode"CB="CB\global\lccode"CB="EB%
   %Igrave
   \global\catcode"CC=11\global\uccode"CC="CC\global\lccode"CC="EC%
   %Iacute
   \global\catcode"CD=11\global\uccode"CD="CD\global\lccode"CD="ED%
   %Icircumflex
   \global\catcode"CE=11\global\uccode"CE="CE\global\lccode"CE="EE%
   %Idieresis
   \global\catcode"CF=11\global\uccode"CF="CF\global\lccode"CF="EF%
   %DBar
   \global\catcode"D0=11\global\uccode"D0="D0\global\lccode"D0="F0%
   %Ntilde
   \global\catcode"D1=11\global\uccode"D1="D1\global\lccode"D1="F1%
   %Ograve
   \global\catcode"D2=11\global\uccode"D2="D2\global\lccode"D2="F2%
   %Oacute
   \global\catcode"D3=11\global\uccode"D3="D3\global\lccode"D3="F3%
   %Ocircumflex
   \global\catcode"D4=11\global\uccode"D4="D4\global\lccode"D4="F4%
   %Otilde
   \global\catcode"D5=11\global\uccode"D5="D5\global\lccode"D5="F5%
   %Odieresis
   \global\catcode"D6=11\global\uccode"D6="D6\global\lccode"D6="F6%
   \times{^^d7}{"D7}{"D7}%
   %Oslash
   \global\catcode"D8=11\global\uccode"D8="D8\global\lccode"D8="F8%
   %Ugrave
   \global\catcode"D9=11\global\uccode"D9="D9\global\lccode"D9="F9%
   %Uacute
   \global\catcode"DA=11\global\uccode"DA="DA\global\lccode"DA="FA%
   %Ucircumflex
   \global\catcode"DB=11\global\uccode"DB="DB\global\lccode"DB="FB%
   %Udieresis
   \global\catcode"DC=11\global\uccode"DC="DC\global\lccode"DC="FC%
   %Yacute
   \global\catcode"DD=11\global\uccode"DD="DD\global\lccode"DD="FD%
   %thorn
   \global\catcode"DE=11\global\uccode"DE="FE\global\lccode"DE="DE%
   \beta{^^df}{"DF}{"DF}%
   %agrave
   \global\catcode"E0=11\global\uccode"E0="C0\global\lccode"E0="E0%
   %aacute
   \global\catcode"E1=11\global\uccode"E1="C1\global\lccode"E1="E1%
   %acircumflex
   \global\catcode"E2=11\global\uccode"E2="C2\global\lccode"E2="E2%
   %atilde
   \global\catcode"E3=11\global\uccode"E3="C3\global\lccode"E3="E3%
   %adieresis
   \global\catcode"E4=11\global\uccode"E4="C4\global\lccode"E4="E4%
   %aring
   \global\catcode"E5=11\global\uccode"E5="C5\global\lccode"E5="E5%
   %ae
   \global\catcode"E6=11\global\uccode"E6="C6\global\lccode"E6="E6%
   %ccedilla
   \global\catcode"E7=11\global\uccode"E7="C7\global\lccode"E7="E7%
   %egrave
   \global\catcode"E8=11\global\uccode"E8="C8\global\lccode"E8="E8%
   %eacute
   \global\catcode"E9=11\global\uccode"E9="C9\global\lccode"E9="E9%
   %ecircumflex
   \global\catcode"EA=11\global\uccode"EA="CA\global\lccode"EA="EA%
   %edieresis
   \global\catcode"EB=11\global\uccode"EB="CB\global\lccode"EB="EB%
   %igrave
   \global\catcode"EC=11\global\uccode"EC="CC\global\lccode"EC="EC%
   %iacute
   \global\catcode"ED=11\global\uccode"ED="CD\global\lccode"ED="ED%
   %icircumflex
   \global\catcode"EE=11\global\uccode"EE="CE\global\lccode"EE="EE%
   %idieresis
   \global\catcode"EF=11\global\uccode"EF="CF\global\lccode"EF="EF%
   %dBar
   \global\catcode"F0=11\global\uccode"F0="D0\global\lccode"F0="F0%
   %ntilde
   \global\catcode"F1=11\global\uccode"F1="D1\global\lccode"F1="F1%
   %ograve
   \global\catcode"F2=11\global\uccode"F2="D2\global\lccode"F2="F2%
   %oacute
   \global\catcode"F3=11\global\uccode"F3="D3\global\lccode"F3="F3%
   %ocircumflex
   \global\catcode"F4=11\global\uccode"F4="D4\global\lccode"F4="F4%
   %otilde
   \global\catcode"F5=11\global\uccode"F5="D5\global\lccode"F5="F5%
   %odieresis
   \global\catcode"F6=11\global\uccode"F6="D6\global\lccode"F6="F6%
   \div{^^f7}{"F7}{"F7}%
   %oslash
   \global\catcode"F8=11\global\uccode"F8="D8\global\lccode"F8="F8%
   %ugrave
   \global\catcode"F9=11\global\uccode"F9="D9\global\lccode"F9="F9%
   %uacute
   \global\catcode"FA=11\global\uccode"FA="DA\global\lccode"FA="FA%
   %ucircumflex
   \global\catcode"FB=11\global\uccode"FB="DB\global\lccode"FB="FB%
   %udieresis
   \global\catcode"FC=11\global\uccode"FC="DC\global\lccode"FC="FC%
   %yacute
   \global\catcode"FD=11\global\uccode"FD="DD\global\lccode"FD="FD%
   %Thorn
   \global\catcode"FE=11\global\uccode"FE="DE\global\lccode"FE="FE%
   %ydieresis
   \global\catcode"FF=11\global\uccode"FF="59\global\lccode"FF="FF%
\fi %\ifcase
%    \end{macrocode}
% These symbols are drawn with mathematical commands and thus are aleways
% ``active'' in both encoding
%    \begin{macrocode}
\exclamdown{^^a1}{"A1}{"A1}%
\cent{^^a2}{"A2}{"A2}%
\pounds{^^a3}{"A3}{"A3}%
\currency{^^a4}{"A4}{"A4}%
\yen{^^a5}{"A5}{"A5}%
\splitbar{^^a6}{"A6}{"A6}%
\section{^^a7}{"A7}{"A7}%
\dieresis{^^a8}{"A8}{"A8}%
\copyright{^^a9}{"A9}{"A9}%
\ordfeminine{^^aa}{"AA}{"AA}%
\guilletmotleft{^^ab}{"AB}{"AB}%
\neg{^^ac}{"AC}{"AC}%
\register{^^ad}{"AD}{"AD}%
\degree{^^b0}{"B0}{"B0}%
\pm{^^b1}{"B1}{"B1}%
\powertwo{^^b2}{"B2}{"B2}%
\powerthree{^^b3}{"B3}{"B3}%
\mu{^^b5}{"B5}{"B5}%
\ParagraphSign{^^b6}{"B6}{"B6}%
\bullet{^^b7}{"B7}{"B7}%
\cedilla{^^b8}{"B8}{"B8}%
\powerone{^^b9}{"B9}{"B9}%
\ordmasculine{^^ba}{"BA}{"BA}%
\guillemeotright{^^bb}{"BB}{"BB}%
\OneQuarter{^^bc}{"BC}{"BC}%
\OneHalf{^^bd}{"BD}{"BD}%
\threequarter{^^be}{"BE}{"BE}%
\questiondown{^^bf}{"BF}{"BF}%
\endgroup
%    \end{macrocode}
% \DescribeMacro{\@MakeHyphenationLatin1}
%    \begin{macrocode}
\ifnum\CurrentEncoding=\DC
\def\@MakeHyphenationLatinOne#1{%
% Here we have not too much work since the character from Iso Latin set one and
% from DC encoding are the same. We just do the verification that the character
% is a letter.
 \catcode`#1=12%
 \ifnum`#1>"C0%
   \ifnum`#1="D7% Times sign
      \@BadHyphenCarMsg{#1}%
   \fi
   \ifnum`#1="DF% beta sign
      \@BadHyphenCarMsg{#1}%
   \fi
   \ifnum`#1="F7% Divide sign
      \@BadHyphenCarMsg{#1}%
   \fi
 \else
   \@BadHyphenCarMsg{#1}%
 \fi
}%
\fi %\ifnum\CurrentEncoding...
\catcode`\@=\atcatcode \let\atcatcode\relax
%</codepageiso1>
%    \end{macrocode}
% \subsection{Default value for each character (file: \Fich{initcar.tex})}
%
% The file when inputting give a default value to each character above
% 127, and set the value for
% \Comm{lccode} and \Comm{uccode} to the character itself. 
% This convention doesn't follow the normal \TeX{} convention
% (where a character without uppercase or lowercase has value zero for both code) but it
% is necessary to be able to declare hyphenation exception
% (containing character above 127) with the command \Comm{hyphenation}.
%   \begin{macrocode}
%<*initcar>
\gdef^^80{\@DefaultValue{80}}\global\uccode"80="80\global\lccode"80="80%
\gdef^^81{\@DefaultValue{81}}\global\uccode"81="81\global\lccode"81="81%
\gdef^^82{\@DefaultValue{82}}\global\uccode"82="82\global\lccode"82="82%
\gdef^^83{\@DefaultValue{83}}\global\uccode"83="83\global\lccode"83="83%
\gdef^^84{\@DefaultValue{84}}\global\uccode"84="84\global\lccode"84="84%
\gdef^^85{\@DefaultValue{85}}\global\uccode"85="85\global\lccode"85="85%
\gdef^^86{\@DefaultValue{86}}\global\uccode"86="86\global\lccode"86="86%
\gdef^^87{\@DefaultValue{87}}\global\uccode"87="87\global\lccode"87="87%
\gdef^^88{\@DefaultValue{88}}\global\uccode"88="88\global\lccode"88="88%
\gdef^^89{\@DefaultValue{89}}\global\uccode"89="89\global\lccode"89="89%
\gdef^^8a{\@DefaultValue{8a}}\global\uccode"8A="8A\global\lccode"8A="8A%
\gdef^^8b{\@DefaultValue{8b}}\global\uccode"8B="8B\global\lccode"8B="8B%
\gdef^^8c{\@DefaultValue{8c}}\global\uccode"8C="8C\global\lccode"8C="8C%
\gdef^^8d{\@DefaultValue{8d}}\global\uccode"8D="8D\global\lccode"8D="8D%
\gdef^^8e{\@DefaultValue{8e}}\global\uccode"8E="8E\global\lccode"8E="8E%
\gdef^^8f{\@DefaultValue{8f}}\global\uccode"8F="8F\global\lccode"8F="8F%
\gdef^^90{\@DefaultValue{90}}\global\uccode"90="90\global\lccode"90="90%
\gdef^^91{\@DefaultValue{91}}\global\uccode"91="91\global\lccode"91="91%
\gdef^^92{\@DefaultValue{92}}\global\uccode"92="92\global\lccode"92="92%
\gdef^^93{\@DefaultValue{93}}\global\uccode"93="93\global\lccode"93="93%
\gdef^^94{\@DefaultValue{94}}\global\uccode"94="94\global\lccode"94="94%
\gdef^^95{\@DefaultValue{95}}\global\uccode"95="95\global\lccode"95="95%
\gdef^^96{\@DefaultValue{96}}\global\uccode"96="96\global\lccode"96="96%
\gdef^^97{\@DefaultValue{97}}\global\uccode"97="97\global\lccode"97="97%
\gdef^^98{\@DefaultValue{98}}\global\uccode"98="98\global\lccode"98="98%
\gdef^^99{\@DefaultValue{99}}\global\uccode"99="99\global\lccode"99="99%
\gdef^^9a{\@DefaultValue{9a}}\global\uccode"9A="9A\global\lccode"9A="9A%
\gdef^^9b{\@DefaultValue{9b}}\global\uccode"9B="9B\global\lccode"9B="9B%
\gdef^^9c{\@DefaultValue{9c}}\global\uccode"9C="9C\global\lccode"9C="9C%
\gdef^^9d{\@DefaultValue{9d}}\global\uccode"9D="9D\global\lccode"9D="9D%
\gdef^^9e{\@DefaultValue{9e}}\global\uccode"9E="9E\global\lccode"9E="9E%
\gdef^^9f{\@DefaultValue{9f}}\global\uccode"9F="9F\global\lccode"9F="9F%
\gdef^^a0{\@DefaultValue{a0}}\global\uccode"A0="A0\global\lccode"A0="A0%
\gdef^^a1{\@DefaultValue{a1}}\global\uccode"A1="A1\global\lccode"A1="A1%
\gdef^^a2{\@DefaultValue{a2}}\global\uccode"A2="A2\global\lccode"A2="A2%
\gdef^^a3{\@DefaultValue{a3}}\global\uccode"A3="A3\global\lccode"A3="A3%
\gdef^^a4{\@DefaultValue{a4}}\global\uccode"A4="A4\global\lccode"A4="A4%
\gdef^^a5{\@DefaultValue{a5}}\global\uccode"A5="A5\global\lccode"A5="A5%
\gdef^^a6{\@DefaultValue{a6}}\global\uccode"A6="A6\global\lccode"A6="A6%
\gdef^^a7{\@DefaultValue{a7}}\global\uccode"A7="A7\global\lccode"A7="A7%
\gdef^^a8{\@DefaultValue{a8}}\global\uccode"A8="A8\global\lccode"A8="A8%
\gdef^^a9{\@DefaultValue{a9}}\global\uccode"A9="A9\global\lccode"A9="A9%
\gdef^^aa{\@DefaultValue{aa}}\global\uccode"AA="AA\global\lccode"AA="AA%
\gdef^^ab{\@DefaultValue{ab}}\global\uccode"AB="AB\global\lccode"AB="AB%
\gdef^^ac{\@DefaultValue{ac}}\global\uccode"AC="AC\global\lccode"AC="AC%
\gdef^^ad{\@DefaultValue{ad}}\global\uccode"AD="AD\global\lccode"AD="AD%
\gdef^^ae{\@DefaultValue{ae}}\global\uccode"AE="AE\global\lccode"AE="AE%
\gdef^^af{\@DefaultValue{af}}\global\uccode"AF="AF\global\lccode"AF="AF%
\gdef^^b0{\@DefaultValue{b0}}\global\uccode"B0="B0\global\lccode"B0="B0%
\gdef^^b1{\@DefaultValue{b1}}\global\uccode"B1="B1\global\lccode"B1="B1%
\gdef^^b2{\@DefaultValue{b2}}\global\uccode"B2="B2\global\lccode"B2="B2%
\gdef^^b3{\@DefaultValue{b3}}\global\uccode"B3="B3\global\lccode"B3="B3%
\gdef^^b4{\@DefaultValue{b4}}\global\uccode"B4="B4\global\lccode"B4="B4%
\gdef^^b5{\@DefaultValue{b5}}\global\uccode"B5="B5\global\lccode"B5="B5%
\gdef^^b6{\@DefaultValue{b6}}\global\uccode"B6="B6\global\lccode"B6="B6%
\gdef^^b7{\@DefaultValue{b7}}\global\uccode"B7="B7\global\lccode"B7="B7%
\gdef^^b8{\@DefaultValue{b8}}\global\uccode"B8="B8\global\lccode"B8="B8%
\gdef^^b9{\@DefaultValue{b9}}\global\uccode"B9="B9\global\lccode"B9="B9%
\gdef^^ba{\@DefaultValue{ba}}\global\uccode"BA="BA\global\lccode"BA="BA%
\gdef^^bb{\@DefaultValue{bb}}\global\uccode"BB="BB\global\lccode"BB="BB%
\gdef^^bc{\@DefaultValue{bc}}\global\uccode"BC="BC\global\lccode"BC="BC%
\gdef^^bd{\@DefaultValue{bd}}\global\uccode"BD="BD\global\lccode"BD="BD%
\gdef^^be{\@DefaultValue{be}}\global\uccode"BE="BE\global\lccode"BE="BE%
\gdef^^bf{\@DefaultValue{bf}}\global\uccode"BF="BF\global\lccode"BF="BF%
\gdef^^c0{\@DefaultValue{c0}}\global\uccode"C0="C0\global\lccode"C0="C0%
\gdef^^c1{\@DefaultValue{c1}}\global\uccode"C1="C1\global\lccode"C1="C1%
\gdef^^c2{\@DefaultValue{c2}}\global\uccode"C2="C2\global\lccode"C2="C2%
\gdef^^c3{\@DefaultValue{c3}}\global\uccode"C3="C3\global\lccode"C3="C3%
\gdef^^c4{\@DefaultValue{c4}}\global\uccode"C4="C4\global\lccode"C4="C4%
\gdef^^c5{\@DefaultValue{c5}}\global\uccode"C5="C5\global\lccode"C5="C5%
\gdef^^c6{\@DefaultValue{c6}}\global\uccode"C6="C6\global\lccode"C6="C6%
\gdef^^c7{\@DefaultValue{c7}}\global\uccode"C7="C7\global\lccode"C7="C7%
\gdef^^c8{\@DefaultValue{c8}}\global\uccode"C8="C8\global\lccode"C8="C8%
\gdef^^c9{\@DefaultValue{c9}}\global\uccode"C9="C9\global\lccode"C9="C9%
\gdef^^ca{\@DefaultValue{ca}}\global\uccode"CA="CA\global\lccode"CA="CA%
\gdef^^cb{\@DefaultValue{cb}}\global\uccode"CB="CB\global\lccode"CB="CB%
\gdef^^cc{\@DefaultValue{cc}}\global\uccode"CC="CC\global\lccode"CC="CC%
\gdef^^cd{\@DefaultValue{cd}}\global\uccode"CD="CD\global\lccode"CD="CD%
\gdef^^ce{\@DefaultValue{ce}}\global\uccode"CE="CE\global\lccode"CE="CE%
\gdef^^cf{\@DefaultValue{cf}}\global\uccode"CF="CF\global\lccode"CF="CF%
\gdef^^d0{\@DefaultValue{d0}}\global\uccode"D0="D0\global\lccode"D0="D0%
\gdef^^d1{\@DefaultValue{d1}}\global\uccode"D1="D1\global\lccode"D1="D1%
\gdef^^d2{\@DefaultValue{d2}}\global\uccode"D2="D2\global\lccode"D2="D2%
\gdef^^d3{\@DefaultValue{d3}}\global\uccode"D3="D3\global\lccode"D3="D3%
\gdef^^d4{\@DefaultValue{d4}}\global\uccode"D4="D4\global\lccode"D4="D4%
\gdef^^d5{\@DefaultValue{d5}}\global\uccode"D5="D5\global\lccode"D5="D5%
\gdef^^d6{\@DefaultValue{d6}}\global\uccode"D6="D6\global\lccode"D6="D6%
\gdef^^d7{\@DefaultValue{d7}}\global\uccode"D7="D7\global\lccode"D7="D7%
\gdef^^d8{\@DefaultValue{d8}}\global\uccode"D8="D8\global\lccode"D8="D8%
\gdef^^d9{\@DefaultValue{d9}}\global\uccode"D9="D9\global\lccode"D9="D9%
\gdef^^da{\@DefaultValue{da}}\global\uccode"DA="DA\global\lccode"DA="DA%
\gdef^^db{\@DefaultValue{db}}\global\uccode"DB="DB\global\lccode"DB="DB%
\gdef^^dc{\@DefaultValue{dc}}\global\uccode"DC="DC\global\lccode"DC="DC%
\gdef^^dd{\@DefaultValue{dd}}\global\uccode"DD="DD\global\lccode"DD="DD%
\gdef^^de{\@DefaultValue{de}}\global\uccode"DE="DE\global\lccode"DE="DE%
\gdef^^df{\@DefaultValue{df}}\global\uccode"DF="DF\global\lccode"DF="DF%
\gdef^^e0{\@DefaultValue{e0}}\global\uccode"E0="E0\global\lccode"E0="E0%
\gdef^^e1{\@DefaultValue{e1}}\global\uccode"E1="E1\global\lccode"E1="E1%
\gdef^^e2{\@DefaultValue{e2}}\global\uccode"E2="E2\global\lccode"E2="E2%
\gdef^^e3{\@DefaultValue{e3}}\global\uccode"E3="E3\global\lccode"E3="E3%
\gdef^^e4{\@DefaultValue{e4}}\global\uccode"E4="E4\global\lccode"E4="E4%
\gdef^^e5{\@DefaultValue{e5}}\global\uccode"E5="E5\global\lccode"E5="E5%
\gdef^^e6{\@DefaultValue{e6}}\global\uccode"E6="E6\global\lccode"E6="E6%
\gdef^^e7{\@DefaultValue{e7}}\global\uccode"E7="E7\global\lccode"E7="E7%
\gdef^^e8{\@DefaultValue{e8}}\global\uccode"E8="E8\global\lccode"E8="E8%
\gdef^^e9{\@DefaultValue{e9}}\global\uccode"E9="E9\global\lccode"E9="E9%
\gdef^^ea{\@DefaultValue{ea}}\global\uccode"EA="EA\global\lccode"EA="EA%
\gdef^^eb{\@DefaultValue{eb}}\global\uccode"EB="EB\global\lccode"EB="EB%
\gdef^^ec{\@DefaultValue{ec}}\global\uccode"EC="EC\global\lccode"EC="EC%
\gdef^^ed{\@DefaultValue{ed}}\global\uccode"ED="ED\global\lccode"ED="ED%
\gdef^^ee{\@DefaultValue{ee}}\global\uccode"EE="EE\global\lccode"EE="EE%
\gdef^^ef{\@DefaultValue{ef}}\global\uccode"EF="EF\global\lccode"EF="EF%
\gdef^^f0{\@DefaultValue{f0}}\global\uccode"F0="F0\global\lccode"F0="F0%
\gdef^^f1{\@DefaultValue{f1}}\global\uccode"F1="F1\global\lccode"F1="F1%
\gdef^^f2{\@DefaultValue{f2}}\global\uccode"F2="F2\global\lccode"F2="F2%
\gdef^^f3{\@DefaultValue{f3}}\global\uccode"F3="F3\global\lccode"F3="F3%
\gdef^^f4{\@DefaultValue{f4}}\global\uccode"F4="F4\global\lccode"F4="F4%
\gdef^^f5{\@DefaultValue{f5}}\global\uccode"F5="F5\global\lccode"F5="F5%
\gdef^^f6{\@DefaultValue{f6}}\global\uccode"F6="F6\global\lccode"F6="F6%
\gdef^^f7{\@DefaultValue{f7}}\global\uccode"F7="F7\global\lccode"F7="F7%
\gdef^^f8{\@DefaultValue{f8}}\global\uccode"F8="F8\global\lccode"F8="F8%
\gdef^^f9{\@DefaultValue{f9}}\global\uccode"F9="F9\global\lccode"F9="F9%
\gdef^^fa{\@DefaultValue{fa}}\global\uccode"FA="FA\global\lccode"FA="FA%
\gdef^^fb{\@DefaultValue{fb}}\global\uccode"FB="FB\global\lccode"FB="FB%
\gdef^^fc{\@DefaultValue{fc}}\global\uccode"FC="FC\global\lccode"FC="FC%
\gdef^^fd{\@DefaultValue{fd}}\global\uccode"FD="FD\global\lccode"FD="FD%
\gdef^^fe{\@DefaultValue{fe}}\global\uccode"FE="FE\global\lccode"FE="FE%
\gdef^^ff{\@DefaultValue{ff}}\global\uccode"FF="FF\global\lccode"FF="FF%
%</initcar>
%    \end{macrocode}
%\Finale

