summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/clefval/clefval.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/clefval/clefval.dtx')
-rw-r--r--macros/latex/contrib/clefval/clefval.dtx277
1 files changed, 191 insertions, 86 deletions
diff --git a/macros/latex/contrib/clefval/clefval.dtx b/macros/latex/contrib/clefval/clefval.dtx
index 67bbea73a8..d8cc603b7c 100644
--- a/macros/latex/contrib/clefval/clefval.dtx
+++ b/macros/latex/contrib/clefval/clefval.dtx
@@ -1,55 +1,51 @@
% \iffalse meta-comment
-% -*- mode: LaTeX; coding: iso-8859-15 -*-
%
-%%%% Copyright (C) 2004 by Josselin Noirel
-%%%% and Yvon Henel <Yvon.Henel@wanadoo.fr>
+%%%% Copyright (C) 2004, 2020 by Josselin Noirel
+%%%% and Yvon Henel aka Le TeXnicien de surface
%%%% --------------------------------------------------------
%
% This file may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.2
+% conditions of the LaTeX Project Public License, either version 1.3c
% of this license or (at your option) any later version.
% The latest version of this license is in:
%
% http://www.latex-project.org/lppl.txt
%
-% and version 1.2 or later is part of all distributions of LaTeX
-% version 1999/12/01 or later.
% \fi
%
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}
-%<package>\def\fileversion{v0}
-%<package>\def\filedate{2004/05/22}
+%<package>\def\fileversion{v0.1}
+%<package>\def\filedate{2020/07/27}
%<packfra>\def\fileinfo{d\'efinir et utiliser des paires cle/valeurs}
%<packeng>\def\fileinfo{define and use pair of key/values}
%<package>\ProvidesPackage{clefval}
%<package> [\filedate\space\fileversion\space\fileinfo]
%<*driver>
\documentclass[a4paper]{ltxdoc}
-\usepackage[latin9]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{clefval}
\usepackage{xspace,url,multicol,ifthen}
\IfFileExists{lmodern.sty}{\usepackage{lmodern}}{}
-\usepackage[english,frenchb]{babel}
+\usepackage[english, main=french]{babel}
% commentez la ligne suivante pour avoir un document avec le code
-\OnlyDescription
+% \OnlyDescription
% comment out the preceding line to obtain the full code
% with explanations in French only, sorry.
\EnableCrossrefs
\CodelineIndex
\RecordChanges
\makeatletter
-%%% quelques redéfinition de commande de la classe ltxdoc.cls ou de
-%%% l'extension doc.sty pour une documentation en français.
+%%% quelques redéfinition de commande de la classe ltxdoc.cls ou de
+%%% l'extension doc.sty pour une documentation en français.
\GlossaryPrologue{\section*{{Changements --
Changes}}\markboth{{Changements -- Changes}}{{Changements -- Changes}}}
\IndexPrologue{\section*{Index}\markboth{Index}{Index}%
\begin{Morciau}\selectlanguage{french}
- Les nombres en italique renvoient à la page où l'entrée est décrite ; les
- nombres soulignés renvoient à la ligne de code de la définition ; les
- nombres en caractères romains renvoient à la ligne de code où l'entrée est
- utilisée.\EnAnglais Numbers written in italic refer to the page where the
+ Les nombres en italique renvoient à la page où l'entrée est décrite ; les
+ nombres soulignés renvoient à la ligne de code de la définition ; les
+ nombres en caractères romains renvoient à la ligne de code où l'entrée est
+ utilisée.\EnAnglais Numbers written in italic refer to the page where the
corresponding entry is described; numbers underlined refer to the code
line of the definition; numbers in roman refer to the code line where the
entry is used.\end{Morciau}}
@@ -60,7 +56,7 @@
\special@index{environnements:\levelchar{%
\string\ttfamily\space#1}\encapchar main}\@esphack}
\makeatother
-\def\generalname{Général}
+\def\generalname{Général}
%%% fin de la francisation
\setlength{\columnseprule}{0.5pt}
\setlength{\multicolsep}{6pt plus 2.0pt minus 1.5pt}
@@ -109,7 +105,17 @@
%
% \GetFileInfo{clefval.sty}
%
-% \changes{v0}{2004/05/20}{1\iere version publique.}
+% \changes{v0}{2004/05/20}{1\iere version
+% publique. \textit{\foreignlanguage{english}{1st public version.}}}
+% \changes{v0.1}{2020/07/27}{Amélioration du message d'erreur dans le
+% document. \textit{\foreignlanguage{english}{Improved error message
+% in document.}}}
+% \changes{v0.1}{2020/07/27}{Version permettant l'utilisation du
+% codage utf-8 avec \texttt{pdflatex}, \texttt{lualatex} et
+% \texttt{xelatex}. \textit{\foreignlanguage{english}{This version can
+% be used in utf-8 encoded source with \texttt{pdflatex},
+% \texttt{lualatex} and \texttt{xelatex}.}}}
+
%
% \DoNotIndex{\newcommand, \renewcommand, \providecommand,^^A
% \def, \let,\csname, \endcsname, \afterassignment,^^A
@@ -133,7 +139,8 @@
% \textsf{clefval}}
%
% \author{Le \TeX nicien de
-% surface\thanks{\texttt{Yvon.Henel@wanadoo.fr}}\and Josselin Noirel}
+% surface\thanks{\texttt{le.texnicien.de.surface@yvon-henel.fr}}\and
+% Josselin Noirel}
%
% \maketitle
%
@@ -141,68 +148,96 @@
% \label{secIntro}
% \noindent\textbf{Description}\DescribeMacro{\TheKey}\DescribeMacro{\TheValue}
% \begin{Morciau}[Macros~publiques/Public~Macros]
-% Deux macros \cs{TheKey} et \cs{TheValue} pour définir puis utiliser
+% Deux macros \cs{TheKey} et \cs{TheValue} pour définir puis utiliser
% des paires clef/valeur.
% \EnAnglais
% Two macros \cs{TheKey} and \cs{TheValue} to define then use pairs
% of key/value.
% \end{Morciau}
% \begin{Morciau}[Syntaxe/Syntax]
-% \cs{TheKey}\marg{clé}\marg{valeur} pour définir la \emph{valeur}
-% associée à la \emph{clé}, ne produit pas de texte ;
-% \cs{TheValue}\marg{clé} pour insérer la \emph{valeur} associée à la
-% \emph{clé}.
+% \cs{TheKey}\marg{clé}\marg{valeur} pour définir la \emph{valeur}
+% associée à la \emph{clé}, ne produit pas de texte ;
+% \cs{TheValue}\marg{clé} pour insérer la \emph{valeur} associée à la
+% \emph{clé}.
% \EnAnglais
% \cs{TheKey}\marg{key}\marg{value} to define the \emph{value}
% associated to the \emph{key}, does not produce text ;
% \cs{TheValue}\marg{key} to insert the \emph{value} linked to the
% \emph{key}.
% \end{Morciau}
+%
+%
+% \subsection{Version 0.1}
+%
+% \begin{Morciau}
+% Edd \textsc{Barrett}, le 27 juillet 2020, a signalé sur
+% \texttt{stackexchange} un problème lié à l'utilisation de
+% \texttt{clefval}. C'est lui, également, qui a fourni un ECM et
+% trouvé la cause dudit problème: la présence d'un espace insécable
+% dans le fichier codé en \texttt{iso-8859-15} entrainait l'arrêt de
+% \LaTeX{} avec le message:
+% \EnAnglais
+% On the 27th July 2020, Edd \textsc{Barrett} wrote on
+% \texttt{stackexchange} about a problem linked to the use of
+% \texttt{clefval}. He also wrote a MCE and found the cause of the
+% said problem: an unbreakable space in the file encoded in
+% \texttt{iso-8859-15} forced \LaTeX{} to stop with the following
+% error message:
+% \end{Morciau}
+%
+% \texttt{Package inputenc Error: Invalid UTF-8 byte "A0.}
+%
+% \begin{Morciau}
+% Comme tout le travail avait été fait, il m'a été facile de
+% corriger l'erreur dans le code. J'en ai profité pour faire
+% apparaître, \emph{dans le document}, un message d'erreur plus
+% explicite nommant la clé indéfinie et pour moderniser un peu cette
+% extension.
+% \EnAnglais
+% As all the work was already done I easily wrote the correction in
+% the code. I've taken the opportunity to make appear, \emph{in the
+% document}, a more explicit error message in case of undefined key
+% and to modernise a bit this package.
+% \end{Morciau}
+%
% \section{Utilisation -- Usage}
%
-% \begin{Morciau}[Procédé/Process]
-% Le procédé mis en ½uvre par ce module est le même que celui des
-% références classiques de \LaTeX{} avec \cs{label} et \cs{ref}. Il
+% \begin{Morciau}[Procédé/Process]
+% Le procédé mis en œuvre par ce module est le même que celui des
+% références classiques de \LaTeX{} avec \cs{label} et \cs{ref}. Il
% faut donc deux compilations pour en voir l'effet.
% \EnAnglais
% \texttt{clefval} uses the process which \LaTeX's \cs{label} and \cs{ref}
% use. You must therefore compile twice to obtain the full effect.
% \end{Morciau}
% \begin{Morciau}
-% Lors de la 1\iere compilation, \cs{TheKey}\LB|{clé}|\LB|{valeur}| écrit,
-% dans le fichier \texttt{aux}, \cs{newkey}\LB|{clé}|\LB|{{valeur}}|. |clé| et
-% |valeur| sont développés à moins qu'ils ne soient protégés soit pour avoir
-% été déclarés robustes (voir \cs{DeclareRobustCommand}) soit pour avoir été
-% protégés (voir \cs{protect}) par vous.
+% Lors de la 1\iere compilation, \cs{TheKey}\LB|{clé}|\LB|{valeur}| écrit,
+% dans le fichier \texttt{aux}, \cs{newkey}\LB|{clé}|\LB|{valeur}|. |clé| et
+% |valeur| sont développés à moins qu'ils ne soient protégés soit pour avoir
+% été déclarés robustes (voir \cs{DeclareRobustCommand}) soit pour avoir été
+% protégés (voir \cs{protect}) par vous.
% \EnAnglais
% During the 1st run of \LaTeX, \cs{TheKey}\LB|{key}|\LB|{value}| writes
-% \cs{newkey}\LB|{key}|\LB|{{value}}| in the \texttt{aux} file. |key|
+% \cs{newkey}\LB|{key}|\LB|{value}| in the \texttt{aux} file. |key|
% and |value| are expanded unless they are protected since they have been
% declared robust (see \cs{DeclareRobustCommand}) or since they have been
% protected (see \cs{protect}) by you.
% \end{Morciau}
% \begin{Morciau}
-% Lors de la 2\ieme compilation, après lecture du fichier \texttt{aux},
-% \cs{TheValue}|{clé}| écrit |valeur|.
+% Lors de la 2\ieme compilation, après lecture du fichier \texttt{aux},
+% \cs{TheValue}|{clé}| écrit |valeur|.
% \EnAnglais
% During the 2nd run, the \texttt{aux} file having been read,
% \cs{TheValue}|{key}| writes |value|.
% \end{Morciau}
% \begin{Morciau}[Attention/Caution]
% Les deux arguments de \cs{TheKey} sont \og mobiles \fg au sens de \LaTeX{}
-% et il faudra donc parfois les protéger. On écrira donc
-% \cs{TheKey}\LB\texttt{\{}\LB\cs{protect}|\(|\LB|2+3|\cs{protect}|\)|\LB\texttt{\}} si on
-% ne veut pas d'ennuis ou, plus simplement,
-% \cs{TheKey}\LB\texttt{\{}\LB|$|\LB|2+3|\LB|$|\LB\texttt{\}} \Sourire
+% et il faudra donc parfois les protéger.
% \EnAnglais
% Both arguments of \cs{TheKey} are `moving' as \LaTeX{} defines it and we have
% sometimes to protect them.
-%
-% So one will write
-% \cs{TheKey}\LB\texttt{\{}\LB\cs{protect}|\(|\LB|2+3|\cs{protect}|\)|\LB\texttt{\}}
-% to avoid troubles or, more easily,
-% \cs{TheKey}\LB\texttt{\{}\LB|$|\LB|2+3|\LB|$|\LB\texttt{\}} \Sourire
% \end{Morciau}
+%
% \begin{Morciau}
% Par ailleurs, les arguments ne doivent pas contenir de saut de
% paragraphe (\cs{par}) ---~ou tout autre truc interdit dans les
@@ -212,29 +247,67 @@
% (\cs{par}) ---~or any other thingummy which is forbidden in the
% arguments of a macro which is not \cs{long}.
% \end{Morciau}
+%
+% \begin{Morciau}[Exemples/Examples]
+% On peut écrire
+% \EnAnglais
+% On can write
+% \end{Morciau}
+%
+% {\centering \TheKey{clou}{$2+5=7$}|\TheKey{clou}{$2+5=7$}|
+% \TheKey{glue}{\(2+6=8\)}|\TheKey{glue}{\(2+6=8\)}|
+% \par}
+%
+% \begin{Morciau}
+% puis \EnAnglais then
+% \end{Morciau}
+%
+% {\centering |\TheValue{clou}|, |\TheValue{glue}|\par}
+%
+% \begin{Morciau}
+% pour obtenir \EnAnglais to obtain
+% \end{Morciau}
+%
+% {\centering \TheValue{clou}, \TheValue{glue}.\par}
+%
+% \begin{Morciau}
+% On peut utiliser |$2+3$| comme clé --- même si on ne voit pas
+% pourquoi on le ferait --- mais \textbf{pas} |\(2+3\)|. Ce qui
+% tient à la manière dont les commandes |\(| et |\)| ont été
+% robustifiées. \emph{Ce n'est pas un bogue mais une fonctionnalité.}
+% \EnAnglais
+% On can use |$2+3$| as a key ---and I don't say that one should---
+% but \textbf{not} |\(2+3\)|. That is due to the way the macros |\(|
+% and |\)| have been robustified. \emph{It's not a bug but a feature.}
+% \end{Morciau}
+%
+%
% \begin{Morciau}[Avertissements/Warnings]
-% Le module signale les définitions multiples d'une même clef et
-% marque {\selectlanguage{english}\textbf{????}} là où l'on utilise
-% \cs{TheValue}\LB|{clou}| alors que |clou| n'est pas définie comme
+% Le module signale les définitions multiples d'une même clef et
+% marque {\selectlanguage{english}\textbf{[?? clou ??]}} là où l'on utilise
+% \cs{TheValue}\LB|{clou}| alors que |clou| n'est pas définie comme
% clef. En cas d'erreur, le fichier \texttt{log} contient la ligne :
% \EnAnglais
% The package warns about multiple definitions of the same key and
-% writes \textbf{????} where one used \cs{TheValue}\LB|{kew}| whereas
+% writes \textbf{[?? kew ??]} where one used \cs{TheValue}\LB|{kew}| whereas
% |kew| was not defined as a key. In case of error, the \texttt{log}
% file contains the line:
% \end{Morciau}
% \noindent\hspace*{\stretch{1}}\texttt{LaTeX Warning: There were undefined
-% references.}\hspace*{\stretch{1}}
+% references.}\hspace*{\stretch{1}}
+%
+% \vspace{\baselineskip}
+%
% \begin{Morciau}[Remarque/Remark]
% Josselin \textsc{Noirel} est intervenu efficacement, tant sur \fctt
% que par courriel, pour corriger les modifications que j'avais fait
-% subir au code tiré de \texttt{ltxref} et \texttt{ltfiles}. C'est
-% pour sa contribution décisive qu'il est cité comme co-auteur de ce
-% module. Qu'il trouve là l'expression de ma profonde gratitude.
+% subir au code tiré de \texttt{ltxref} et \texttt{ltfiles}. C'est
+% pour sa contribution décisive qu'il est cité comme co-auteur de ce
+% module. Qu'il trouve là l'expression de ma profonde gratitude.
%
-% Cependant, j'assume l'entière responsabilité de la rédaction de
-% cette documentation et de sa traduction ainsi que la paternité de
-% l'idée d'utiliser le mécanisme des \cs{label} pour accéder à un
+% Cependant, j'assume l'entière responsabilité de la rédaction de
+% cette documentation et de sa traduction ainsi que la paternité de
+% l'idée d'utiliser le mécanisme des \cs{label} pour accéder à un
% \texttt{hashage} rudimentaire.
% \EnAnglais
% Josselin \textsc{Noirel} has efficiently helped me, on \fctt and by
@@ -248,24 +321,56 @@
% having fathered the idea of using the \cs{label} mecanism to obtain
% a rudimentary \texttt{hash}.
% \end{Morciau}
-% \hspace*{\stretch{1}}Le \TeX nicien de surface. \hspace*{0.125\linewidth}
+%
+% \vspace{\baselineskip}
+%
+% \begin{Morciau}[Version 0.1/Version 0.1]
+% Cette version est compatible avec un fichier codé en utf-8 compilé
+% avec \texttt{pdflatex}, \texttt{lualatex} ou \texttt{xelatex}
+% d'après mes --- quelques --- essais. Si ce n'était pas le cas,
+% n'hésitez pas à me signaler le problème.
+% \EnAnglais
+% This version is usable with a utf-8 encoded source run through
+% \texttt{pdflatex}, \texttt{lualatex} or \texttt{xelatex} as it
+% appears from my ---not very numerous--- trials. If it was not the
+% case don't hesitate to contact me.
+% \end{Morciau}
+%
+% \hspace*{\stretch{1}}Le \TeX nicien de
+% surface. \hspace*{0.125\linewidth}
+%
+% \vspace{2\baselineskip}
+%
+% \begingroup
+% \small
+% \hspace*{\stretch{1}}\textbf{In memoriam Énola Néra}\hspace*{\stretch{1}}
+%
+% \begin{Morciau}
+% Gentille chienne aimante et fidèle, compagne de plus de 10 ans que
+% son cœur a laché le 27 juillet 2020.
+% \EnAnglais
+% Kind, loving and faithfull bitch, companion of more than 10 years
+% whose heart stopped on the 27th July 2020.
+% \end{Morciau}
+% \endgroup
+%
% \StopEventually{}
% \section{Le code}
% \label{secCode}
%
% Le code comporte des balises utilisable par \texttt{DocStrip} avec
-% lesquelles on peut produire une version francisée ou une version
+% lesquelles on peut produire une version francisée ou une version
% anglaise de \NomDeModule{clefval}. Voir la documentation de
% \texttt{DocStrip} pour de plus amples renseignements.
%
-% On dit boujour, en français ou en anglais suivant la manière dont on
-% a créé \NomDeModule{clefval}. Puis on entre dans le vif du
+% On dit boujour, en français ou en anglais suivant la manière dont on
+% a créé \NomDeModule{clefval}. Puis on entre dans le vif du
% sujet.
%
-% Le code a d'abord été repris de \texttt{ltxref} mais j'avais
+% Le code a d'abord été repris de \texttt{ltxref} mais j'avais
% quelques ennuis avec les avertissements concernant les clefs non
-% définies ou définies plusieurs fois. Josselin Noirel a bien voulu
-% répondre à mon appel au secours sur \fctt. Le code qui suit est donc
+% définies ou définies plusieurs fois. Josselin Noirel a bien voulu
+% répondre à mon appel au secours sur \fctt. Le code qui suit est donc
% la correction par Josselin de mes modifications du code de
% \texttt{ltxref}, moyennant quoi, je signe \Sourire
%
@@ -273,30 +378,30 @@
%<*package>
% \fi
% \begin{macro}{\@setTheValue}
-% Le code est copié sur celui de |\@setref| dans
-% \texttt{ltxref}. Cette macro est appelée par \cs{TheValue}. Elle
-% vérifie que la clef appelée existe. Si elle n'existe pas elle
-% imprime {\selectlanguage{english}\textbf{????}} et place un
+% Le code est copié sur celui de |\@setref| dans
+% \texttt{ltxref}. Cette macro est appelée par \cs{TheValue}. Elle
+% vérifie que la \meta{clef} appelée existe. Si elle n'existe pas elle
+% imprime {\selectlanguage{english}\textbf{[?? \meta{clef} ??]}} et place un
% avertissement dans le \texttt{log}. Sinon elle rend son premier
% argument.
%
% On utilise |\G@refundefinedtrue| pour provoquer le message d'erreur
% \og There were undefined references \fg. Un peu sybillin pour ce qui
-% nous concerne, il a l'avantage d'être reconnu par au moins
+% nous concerne, il a l'avantage d'être reconnu par au moins
% \texttt{emacs} plus \texttt{Auctex} et d'indiquer qu'il faut
% relancer la compilation.
% \begin{macrocode}
\newcommand*{\@setTheValue}[2]{%
\ifx#1\relax
\protect\G@refundefinedtrue
- \nfss@text{\reset@font\bfseries ????}%
+ \nfss@text{\reset@font\bfseries[?? #2 ??]}%
% \end{macrocode}
% \end{macro}
% \iffalse
%</package>
%<*packfra>
% \fi
-% \textsf{Messages d'avertissement en français}
+% \textsf{Messages d'avertissement en français}
% \begin{macrocode}
\@latex@warning{Valeur de #2 en page \thepage\space non d\'efinie}%
% \end{macrocode}
@@ -316,16 +421,16 @@
\else #1\null \fi}
% \end{macrocode}
% \begin{macro}{\TheValue}
-% Le code est copié sur celui de |\ref| dans \texttt{ltxref}. Si
+% Le code est copié sur celui de |\ref| dans \texttt{ltxref}. Si
% l'argument de \cs{TheValue} est une clef valide, on obtient la
-% valeur référencée par cette clef.
+% valeur référencée par cette clef.
% \begin{macrocode}
\newcommand*{\TheValue}[1]{\expandafter\@setTheValue\csname
V@#1\endcsname{#1}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@newk@ey}
-% Le code est copié sur celui de |\@newl@bel| dans \texttt{ltxref}.
+% Le code est copié sur celui de |\@newl@bel| dans \texttt{ltxref}.
% \begin{macrocode}
\newcommand*{\@newk@ey}[3]{{%
\@ifundefined{#1@#2}%
@@ -337,7 +442,7 @@
%</package>
%<*packfra>
% \fi
-% \textsf{Messages d'avertissement en français}
+% \textsf{Messages d'avertissement en français}
% \begin{macrocode}
\@latex@warning@no@line{Des clefs sont d\'efinies plusieurs fois.}}%
\@latex@warning@no@line{La clef #2 est d\'efinie plusieurs fois}}%
@@ -359,7 +464,7 @@
\global\@namedef{#1@#2}{#3}}}
% \end{macrocode}
% \begin{macro}{\newkey}
-% On opère ici une puissante magie qui fait que tout marche comme
+% On opère ici une puissante magie qui fait que tout marche comme
% attendu \Sourire
% \begin{macrocode}
\def\newkey{\@newk@ey V}
@@ -372,16 +477,16 @@
% ^^A fin du code de Josselin Noirel
%<*package>
% \fi
-% À partir d'ici votre serviteur s'est débrouillé tout seul pour
+% À partir d'ici votre serviteur s'est débrouillé tout seul pour
% modifier le code des bases de \LaTeX.
%
% \begin{macro}{\@protected@write}
-% Le code est copié sur celui de |\protected@write| défini dans
-% \texttt{ltfiles}. On n'a besoin que d'un seul argument qui est écrit
-% dans le fichier |\@auxout| c-à-d. le fichier \texttt{aux}.
-% La macro prend soin de ce qui est protégé soit de manière définitive
-% pour avoir été défini par \cs{DeclareRobustCommand} et ses petits
-% amis, soit pour être précédé de \cs{protect} comme on doit le faire
+% Le code est copié sur celui de |\protected@write| défini dans
+% \texttt{ltfiles}. On n'a besoin que d'un seul argument qui est écrit
+% dans le fichier |\@auxout| c-à-d. le fichier \texttt{aux}.
+% La macro prend soin de ce qui est protégé soit de manière définitive
+% pour avoir été défini par \cs{DeclareRobustCommand} et ses petits
+% amis, soit pour être précédé de \cs{protect} comme on doit le faire
% parfois pour les arguments \og mobiles \fg (\emph{moving
% argument}).
% \begin{macrocode}
@@ -394,9 +499,9 @@
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@multiplekeys}
-% En mettant |\@multiplekeys| à \cs{relax}, on s'assure qu'il n'y aura
-% pas de hurlements alors que rien n'est encore défini et donc encore
-% moins défini plusieurs fois \Sourire
+% En mettant |\@multiplekeys| à \cs{relax}, on s'assure qu'il n'y aura
+% pas de hurlements alors que rien n'est encore défini et donc encore
+% moins défini plusieurs fois \Sourire
% \begin{macrocode}
\let \@multiplekeys \relax
% \end{macrocode}
@@ -404,7 +509,7 @@
% \begin{macro}{\TheKey}
% Le code remprend celui de \cs{label} mais il nous faut deux
% arguments, le 1\ier pour la clef, le 2\textsuperscript{nd} pour la
-% valeur associée.
+% valeur associée.
% \begin{macrocode}
\def\TheKey#1#2{{\@bsphack
\@protected@write{\string\newkey{#1}{#2}}%