% \iffalse meta-comment % -*- mode: LaTeX; coding: iso-8859-15 -*- % %%%% Copyright (C) 2004 by 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}[1999/12/01] %\def\PackageName{engrec} %\def\fileversion{v1} %\def\filedate{2004/05/20} %\def\fileinfo{fichier engrec.sty par Le TeXnicien de surface} %\ProvidesPackage{engrec} % [\filedate\space\fileversion\space\fileinfo] %<*driver> \documentclass[a4paper]{ltxdoc} \usepackage[latin9]{inputenc} \usepackage[T1]{fontenc} \usepackage{engrec} \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 -- General} %%% 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/ZZZ} \def\TraiteTitreAux#1/#2/ZZZ{\def\FraTitre{\TitreMorciau{#1}}% \ifthenelse{\equal{#2}{}}{\def\LarGuMent{#1}}{\def\LarGuMent{#2}} \def\EngTitre{\TitreMorciau{\LarGuMent}}} \newcommand{\TitreMorciau}[1]{\paragraph{#1}} \newenvironment{Morciau}[1][ZXZXZ]{\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} %%% fin de la personalisation \begin{document} \DocInput{engrec.dtx} \end{document} % % \fi % % \CheckSum{330} % % \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{engrec.sty} % % \changes{v1}{2004/05/20}{1\iere version publique. 1st public version.} % % \DoNotIndex{\newcommand,\newenvironment,\i,\ae,\oe,\DeclareOption,^^A % \alpha, \beta, \gamma, \delta, \epsilon,^^A % \varepsilon, \zeta, \eta, \theta, \vartheta, \iota, \kappa,^^A % \lambda, \mu, \nu, \xi, \pi, \varpi, \rho, \varrho, \sigma,^^A % \varsigma, \tau, \upsilon, \phi, \varphi, \chi, \psi, \omega,^^A % \upalpha, \upbeta, \upgamma, \updelta, \upepsilon,^^A % \upvarepsilon, \upzeta, \upeta, \uptheta, \upvartheta, \upiota, \upkappa,^^A % \uplambda, \upmu, \upnu, \upxi, \uppi, \upvarpi, \uprho, \upvarrho, \upsigma,^^A % \upvarsigma, \uptau, \upupsilon, \upphi, \upvarphi, \upchi, \uppsi, \upomega,^^A % \Delta, \Gamma, \Theta, \Lambda, \Xi, \Pi, \Phi, \Psi \Sigma,^^A % \Upsilon, \ExecuteOptions, \providecommand, \newif,^^A % \fi, \if, \or, \ifnum,\ifcase, \def, \expandafter,^^A % \RequirePackage, \@ctrerr, \ProcessOptions,\relax,^^A % \text, \textup \csname, \endcsname, \value, \else, \Omega} % % \title{Le module \textsf{engrec}\thanks{Ce document correspond au % fichier \textsf{engrec}~\fileversion, du \filedate.}\\ % The package \textsf{engrec}\thanks{This document corresponds to the % file \textsf{engrec}~\fileversion, dated \filedate.}} % % \author{Le \TeX nicien de % surface\thanks{\texttt{Yvon.Henel@wanadoo.fr}}} % % \maketitle % %\section{Introduction} %\label{secIntro} % \begin{Morciau}[Macros~publiques/Public~Macros] % Deux macros \cs{engrec} et \cs{EnGrec} pour numéroter, par exemple % des listes, avec des minuscules ou des majuscules grecques. Leur % syntaxe est celle de \cs{alph}. % \EnAnglais % Two macros \cs{engrec} and \cs{EnGrec} to enumerate, for example % some lists, with lower case or upper case greek letters. They have % the syntax of \cs{alph}. % \end{Morciau} % \begin{Morciau}[Syntaxe/Syntax] % \cs{engrec}\marg{compteur} \cs{EnGrec}\marg{compteur} % \EnAnglais % \cs{engrec}\marg{counter}\\ \cs{EnGrec}\marg{counter} % \end{Morciau} % \begin{Morciau}[Options/] % Le module admet des options qui permettent de selectionner la % forme des caractères à variante. \texttt{toto} étant égal à % \texttt{epsilon} ou \texttt{theta} ou \texttt{pi} ou \texttt{rho} % ou \texttt{sigma} ou \texttt{phi}, l'option \texttt{vartoto} % sélectionne la lettre grecque minuscule \cs{vartoto} et s'oppose à % l'option \texttt{toto} qui sélectionne \cs{toto}. % \EnAnglais % The package has options which enable us to select the shape of the % greek lower case character with variant. Let \texttt{toto} be equal % to \texttt{epsilon} or \texttt{theta} or \texttt{pi} or \texttt{rho} % or \texttt{sigma} or \texttt{phi}, the option \texttt{vartoto} % selects the greek lower case character \cs{vartoto} and is the % opposite of the option \texttt{toto} which selects \cs{toto}. % \end{Morciau} % \begin{Morciau}[Minuscules~droites/Upright~Lowercases] % Le module admet aussi l'option \texttt{upgreek} qui charge % \NomDeModule{upgreek} pour fournir des minuscules grecques droites. Cette % option s'oppose à \texttt{slgreek}, option par défaut. % \EnAnglais % The package has also option \texttt{upgreek} which loads \NomDeModule{upgreek} % to provide upright lower case greek characters. That option is the opposite of % the default \texttt{slgreek}. % \end{Morciau} % \begin{Morciau}[Avec~fourier.sty/With~fourier.sty] % Il admet enfin l'option \texttt{upright} qui règle le cas du \emph{omicron} et % doit être utilisée lorsque l'on charge \NomDeModule{fourier} avec l'option % \texttt{upright}. Cette option s'oppose à \texttt{sloped}, prise par défaut. % \EnAnglais % It has also option \texttt{upright} which takes care of the % \emph{omicron} and must be used when one loads \NomDeModule{fourier} % with option \texttt{upright}. This option is the opposite of the % default \texttt{sloped}. % \end{Morciau} % \begin{Morciau} % La façon la plus simple de passer cette option est alors d'utiliser\\ % \cs{DocumentClass}[\texttt{upright}$\cdots$]\marg{classe}\\ plutôt que de % charger et \NomDeModule{fourier} et \NomDeModule{engrec} avec, tous deux, % l'option \texttt{upright}. % \EnAnglais % The easiest way of selecting that option is to use\\ % \cs{DocumentClass}[\texttt{upright}$\cdots$]\marg{class}\\ instead of % loading and \NomDeModule{fourier} and \NomDeModule{engrec} both with option % \texttt{upright}. % \end{Morciau} % \begin{Morciau}[\text{Options~par~défaut}/\text{Default~Options}] % \texttt{varepsilon}, \texttt{theta}, \texttt{pi}, \texttt{rho}, % \texttt{sigma}, \texttt{varphi}, \texttt{sloped}, \texttt{slgreek}. % \EnAnglais % \texttt{varepsilon}, \texttt{theta}, \texttt{pi}, \texttt{rho}, % \texttt{sigma}, \texttt{varphi}, \texttt{sloped}, \texttt{slgreek}. % \end{Morciau} % \begin{Morciau}[Module~chargé/Loaded~Package] % Ce module nécessite \NomDeModule{amsmath} dont il utilise la % commande \cs{text} pour définir les macros comme \cs{Alpha} qui sont % les \og noms \fg des majuscules grecques qui n'en ont pas % d'habitude car leur forme est semblable à celle d'une lettre % latine : {\ttfamily Alpha, Beta, Epsilon, Zeta, Eta, Iota, % Mu, Nu, Omicron, Rho, Tau, Chi}. \cs{Alpha} est égale à % \cs{text\{A\}}, elle peut être employée en mode mathématique et % donne \text{A}. % \EnAnglais % This package requires \NomDeModule{amsmath} for it uses \cs{text} % defined there to create macros such as \cs{Alpha} which are the % `names' of the upper case greek letters which have usually no names % since their shape is similar to the shape of a latin character, % viz.: {\ttfamily Alpha, Beta, Epsilon, Zeta, Eta, Iota, Mu, Nu, % Omicron, Rho, Tau, Chi}. \cs{Alpha} is equal to \cs{text\{A\}} and % so may be used in mathematical mode to give \text{A}. % \end{Morciau} % \begin{Morciau}[omicron/] % Il définit également la minuscule \texttt{omicron}. La macro % \cs{omicron} est définie comme o et apparaît comme $\omicron$. Il en donne % une version toujours droite avec \cs{upomicron} : $\upomicron$. % \EnAnglais % The lower case \texttt{omicron} is also provided by \cs{omicron} and % defined as o which is printed $\omicron$. There is also an always upright % version with \cs{upomicron}: $\upomicron$. % \end{Morciau} % \begin{Morciau}[Le code/The Code] % Le code des macros \cs{engrec}, \cs{EnGrec} et des macros % auxiliaires associées |\@grec| et |\@Grec| est repris quasi verbatim % de \texttt{latex.ltx}. % \EnAnglais % The code of macros \cs{engrec}, \cs{EnGrec} and of associated % auxiliary macros |\@grec| and |\@Grec| is taken, almost verbatim, % from \texttt{latex.ltx}. % \end{Morciau} % % \section{Utilisation -- Usage} % \begin{Morciau}[Exemple/Example] % On crée un compteur, on l'initialise à 1, on en fait écrire la valeur par % \cs{engrec} puis on l'augmente de 1 et on fait écrire sa valeur par % \cs{engrec} 23 fois. Puis la même chose avec \cs{EnGrec}. % \EnAnglais % We create a counter, initialise it to 1, make \cs{engrec} write its value then % we add 1 and write its value with \cs{engrec} 23 times. Then the same with % \cs{EnGrec}. % \end{Morciau} % \bgroup \setlength{\parindent}{0pt} % |\newcounter{montruc} \setcounter{montruc}{1} \engrec{montruc}|\\ % |\stepcounter{montruc} \engrec{montruc}| \(\times 23\) % % \newcounter{montruc} \setcounter{montruc}{1} \engrec{montruc} % \stepcounter{montruc} \engrec{montruc} \stepcounter{montruc} % \engrec{montruc} \stepcounter{montruc} \engrec{montruc} % \stepcounter{montruc} \engrec{montruc} \stepcounter{montruc} % \engrec{montruc} \stepcounter{montruc} \engrec{montruc} % \stepcounter{montruc} \engrec{montruc} \stepcounter{montruc} % \engrec{montruc} \stepcounter{montruc} \engrec{montruc} % \stepcounter{montruc} \engrec{montruc} \stepcounter{montruc} % \engrec{montruc} \stepcounter{montruc} \engrec{montruc} % \stepcounter{montruc} \engrec{montruc} \stepcounter{montruc} % \engrec{montruc} \stepcounter{montruc} \engrec{montruc} % \stepcounter{montruc} \engrec{montruc} \stepcounter{montruc} % \engrec{montruc} \stepcounter{montruc} \engrec{montruc} % \stepcounter{montruc} \engrec{montruc} \stepcounter{montruc} % \engrec{montruc} \stepcounter{montruc} \engrec{montruc} % \stepcounter{montruc} \engrec{montruc} \stepcounter{montruc} % \engrec{montruc} % % |\setcounter{montruc}{1} \EnGrec{montruc}|\\ % |\stepcounter{montruc} \EnGrec{montruc}| \(\times 23\) % % \setcounter{montruc}{1} \EnGrec{montruc} % \stepcounter{montruc} \EnGrec{montruc} \stepcounter{montruc} % \EnGrec{montruc} \stepcounter{montruc} \EnGrec{montruc} % \stepcounter{montruc} \EnGrec{montruc} \stepcounter{montruc} % \EnGrec{montruc} \stepcounter{montruc} \EnGrec{montruc} % \stepcounter{montruc} \EnGrec{montruc} \stepcounter{montruc} % \EnGrec{montruc} \stepcounter{montruc} \EnGrec{montruc} % \stepcounter{montruc} \EnGrec{montruc} \stepcounter{montruc} % \EnGrec{montruc} \stepcounter{montruc} \EnGrec{montruc} % \stepcounter{montruc} \EnGrec{montruc} \stepcounter{montruc} % \EnGrec{montruc} \stepcounter{montruc} \EnGrec{montruc} % \stepcounter{montruc} \EnGrec{montruc} \stepcounter{montruc} % \EnGrec{montruc} \stepcounter{montruc} \EnGrec{montruc} % \stepcounter{montruc} \EnGrec{montruc} \stepcounter{montruc} % \EnGrec{montruc} \stepcounter{montruc} \EnGrec{montruc} % \stepcounter{montruc} \EnGrec{montruc} \stepcounter{montruc} % \EnGrec{montruc} % \egroup %^^A % \StopEventually{} % \section{Le code} % \label{secCode} % On dit boujour, puis on définit les huit tests qui correspondent aux % six paires d'options possibles. % \iffalse %<*package> % \fi % \begin{macrocode} \newif\if@varepsilon \newif\if@vartheta \newif\if@varpi \newif\if@varrho \newif\if@varsigma \newif\if@varphi \newif\if@upomicron % utiliser \upomicron ou bien \omicron ? \newif\if@upgreek % toutes les minuscules grecques debout ! % \end{macrocode} % On définit les options. Chacune fixe à \texttt{true} ou % \texttt{false} le booléen correspondant. % \begin{macrocode} \DeclareOption{upright}{\@upomicrontrue} \DeclareOption{sloped}{\@upomicronfalse} \DeclareOption{upgreek}{\@upgreektrue} \DeclareOption{slgreek}{\@upgreekfalse} \DeclareOption{varepsilon}{\@varepsilontrue} \DeclareOption{epsilon}{\@varepsilonfalse} \DeclareOption{vartheta}{\@varthetatrue} \DeclareOption{theta}{\@varthetafalse} \DeclareOption{varpi}{\@varpitrue} \DeclareOption{pi}{\@varpifalse} \DeclareOption{varrho}{\@varrhotrue} \DeclareOption{rho}{\@varrhofalse} \DeclareOption{varsigma}{\@varsigmatrue} \DeclareOption{sigma}{\@varsigmafalse} \DeclareOption{varphi}{\@varphitrue} \DeclareOption{phi}{\@varphifalse} % \end{macrocode} % On exécute les options par défaut. % \begin{macrocode} \ExecuteOptions{varepsilon,theta,pi,rho,sigma,varphi,sloped,slgreek} \ProcessOptions\relax % \end{macrocode} % On charge le module \NomDeModule{amsmath}. % \begin{macrocode} \RequirePackage{amsmath} % \end{macrocode} % On charge le module \NomDeModule{upgreek} si l'option \texttt{upgreek} a été % choisie. % \begin{macrocode} \if@upgreek \RequirePackage{upgreek}\fi % \end{macrocode} % On définit les macros \og manquantes \fg de telle sorte que chaque % lettre grecque ait sa macro. On utilise \cs{providecommand} au cas % où un module se chargerait de les définir. % \begin{macrocode} \providecommand{\Alpha}{\text{A}} % \end{macrocode} % \begin{macrocode} \providecommand{\Beta}{\text{B}} % \end{macrocode} % \begin{macrocode} \providecommand{\Epsilon}{\text{E}} % \end{macrocode} % \begin{macrocode} \providecommand{\Zeta}{\text{Z}} % \end{macrocode} % \begin{macrocode} \providecommand{\Eta}{\text{H}} % \end{macrocode} % \begin{macrocode} \providecommand{\Iota}{\text{I}} % \end{macrocode} % \begin{macrocode} \providecommand{\Kappa}{\text{K}} % \end{macrocode} % \begin{macrocode} \providecommand{\Mu}{\text{M}} % \end{macrocode} % \begin{macrocode} \providecommand{\Nu}{\text{N}} % \end{macrocode} % \begin{macrocode} \providecommand{\Omicron}{\text{O}} % \end{macrocode} % \begin{macrocode} \providecommand{\Rho}{\text{P}} % \end{macrocode} % \begin{macrocode} \providecommand{\Tau}{\text{T}} % \end{macrocode} % \begin{macrocode} \providecommand{\Chi}{\text{X}} % \end{macrocode} % \begin{macrocode} \providecommand{\omicron}{o} % \end{macrocode} % \begin{macrocode} \providecommand{\upomicron}{\textup{o}} % \end{macrocode} % \DescribeMacro{\engrec} Le code est copié sur celui de \cs{alph} % dans \texttt{latex.ltx}. % \begin{macrocode} \def\engrec#1{\expandafter\@grec\csname c@#1\endcsname} % \end{macrocode} % \DescribeMacro{\@grec} Le code est copié sur celui de |\@alph| dans % \texttt{latex.ltx} avec les interventions des options. % \begin{macrocode} \if@upgreek \def\@grec#1{% \ifcase#1\or $\upalpha$\or $\upbeta$\or $\upgamma$\or $\updelta$\or \if@varepsilon $\upvarepsilon$\else $\upepsilon$\fi \or $\upzeta$\or $\upeta$\or \if@vartheta $\upvartheta$\else $\uptheta$\fi \or $\upiota$\or $\upkappa$\or $\uplambda$\or $\upmu$\or $\upnu$\or $\upxi$\or $\upomicron$\or \if@varpi $\upvarpi$\else $\uppi$\fi \or \if@varrho $\upvarrho$\else $\uprho$\fi \or \if@varsigma $\upvarsigma$\else $\upsigma$\fi \or $\uptau$\or $\upupsilon$\or \if@varphi $\upvarphi$\else $\upphi$\fi \or $\upchi$\or $\uppsi$\or $\upomega$\else\@ctrerr\fi} \else \def\@grec#1{% \ifcase#1\or $\alpha$\or $\beta$\or $\gamma$\or $\delta$\or \if@varepsilon $\varepsilon$\else $\epsilon$\fi \or $\zeta$\or $\eta$\or \if@vartheta $\vartheta$\else $\theta$\fi \or $\iota$\or $\kappa$\or $\lambda$\or $\mu$\or $\nu$\or $\xi$\or \if@upomicron $\upomicron$\else $\omicron$\fi\or \if@varpi $\varpi$\else $\pi$\fi \or \if@varrho $\varrho$\else $\rho$\fi \or \if@varsigma $\varsigma$\else $\sigma$\fi \or $\tau$\or $\upsilon$\or \if@varphi $\varphi$\else $\phi$\fi \or $\chi$\or $\psi$\or $\omega$\else\@ctrerr\fi} \fi % \end{macrocode} % \DescribeMacro{\EnGrec} Le code est encore copié sur celui de % \cs{alph} dans \texttt{latex.ltx}. % \begin{macrocode} \def\EnGrec#1{\expandafter\@Grec\csname c@#1\endcsname} % \end{macrocode} % \DescribeMacro{\@Grec} C'est encore pareil. Ici, pas de variante % pour les majuscules. % \begin{macrocode} \def\@Grec#1{% \ifcase#1\or $\Alpha$\or $\Beta$\or $\Gamma$\or $\Delta$\or $\Epsilon$\or $\Zeta$\or $\Eta$\or $\Theta$\or $\Iota$\or $\Kappa$\or $\Lambda$\or $\Mu$\or $\Nu$\or $\Xi$\or $\Omicron$\or $\Pi$\or $\Rho$\or $\Sigma$\or $\Tau$\or $\Upsilon$\or $\Phi$\or $\Chi$\or $\Psi$\or $\Omega$\else\@ctrerr\fi} % \end{macrocode} % \iffalse % % \fi % \Finale \PrintChanges\PrintIndex \endinput %%% Local Variables: %%% mode: latex %%% TeX-master: t %%% End: % \ifthenelse{\equal\string{#2}\string{}}{\let\EngTitre = % \TitreMorciau{#1}}{%