summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/clefval
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/clefval
Initial commit
Diffstat (limited to 'macros/latex/contrib/clefval')
-rw-r--r--macros/latex/contrib/clefval/Changements8
-rw-r--r--macros/latex/contrib/clefval/Changes8
-rw-r--r--macros/latex/contrib/clefval/LISEZMOI35
-rw-r--r--macros/latex/contrib/clefval/Makefile190
-rw-r--r--macros/latex/contrib/clefval/README31
-rw-r--r--macros/latex/contrib/clefval/clefval.dtx418
-rw-r--r--macros/latex/contrib/clefval/clefval.ins53
-rw-r--r--macros/latex/contrib/clefval/clefval.pdfbin0 -> 174839 bytes
-rw-r--r--macros/latex/contrib/clefval/example.pdfbin0 -> 92516 bytes
-rw-r--r--macros/latex/contrib/clefval/example.tex94
-rw-r--r--macros/latex/contrib/clefval/exemple.pdfbin0 -> 95184 bytes
-rw-r--r--macros/latex/contrib/clefval/exemple.tex97
-rw-r--r--macros/latex/contrib/clefval/fra-clefval.ins58
13 files changed, 992 insertions, 0 deletions
diff --git a/macros/latex/contrib/clefval/Changements b/macros/latex/contrib/clefval/Changements
new file mode 100644
index 0000000000..ab87566fec
--- /dev/null
+++ b/macros/latex/contrib/clefval/Changements
@@ -0,0 +1,8 @@
+CLEFVAL
+
+Version 0 - 2004-05-22
+Première version publique
+
+--
+Le \TeX nicien de surface
+Yvon.Henel@wanadoo.fr \ No newline at end of file
diff --git a/macros/latex/contrib/clefval/Changes b/macros/latex/contrib/clefval/Changes
new file mode 100644
index 0000000000..0cfc923e99
--- /dev/null
+++ b/macros/latex/contrib/clefval/Changes
@@ -0,0 +1,8 @@
+CLEFVAL
+
+Version 0 - 2004-05-22
+First public version
+
+--
+Le \TeX nicien de surface
+Yvon.Henel@wanadoo.fr \ No newline at end of file
diff --git a/macros/latex/contrib/clefval/LISEZMOI b/macros/latex/contrib/clefval/LISEZMOI
new file mode 100644
index 0000000000..f6e77551c7
--- /dev/null
+++ b/macros/latex/contrib/clefval/LISEZMOI
@@ -0,0 +1,35 @@
+CLEFVAL 0 2004-05-22
+
+LISEZMOI % ce fichier
+README
+Changes
+Makefile
+clefval.dtx
+clefval.pdf % documentation bilingue
+clefval.ins % produit le module avec les messages en anglais
+fra-cleval.ins % produit le module avec les messages en français
+exemple.tex % un exemple d'utilisation de engpron et clefval
+exemple.pdf %
+example.tex % la version anglaise du document précédent
+example.pdf %
+
+clefval.xml
+
+
+clefval.sty, deux macros \TheKey et \TheValue pour définir puis
+utiliser des paires clef/valeur. Ce module fournit une sorte de
+« hashage » du pauvre ;-)
+
+
+Pour produire le fichier clefval.sty,
+avec les messages en français, lancer :
+
+latex fra-clefval.ins
+
+Sous *nix, on peut utiliser le Makefile fourni,
+make help
+pour obtenir de l'aide.
+
+--
+Le \TeX nicien de surface
+Yvon.Henel@wanadoo.fr
diff --git a/macros/latex/contrib/clefval/Makefile b/macros/latex/contrib/clefval/Makefile
new file mode 100644
index 0000000000..801ba0b9c4
--- /dev/null
+++ b/macros/latex/contrib/clefval/Makefile
@@ -0,0 +1,190 @@
+# ---------------------------------------------------------------
+# Makefile for the paresse package by Y. Henel
+# modified version of the Makefile of the kerntest package
+# many thanks to Harald Harders whose kerntest.xml I have also
+# hacked to obtain my paresse.xml
+#
+# documentation bilingue / bilingual documentation
+# ---------------------------------------------------------------
+
+SRCDIR=clefval
+INSTALLDIR=`kpsewhich --expand-path='$$TEXMFLOCAL'`/tex/latex/clefval
+DOCDIR=`kpsewhich --expand-path='$$TEXMFLOCAL'`/doc/latex/clefval
+SOURCEDIR=`kpsewhich --expand-path='$$TEXMFLOCAL'`/source/latex/clefval
+VERSION=0
+
+TEX= clefval.sty \
+
+DOC= clefval.pdf \
+
+
+FRADOC= \
+ LISEZMOI \
+ Changements \
+ exemple.pdf \
+ exemple.tex \
+
+ENGDOC= \
+ README \
+ Changes \
+ example.pdf \
+ example.tex \
+
+SOURCE= \
+ Makefile \
+ clefval.dtx \
+ clefval.ins \
+ fra-clefval.ins \
+
+XML= clefval.xml \
+
+# ---------------------------------------------------------------
+
+.SUFFIXES: .sty .ins .dtx .dvi .ps .pdf
+
+# ---------------------------------------------------------------
+.ins.sty:
+ latex $<
+
+.dtx.pdf:
+ pdflatex $<
+ makeindex -s gind.ist $(*D)/$(*F)
+ makeindex -s gglo.ist -o $(*D)/$(*F).gls $(*D)/$(*F).glo
+ pdflatex $<
+
+.tex.pdf:
+ pdflatex $<
+ pdflatex $<
+
+.dvi.ps:
+ dvips -o $(*D)/$(*F).ps $(*D)/$(*F)
+
+# ---------------------------------------------------------------
+
+sty:
+ @-rm -f clefval.sty
+ @-latex clefval.ins
+
+eng-sty: sty
+
+fra-sty:
+ @-rm -f clefval.sty
+ @-latex fra-clefval.ins
+
+# ---------------------------------------------------------------
+
+help:
+ @-echo "******************************************************"
+ @-echo "* Choisir une des options :"
+ @-echo "= Choose one of the options:"
+ @-echo "* 'doc' -> clefval.pdf"
+ @-echo "* 'fra-sty' -> clefval.sty (version française du module)"
+ @-echo "* 'sty' -> clefval.sty (English version of the package)"
+ @-echo "* 'dist'-> clefval.sty & doc"
+ @-echo "* 'clean' petit nettoyage"
+ @-echo "* 'distclean' (encore plus propre)"
+ @-echo "* 'tar' -> clefval-VERSION.tar.gz"
+ @-echo "* 'install-fra' pour l'installation "
+ @-echo "* de l'extension francisée et de la documentation."
+ @-echo "************ OU / OR ***********"
+ @-echo "= 'install-eng' for an installation"
+ @-echo "= of the English version of package and documentation."
+ @-echo "************ NOTA BENE ***********"
+ @-echo "* l'installation est faite par defaut dans TEXMFLOCAL "
+ @-echo "= by default installs in TEXMFLOCAL"
+ @-echo "* c'est a dire :"
+ @-echo "* that is: "
+ @-echo `kpsewhich --expand-path='$$TEXMFLOCAL'`
+ @-echo "******************************************************"
+
+dist: sty clefval.pdf
+
+# ---------------------------------------------------------------
+
+clean:
+ @-rm -f clefval.glo clefval.gls clefval.idx clefval.ilg
+ @-rm -f clefval.ind clefval.aux clefval.log clefval.toc
+ @-rm -f fra-clefval.log
+ @-rm -f clefval.dvi clefval.ps
+ @-rm -f exemple.aux exemple.log exemple.dvi exemple.ps
+ @-rm -f example.aux example.log example.dvi example.ps
+ @-rm -f *~
+
+distclean: clean
+ @-rm -f clefval.sty
+ @-rm -f clefval.pdf
+
+# ---------------------------------------------------------------
+
+tar: dist clean
+ echo clefval-$(VERSION).tar.gz
+ -rm -f clefval-$(VERSION).tar.gz
+ tar czCf .. clefval-$(VERSION).tar.gz \
+ $(SRCDIR)/README \
+ $(SRCDIR)/LISEZMOI \
+ $(SRCDIR)/Changes \
+ $(SRCDIR)/Changements \
+ $(SRCDIR)/Makefile \
+ $(SRCDIR)/clefval.dtx \
+ $(SRCDIR)/clefval.sty \
+ $(SRCDIR)/clefval.ins \
+ $(SRCDIR)/fra-clefval.ins \
+ $(SRCDIR)/clefval.pdf \
+ $(SRCDIR)/exemple.pdf \
+ $(SRCDIR)/example.pdf \
+ $(SRCDIR)/exemple.tex \
+ $(SRCDIR)/example.tex \
+ $(SRCDIR)/clefval.xml
+
+# ---------------------------------------------------------------
+
+texlive: sty doc clean
+ @-rm -rf texmf
+ mkdir -p texmf/tex/latex/clefval
+ mkdir -p texmf/doc/latex/clefval
+ mkdir -p texmf/source/latex/clefval
+ mkdir -p texmf/doc/html/catalogue/entries
+ cp $(TEX) texmf/tex/latex/clefval
+ cp $(DOC) texmf/doc/latex/clefval
+ cp $(ENGDOC) texmf/doc/latex/clefval
+ cp $(FRADOC) texmf/doc/latex/clefval
+ cp $(SOURCE) texmf/source/latex/clefval
+ cp $(XML) texmf/doc/html/catalogue/entries
+
+# ---------------------------------------------------------------
+
+zip: texlive
+ -@rm -f clefval-$(VERSION).zip
+ zip -r clefval-$(VERSION).zip texmf
+ @-rm -r texmf/
+
+# ---------------------------------------------------------------
+
+install-fra: fra-sty doc
+ if [ ! -d $(INSTALLDIR) ]; then mkdir -p $(INSTALLDIR); fi
+ if [ ! -d $(DOCDIR) ]; then mkdir -p $(DOCDIR); fi
+ if [ ! -d $(SOURCEDIR) ]; then mkdir -p $(SOURCEDIR); fi
+ install -m644 $(TEX) $(INSTALLDIR)
+ install -m644 $(DOC) $(DOCDIR)
+ install -m644 $(FRADOC) $(DOCDIR)
+ install -m644 $(SOURCE) $(SOURCEDIR)
+ texhash
+# ---------------------------------------------------------------
+
+install-eng: eng-sty doc
+ if [ ! -d $(INSTALLDIR) ]; then mkdir -p $(INSTALLDIR); fi
+ if [ ! -d $(DOCDIR) ]; then mkdir -p $(DOCDIR); fi
+ if [ ! -d $(SOURCEDIR) ]; then mkdir -p $(SOURCEDIR); fi
+ install -m644 $(TEX) $(INSTALLDIR)
+ install -m644 $(DOC) $(DOCDIR)
+ install -m644 $(ENGDOC) $(DOCDIR)
+ install -m644 $(SOURCE) $(SOURCEDIR)
+ texhash
+# ---------------------------------------------------------------
+
+install: install-eng
+
+doc: sty clefval.pdf
+# ---------------------------------------------------------------
+# echu e an abaden
+# Le \TeX nicien de surface 2004-05-20
diff --git a/macros/latex/contrib/clefval/README b/macros/latex/contrib/clefval/README
new file mode 100644
index 0000000000..bc1fc128f4
--- /dev/null
+++ b/macros/latex/contrib/clefval/README
@@ -0,0 +1,31 @@
+CLEFVAL 01 2004-05-22
+
+LISEZMOI
+README % this file
+Changes
+Makefile
+clefval.dtx
+clefval.pdf % bilingual documentation
+clefval.ins % for an English version (of the warnings) of the package
+fra-celval.ins % for a French version (of the warnings) of the package
+example.tex % an example of usage of engpron and clefval
+example.pdf %
+exemple.tex % the French version of above
+exemple.pdf %
+clefval.xml
+
+
+clefval.sty provides two macros \TheKey and \TheValue to define then
+use pairs of key/value and gives a semblance of hash.
+
+
+To produce the clefval.sty file run:
+latex clefval.ins
+
+*nix users should use the provided Makefile, run
+make help
+to obtain help.
+
+--
+Le \TeX nicien de surface
+Yvon.Henel@wanadoo.fr
diff --git a/macros/latex/contrib/clefval/clefval.dtx b/macros/latex/contrib/clefval/clefval.dtx
new file mode 100644
index 0000000000..67bbea73a8
--- /dev/null
+++ b/macros/latex/contrib/clefval/clefval.dtx
@@ -0,0 +1,418 @@
+% \iffalse meta-comment
+% -*- mode: LaTeX; coding: iso-8859-15 -*-
+%
+%%%% Copyright (C) 2004 by Josselin Noirel
+%%%% and Yvon Henel <Yvon.Henel@wanadoo.fr>
+%%%% --------------------------------------------------------
+%
+% This file may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% 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}
+%<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}
+% commentez la ligne suivante pour avoir un document avec le code
+\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.
+\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
+ 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}}
+\renewcommand{\SpecialMainEnvIndex}[1]{%
+ \@bsphack\special@index{%
+ #1\actualchar {\string\ttfamily\space#1}(environnement)%
+ \encapchar main}%
+ \special@index{environnements:\levelchar{%
+ \string\ttfamily\space#1}\encapchar main}\@esphack}
+\makeatother
+\def\generalname{Général}
+%%% fin de la francisation
+\setlength{\columnseprule}{0.5pt}
+\setlength{\multicolsep}{6pt plus 2.0pt minus 1.5pt}
+\def\FraTitre{\relax}
+\def\EngTitre{\relax}
+\newcommand{\TraiteTitre}[1]{\TraiteTitreAux#1/Z}
+\def\TraiteTitreAux#1/#2/Z{\def\FraTitre{\TitreMorciau{#1}}%
+ \ifthenelse{\equal{#2}{}}{\def\LarGuMent{#1}}{\def\LarGuMent{#2}}
+ \def\EngTitre{\TitreMorciau{\LarGuMent}}}
+\newcommand{\TitreMorciau}[1]{%
+ \noindent\textbf{#1}\par\noindent\ignorespaces}
+\newenvironment{Morciau}[1][ZXZXZ]{\raggedcolumns\begin{multicols}{2}%
+ \selectlanguage{french}%
+ \ifthenelse{\equal{#1}{ZXZXZ}}{\relax}{\TraiteTitre{#1}\FraTitre}}%
+ {\end{multicols}}
+\newcommand{\EnAnglais}{\columnbreak\mbox{}
+ \par\selectlanguage{english}\EngTitre}
+\newcommand{\NomDeModule}[1]{\texttt{#1.sty}\xspace}
+\newcommand{\fctt}{\texttt{fr.comp.text.tex}\xspace}
+\newcommand{\Sourire}{\texttt{;-)}\xspace}
+\newcommand{\LB}{\linebreak[2]}
+%%% fin de la personalisation
+\begin{document}
+ \DocInput{clefval.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{76}
+%
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \GetFileInfo{clefval.sty}
+%
+% \changes{v0}{2004/05/20}{1\iere version publique.}
+%
+% \DoNotIndex{\newcommand, \renewcommand, \providecommand,^^A
+% \def, \let,\csname, \endcsname, \afterassignment,^^A
+% \long, \global, \gdef, \edef, \xdef, \null, \write,^^A
+% \newenvironment,\renewenvironment, \expandafter, \relax,^^A
+% \protect, \begingroup, \endgroup, \bgroup, \egroup^^A
+% \DeclareOption, \ExecuteOptions, \RequirePackage,^^A
+% \ProcessOptions, \newif, \fi, \if, \or, \ifnum, \ifcase,\ifx,^^A
+% \ifvmode, \@ifundefined, \@bsphack, \@esphack,^^A
+% \nobreak, \if@nobreak, \@onlypreamble, \@unexpandable@protect,^^A
+% \space, \string, \AtBeginDocument, \AtEndDocument,^^A
+% \bfseries, \reset@font, \nfss@text, \',^^A
+% \@latex@warning, \@latex@warning@no@line,^^A
+% \@testdef, \@namedef, \reserved@a,^^A
+% \else, \@ctrerr, \text,\textup, \value, \thepage, \@auxout}
+%
+% \title{Le module\thanks{Ce document correspond au fichier
+% \textsf{clefval}~\fileversion, du \filedate.}\hspace{2cm}
+% The package\thanks{This document corresponds to the file
+% \textsf{clefval}~\fileversion, dated \filedate.}\\
+% \textsf{clefval}}
+%
+% \author{Le \TeX nicien de
+% surface\thanks{\texttt{Yvon.Henel@wanadoo.fr}}\and Josselin Noirel}
+%
+% \maketitle
+%
+% \section{Introduction}
+% \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
+% 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é}.
+% \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}
+% \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
+% 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.
+% \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|
+% 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|.
+% \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
+% \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
+% arguments d'une commande qui n'est pas \cs{long}.
+% \EnAnglais
+% In addition the arguments must not contain end of paragraph
+% (\cs{par}) ---~or any other thingummy which is forbidden in the
+% arguments of a macro which is not \cs{long}.
+% \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
+% 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
+% |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}}
+% \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.
+%
+% 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
+% email, to correct the hack I have made in the code taken from
+% \texttt{ltxref} and \texttt{ltfiles}. For he made that decisive
+% contribution, he is mentionned here as a co-author of this
+% package. May he find there the expression of my deep gratefulness.
+%
+% Howerver I take the entire responsability for the writing of the
+% present documentation and its English translation and I do recognise
+% 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}
+% \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
+% 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
+% sujet.
+%
+% 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
+% la correction par Josselin de mes modifications du code de
+% \texttt{ltxref}, moyennant quoi, je signe \Sourire
+%
+% \iffalse
+%<*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
+% 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
+% \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 ????}%
+% \end{macrocode}
+% \end{macro}
+% \iffalse
+%</package>
+%<*packfra>
+% \fi
+% \textsf{Messages d'avertissement en français}
+% \begin{macrocode}
+\@latex@warning{Valeur de #2 en page \thepage\space non d\'efinie}%
+% \end{macrocode}
+% \iffalse
+%</packfra>
+%<*packeng>
+% \fi
+% \textsf{Warning messages in English }
+% \begin{macrocode}
+\@latex@warning{Value of `#2' on page \thepage\space undefined}%
+% \end{macrocode}
+% \iffalse
+%</packeng>
+%<*package>
+% \fi
+% \begin{macrocode}
+ \else #1\null \fi}
+% \end{macrocode}
+% \begin{macro}{\TheValue}
+% 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.
+% \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}.
+% \begin{macrocode}
+\newcommand*{\@newk@ey}[3]{{%
+ \@ifundefined{#1@#2}%
+ {\relax}%
+ {\gdef \@multiplekeys {%
+% \end{macrocode}
+% \end{macro}
+% \iffalse
+%</package>
+%<*packfra>
+% \fi
+% \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}}%
+% \end{macrocode}
+% \iffalse
+%</packfra>
+%<*packeng>
+% \fi
+% \textsf{Warning messages in English }
+% \begin{macrocode}
+\@latex@warning@no@line{There were multiply-defined keys.}}%
+\@latex@warning@no@line{Key `#2' multiply defined}}%
+% \end{macrocode}
+% \iffalse
+%</packeng>
+%<*package>
+% \fi
+% \begin{macrocode}
+ \global\@namedef{#1@#2}{#3}}}
+% \end{macrocode}
+% \begin{macro}{\newkey}
+% On opère ici une puissante magie qui fait que tout marche comme
+% attendu \Sourire
+% \begin{macrocode}
+\def\newkey{\@newk@ey V}
+\@onlypreamble\@newk@ey
+\AtEndDocument{\let\@newk@ey=\@testdef}
+% \end{macrocode}
+% \end{macro}
+% \iffalse
+%</package>
+% ^^A fin du code de Josselin Noirel
+%<*package>
+% \fi
+% À 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
+% parfois pour les arguments \og mobiles \fg (\emph{moving
+% argument}).
+% \begin{macrocode}
+\long\def \@protected@write#1{%
+ \begingroup
+ \let\protect\@unexpandable@protect
+ \edef\reserved@a{%
+ \write\@auxout{#1}}%
+ \reserved@a \endgroup \if@nobreak\ifvmode\nobreak\fi\fi }
+% \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
+% \begin{macrocode}
+\let \@multiplekeys \relax
+% \end{macrocode}
+% \end{macro}
+% \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.
+% \begin{macrocode}
+\def\TheKey#1#2{{\@bsphack
+ \@protected@write{\string\newkey{#1}{#2}}%
+ \@esphack}}
+% \end{macrocode}
+% \end{macro}
+% \iffalse
+%</package>
+% \fi
+% \Finale \PrintChanges\PrintIndex
+\endinput
diff --git a/macros/latex/contrib/clefval/clefval.ins b/macros/latex/contrib/clefval/clefval.ins
new file mode 100644
index 0000000000..a5f33524c3
--- /dev/null
+++ b/macros/latex/contrib/clefval/clefval.ins
@@ -0,0 +1,53 @@
+%%% 2004-05-22
+%%
+%% Copyright (C) 2004 by Yvon Henel Le TeXnicien de surface
+%% <Yvon.Henel@wanadoo.fr>
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 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.
+%%
+\input docstrip.tex
+\keepsilent
+\preamble
+This is a generated file.
+
+Copyright (C) 2004 Y. Henel, le TeXnicien de surface
+<Yvon.Henel@wanadoo.fr>
+
+This file may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, either version 1.2 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.
+\endpreamble
+%%% for English warnings :
+\generate{\file{clefval.sty}{\from{clefval.dtx}{package,packeng}}}
+
+\Msg{***************************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the}
+\Msg{* file into a directory searched by TeX:}
+\Msg{*}
+\Msg{* \space\space clefval.sty}
+\Msg{*}
+\Msg{* To produce the (bilingual) documentation do:}
+\Msg{* latex clefval.dtx}
+\Msg{* makeindex -s gind clefval }
+\Msg{* makeindex -s gglo -o clefval.gls clefval.glo}
+\Msg{* latex clefval.dtx}
+\Msg{*}
+\Msg{* Happy TeXing}
+\Msg{***************************************************************}
+
+\endbatchfile
diff --git a/macros/latex/contrib/clefval/clefval.pdf b/macros/latex/contrib/clefval/clefval.pdf
new file mode 100644
index 0000000000..f4535d6385
--- /dev/null
+++ b/macros/latex/contrib/clefval/clefval.pdf
Binary files differ
diff --git a/macros/latex/contrib/clefval/example.pdf b/macros/latex/contrib/clefval/example.pdf
new file mode 100644
index 0000000000..f1ff324485
--- /dev/null
+++ b/macros/latex/contrib/clefval/example.pdf
Binary files differ
diff --git a/macros/latex/contrib/clefval/example.tex b/macros/latex/contrib/clefval/example.tex
new file mode 100644
index 0000000000..f2dcc48838
--- /dev/null
+++ b/macros/latex/contrib/clefval/example.tex
@@ -0,0 +1,94 @@
+% -*- mode: LaTeX; coding: iso-8859-15 -*-
+\documentclass[a4paper,10pt]{article}
+\usepackage[latin9]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[frenchb]{babel}
+\usepackage{lmodern}
+\usepackage[tame]{engpron}
+\usepackage{clefval}
+
+\newcommand{\Saut}{\par
+ \noindent\hspace*{\stretch{1}}%
+ \makebox[0.75\linewidth][c]{\hrulefill}%
+ \hspace*{\stretch{1}}\par}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\makepoundletter
+\newcommand{\LaPron}[1]{#1
+ \pron{\ActiveLaLivre\expandafter{\TheValue{#1}}}}
+\newcommand{\LaCle}[2]{\TheKey{#1}{#2}\LaPron{#1}}
+\makepoundother
+
+\title{Example of usage of package \texttt{clefval}.}
+\author{Le \TeX nicien de surface}
+\def\today{2004-05-23}
+\maketitle
+\thispagestyle{empty}
+
+This is an example of usage of packages \texttt{engpron}
+---~with option \texttt{tame}~--- and \texttt{clefval}.
+
+\Saut\medskip
+
+This is the main part of the header of this document, one will note that
+the definitions of the macros \verb|\LaPron| and \verb|\LaCle| have been
+placed \textbf{after} the \verb|\begin{document}|.
+
+\begin{verbatim}
+\documentclass[a4paper,10pt]{article}
+\usepackage[latin9]{inputenc} \usepackage[T1]{fontenc}
+\usepackage[frenchb]{babel} \usepackage{lmodern}
+\usepackage[tame]{engpron} \usepackage{clefval}
+\setlength{\parindent}{0pt}
+\begin{document}
+\makepoundletter
+\newcommand{\LaPron}[1]{#1
+\pron{\ActiveLaLivre\expandafter{\TheValue{#1}}}}
+\newcommand{\LaCle}[2]{\TheKey{#1}{#2}\LaPron{#1}}
+\makepoundother
+\end{verbatim}
+
+\Saut
+\medskip
+
+One writes first the word and its pronunciation \LaCle{baby}{b£qb£i}. Later
+one writes \emph{almost} just the word as here: \LaPron{baby}.
+
+An other \LaCle{stationery}{£Hst£q£s£en£Xer£i}. And so \LaPron{stationery}.
+
+\bigskip
+
+Which is obtained with:
+
+\bigskip
+
+\verb|One writes first the word and its pronunciation |%
+\verb|\LaCle{baby}{b|\texttt{\£}\verb|qb|\texttt{\£}\verb|i}.| \verb|Later|
+\verb| one writes \emph{almost} just the word as here: |%
+\verb|\LaPron{baby}.|
+
+\verb|An other \LaCle{stationery}{|\texttt{\£}\verb|Hst|%
+\texttt{\£}\verb|q|\texttt{\£} %
+\verb|s|\texttt{\£}\verb|en|\texttt{\£}\verb|Xer|\texttt{\£}\verb|i}.|\\
+\verb|And so |\verb|\LaPron{stationery}.|
+
+\Saut\medskip
+
+Content of the \texttt{aux} file (extract) :
+
+\verb!\newkey{baby}{b!\texttt{\£}\verb!qb!\texttt{\£}\verb!i}!\\
+\verb!\newkey{stationery}{!\texttt{\£}\verb!Hst!\texttt{\£}%
+\verb!q!\texttt{\£}\verb!s!\texttt{\£}\verb!en!\texttt{\£}\verb!Xer!%
+\texttt{\£}\verb!i}!
+
+%%% False verbatim for £ because of encodings!
+
+\vspace*{\stretch{1}}
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/clefval/exemple.pdf b/macros/latex/contrib/clefval/exemple.pdf
new file mode 100644
index 0000000000..27a8f27f95
--- /dev/null
+++ b/macros/latex/contrib/clefval/exemple.pdf
Binary files differ
diff --git a/macros/latex/contrib/clefval/exemple.tex b/macros/latex/contrib/clefval/exemple.tex
new file mode 100644
index 0000000000..11d24c5a8d
--- /dev/null
+++ b/macros/latex/contrib/clefval/exemple.tex
@@ -0,0 +1,97 @@
+% -*- mode: LaTeX; coding: iso-8859-15 -*-
+\documentclass[a4paper,10pt]{article}
+\usepackage[latin9]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage[frenchb]{babel}
+\usepackage{lmodern}
+\usepackage[tame]{engpron}
+\usepackage{clefval}
+
+\newcommand{\Saut}{\par
+ \noindent\hspace*{\stretch{1}}%
+ \makebox[0.75\linewidth][c]{\hrulefill}%
+ \hspace*{\stretch{1}}\par}
+\setlength{\parindent}{0pt}
+
+\begin{document}
+
+\makepoundletter
+\newcommand{\LaPron}[1]{#1
+ \pron{\ActiveLaLivre\expandafter{\TheValue{#1}}}}
+\newcommand{\LaCle}[2]{\TheKey{#1}{#2}\LaPron{#1}}
+\makepoundother
+
+\title{Exemple accompagnant le module \texttt{clefval}.}
+\author{Le \TeX nicien de surface}
+\def\today{2004-05-23}
+\maketitle
+\thispagestyle{empty}
+
+Ceci est un exemple d'utilisation des modules \texttt{engpron}
+---~avec l'option \texttt{tame}~--- et \texttt{clefval}.
+
+\Saut\medskip
+
+Ceci est l'essentiel de l'entête de ce document, on notera que l'on a
+placé la définition des commandes \verb|\LaPron| et \verb|\LaCle|
+\textbf{après} le \verb|\begin{document}|.
+
+\begin{verbatim}
+\documentclass[a4paper,10pt]{article}
+\usepackage[latin9]{inputenc} \usepackage[T1]{fontenc}
+\usepackage[frenchb]{babel} \usepackage{lmodern}
+\usepackage[tame]{engpron} \usepackage{clefval}
+\setlength{\parindent}{0pt}
+\begin{document}
+\makepoundletter
+\newcommand{\LaPron}[1]{#1
+\pron{\ActiveLaLivre\expandafter{\TheValue{#1}}}}
+\newcommand{\LaCle}[2]{\TheKey{#1}{#2}\LaPron{#1}}
+\makepoundother
+\end{verbatim}
+
+\Saut
+\medskip
+
+On écrit une première fois le mot et sa prononciation
+\LaCle{baby}{b£qb£i}. Plus tard, on n'écrit \emph{presque} plus que
+le mot et on a également la prononciation, comme ici : \LaPron{baby}.
+
+Un autre \LaCle{stationery}{£Hst£q£s£en£Xer£i}. Et donc
+\LaPron{stationery}.
+
+\bigskip
+
+Ce qui est obtenu avec :
+
+\bigskip
+
+\verb|On écrit une première fois le mot et sa prononciation |\\
+\verb|\LaCle{baby}{b|\texttt{\£}\verb|qb|\texttt{\£}\verb|i}.|
+\verb|Plus tard, on n'écrit \emph{presque} plus que |\\
+\verb|le mot et on a également la prononciation,| \verb|comme ici :|
+\verb|\LaPron{baby}.|
+
+\verb|Un autre\LaCle{stationery}{|\texttt{\£}\verb|Hst|%
+\texttt{\£}\verb|q|\texttt{\£}%
+\verb|s|\texttt{\£}\verb|en|\texttt{\£}\verb|Xer|\texttt{\£}\verb|i}.|\\
+\verb|Et donc |\verb|\LaPron{stationery}.|
+
+\Saut\medskip
+
+Contenu du fichier \texttt{aux} (extrait) :
+
+\verb!\newkey{baby}{b!\texttt{\£}\verb!qb!\texttt{\£}\verb!i}!\\
+\verb!\newkey{stationery}{!\texttt{\£}\verb!Hst!\texttt{\£}%
+\verb!q!\texttt{\£}\verb!s!\texttt{\£}\verb!en!\texttt{\£}\verb!Xer!%
+\texttt{\£}\verb!i}!
+
+%%% Faux verbatim pour £ pour des raisons de codes !
+
+\vspace*{\stretch{1}}
+\end{document}
+
+%%% Local Variables:
+%%% mode: latex
+%%% TeX-master: t
+%%% End:
diff --git a/macros/latex/contrib/clefval/fra-clefval.ins b/macros/latex/contrib/clefval/fra-clefval.ins
new file mode 100644
index 0000000000..8471c591ea
--- /dev/null
+++ b/macros/latex/contrib/clefval/fra-clefval.ins
@@ -0,0 +1,58 @@
+%%% 2004-05-22
+%%
+%% Copyright (C) 2004 by Yvon Henel Le TeXnicien de surface
+%% <Yvon.Henel@wanadoo.fr>
+%%
+%% This file may be distributed and/or modified under the conditions of
+%% the LaTeX Project Public License, either version 1.2 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.
+%%
+\input docstrip.tex
+\keepsilent
+\preamble
+This is a generated file.
+
+Copyright (C) 2004 Y. Henel, le TeXnicien de surface
+<Yvon.Henel@wanadoo.fr>
+
+This file may be distributed and/or modified under the conditions of
+the LaTeX Project Public License, either version 1.2 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.
+\endpreamble
+%%% pour messages en fran\c cais :
+\generate{\file{clefval.sty}{\from{clefval.dtx}{package,packfra}}}
+
+\Msg{****************************************************************}
+\Msg{*}
+\Msg{* VERSION FRANÇAISE :: FRENCH VERSION}
+\Msg{*}
+\Msg{* Pour finir l'installation vous devez placer}
+\Msg{* le fichier suivant dans un répertoire parcouru par TeX.}
+\Msg{*}
+\Msg{* \space\space clefval.sty}
+\Msg{*}
+\Msg{* Pour produire la documentation (bilingue) faire : }
+\Msg{* pdflatex clefval.dtx}
+\Msg{* makeindex -s gind clefval }
+\Msg{* makeindex -s gglo -o clefval.gls clefval.glo}
+\Msg{* pdflatex clefval.dtx}
+\Msg{*}
+\Msg{* puis placez clefval.pdf dans un répertoire de documentation}
+\Msg{* comme par exemple texmf-local/doc/latex/clefval}
+\Msg{*}
+\Msg{********************* TeXez dans la joie ! *********************}
+\Msg{****************************************************************}
+
+\endbatchfile