From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/clefval/Changements | 8 + macros/latex/contrib/clefval/Changes | 8 + macros/latex/contrib/clefval/LISEZMOI | 35 +++ macros/latex/contrib/clefval/Makefile | 190 ++++++++++++ macros/latex/contrib/clefval/README | 31 ++ macros/latex/contrib/clefval/clefval.dtx | 418 +++++++++++++++++++++++++++ macros/latex/contrib/clefval/clefval.ins | 53 ++++ macros/latex/contrib/clefval/clefval.pdf | Bin 0 -> 174839 bytes macros/latex/contrib/clefval/example.pdf | Bin 0 -> 92516 bytes macros/latex/contrib/clefval/example.tex | 94 ++++++ macros/latex/contrib/clefval/exemple.pdf | Bin 0 -> 95184 bytes macros/latex/contrib/clefval/exemple.tex | 97 +++++++ macros/latex/contrib/clefval/fra-clefval.ins | 58 ++++ 13 files changed, 992 insertions(+) create mode 100644 macros/latex/contrib/clefval/Changements create mode 100644 macros/latex/contrib/clefval/Changes create mode 100644 macros/latex/contrib/clefval/LISEZMOI create mode 100644 macros/latex/contrib/clefval/Makefile create mode 100644 macros/latex/contrib/clefval/README create mode 100644 macros/latex/contrib/clefval/clefval.dtx create mode 100644 macros/latex/contrib/clefval/clefval.ins create mode 100644 macros/latex/contrib/clefval/clefval.pdf create mode 100644 macros/latex/contrib/clefval/example.pdf create mode 100644 macros/latex/contrib/clefval/example.tex create mode 100644 macros/latex/contrib/clefval/exemple.pdf create mode 100644 macros/latex/contrib/clefval/exemple.tex create mode 100644 macros/latex/contrib/clefval/fra-clefval.ins (limited to 'macros/latex/contrib/clefval') 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 +%%%% -------------------------------------------------------- +% +% 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 +%\NeedsTeXFormat{LaTeX2e} +%\def\fileversion{v0} +%\def\filedate{2004/05/22} +%\def\fileinfo{d\'efinir et utiliser des paires cle/valeurs} +%\def\fileinfo{define and use pair of key/values} +%\ProvidesPackage{clefval} +% [\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} +% +% \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 +% +%<*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 +% +%<*packeng> +% \fi +% \textsf{Warning messages in English } +% \begin{macrocode} +\@latex@warning{Value of `#2' on page \thepage\space undefined}% +% \end{macrocode} +% \iffalse +% +%<*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 +% +%<*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 +% +%<*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 +% +%<*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 +% +% ^^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 +% +% \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 +%% +%% +%% 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 + + +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 Binary files /dev/null and b/macros/latex/contrib/clefval/clefval.pdf differ diff --git a/macros/latex/contrib/clefval/example.pdf b/macros/latex/contrib/clefval/example.pdf new file mode 100644 index 0000000000..f1ff324485 Binary files /dev/null and b/macros/latex/contrib/clefval/example.pdf 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 Binary files /dev/null and b/macros/latex/contrib/clefval/exemple.pdf 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 +%% +%% +%% 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 + + +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 -- cgit v1.2.3