% \iffalse meta-comment %-*- coding: iso-8859-15 -*- % Time-stamp: <2010-03-21 14:57:16 yvon> % -------------------------------------------------------------------- % % Copyright (C) 2004, 2008, 2010 by Yvon Henel % dit « 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. % \fi % % \iffalse %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\def\fileversion{v3} %\def\filedate{2010/03/21} %\def\fileinfo{fichier paresse.dtx par le TeXnicien de surface} %\ProvidesPackage{paresse} % [\filedate\space\fileversion\space\fileinfo] % %<*driver> \documentclass[a4paper]{ltxdoc} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage[tame]{paresse} \usepackage{xspace,url,array, ifthen} \IfFileExists{lmodern.sty}{\usepackage{lmodern}}{} \usepackage[english,frenchb]{babel} \usepackage[colorlinks=true, linkcolor=blue, urlcolor=blue, citecolor=blue]{hyperref} % commentez la ligne suivante pour avoir un document avec le code % \OnlyDescription % puis cherchez \StopEventually pour d'éventuels réglages \EnableCrossrefs \CodelineIndex \RecordChanges \makeatletter %%% \makeatletter \GlossaryPrologue{% \section*{{Changements}} \markboth{{Changements}}{{Changements}}} \IndexPrologue{% \section*{Index}\markboth{Index}{Index}% 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.} \def\generalname{Général} \newcommand\DescribeOption[1]{\@bsphack \marginpar{\raggedleft \textsc{#1}}\index{#1 (option)}\@esphack} \def\SpecialMainEnvIndex#1{% \@bsphack\special@index{% #1\actualchar {\string\ttfamily\space#1} (environnement)% \encapchar main}% \special@index{environnements:\levelchar#1\actualchar{% \string\ttfamily\space#1}\encapchar main}\@esphack} \makeatother %%% \newcommand{\TO}{\textemdash\ \ignorespaces} \newcommand{\TF}{\unskip\ \textemdash\xspace} \newcommand{\CAD}{c.-à-d.\xspace} \newcommand\BOP{\discretionary{}{}{}} \newcommand\Option[1]{\textsc{#1}} \newcommand\MODULE[1]{\textsf{#1}} \newcommand\NOUVO{% \marginpar{\hspace*{\stretch{1}}% \textbf{N (v3)}\hspace*{.5em}}\xspace} \begin{document} \DocInput{paresse.dtx} \end{document} % % \fi % % \CheckSum{332} % % \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 \~} % % % \changes{v0.0}{2004/02/07}{Nouveau nom, quelques redéfinitions, % première version publique.} % \changes{v1}{2004/04/17}{Mise à jour de la documentation.} % \changes{v1a}{2005/03/01}{Correction d'une erreur dans Infofile qui % empéchait le chargement du module.} % \changes{v2}{2008/08/13}{Suppression d'une macro inutile.} % \changes{v2}{2008/08/13}{Réorganisation de la documentation.} % \changes{v2}{2008/08/13}{Réemballage pour fournir un tds.zip.} % \changes{v2.1}{2008/08/16}{Correction d'une erreur dans Infofile qui % empéchait le chargement du module. Une fois encore!} % \changes{v3}{2010/03/19}{Option pour codage de Sylvio \textsc{Levi}.} % % \GetFileInfo{paresse.sty} % % \DoNotIndex{\newcommand,\newenvironment,\i,\ae,\oe,\DeclareOption,% % \ifthenelse,\if,\else,\fi,\tr@@c,\ExecuteOptions,\ProcessOptions,% % \relax,\MessageBreak,\CurrentOption,\RequirePackage,\PackageError,% % \def,\endinput,\let,\boolean,\newboolean,\setboolean,\renewcommand,% % \afterassignment,\global,\aftergroup,\bgroup,\egroup,\csname,% % \endcsname,\emph,\catcode,\space,\string,\next,\active,\rmfamily,\rule,% % \textsl,\upshape, \alpha, \beta, \gamma, \delta, \epsilon, % % \varepsilon, \zeta, \eta, \theta, \vartheta, \iota, \kappa, % % \lambda, \mu, \nu, \xi, \pi, \varpi, \rho, \varrho, \sigma, % % \varsigma, \tau, \upsilon, \phi, \varphi, \chi, \psi, \omega, % % \Delta, \Gamma, \Theta, \Lambda, \Xi, \Pi, \Sigma, \Upsilon, % % \Phi, \Psi, \Omega, \newif, \ifnum, \count@, \ensuremath} % % % \title{Le module \MODULE{paresse}\thanks{Ce document correspond au % fichier \MODULE{paresse.sty}~\fileversion, du \filedate, édition du % cinquantenaire.}} % \author{Le \TeX nicien de surface\\ % \url{le.texnicien.de.surface@wanadoo.fr}} % % \maketitle % \begin{abstract} % Ce module, reprenant un exemple de T.~\textsc{Lachand-Robert} % dans~\cite{tlachand}, fournit un moyen de taper des lettres % grecques isolées à l'aide du caractère actif et % redéfini. Au lieu de |\(\alpha\)| ou tape |§a| pour obtenir % \(\alpha\). % % \textbf{Important} : Il doit être chargé \textbf{après} % \MODULE{inputenc} si ce dernier est utilisé. De plus, il faut que % le signe § soit une lettre pour \TeX. % % La documentation française pour l'utilisateur de l'extension % \MODULE{paresse} est désormais disponible sous le nom de % \texttt{paresse-fr}. % \end{abstract} % \begin{otherlanguage}{english} % \begin{abstract} % This package implements an example from % T.~\textsc{Lachand-Robert} in~\cite{tlachand}. It provides a % means of typing isolated greek letters with the character § % activated and redefined. Instead of |\(\alpha\)| one types |§a| % to obtain \(\alpha\). % % \textbf{Important}: You have to load it \textbf{after} the % \MODULE{inputenc} package if the latter is used. Moreover the % sign § must be a letter for \TeX. % % The English documentation for the final user of the package % \MODULE{paresse} is available in the file \texttt{paresse-en}. % % The code documentation is in French only. Sorry. But nonetheless, % in case you really want it, look at the \texttt{.dtx} file and % find \cs{OnlyDescription} as usual. % \end{abstract} % \end{otherlanguage} % % \tableofcontents{} % % \StopEventually{ % \begin{thebibliography}{99} % \addcontentsline{toc}{section}{Bibliographie} % \bibitem{tlachand} T.~\textsc{Lachand-Robert}. % \emph{La maîtrise de \TeX{} et \LaTeX{}}. % Masson, Paris, Milan, Barcelone, \oldstylenums{1995}.\\ % \textsc{isbn} : \texttt{2-225-84832-7}. % \end{thebibliography} % \PrintChanges \PrintIndex} % \iffalse %<*package> % \fi % \section{Le code} % Le code est fourni presque sans commentaire. J'espère qu'il est % assez clair. Cela dit, il ressemble beaucoup à celui de % l'extension |engpron| du même \emph{auteur}. % % Ici j'utilise |\def| à outrance pour récupérer les % redéfinitions des macros faites par des extensions comme % |fourier|\footnote{Mes remerciements à Michel \textsc{Bovani} % pour ses conseils sur \url{fr.comp.text.tex}.}. % % On dit bonjour. On définit quelques variables booléennes et on % fixe leur valeur par défaut. On traite les options et on crie % si l'une d'elles n'est pas connue. % \begin{macrocode} \newif\ifGA@optiontame \newif\ifGA@optiontau \newif\ifGA@optionvareps \newif\ifGA@optionvartheta \newif\ifGA@optionvarrho \newif\ifGA@optionvarsigma \newif\ifGA@optionvarphi \newif\ifGA@optionvarpi % \end{macrocode} % \changes{v3}{2010/03/19}{pour l'option Levi} % \begin{macrocode} \newif\ifGA@optionlegacy % \end{macrocode} % % Déclarations des options. Suivant l'option on fixe la valeur des % booléens avec les \cs{@option...true/false}. % \begin{macrocode} \DeclareOption{tame}{\GA@optiontametrue} \DeclareOption{wild}{\GA@optiontamefalse} \DeclareOption{ttau}{\GA@optiontautrue} \DeclareOption{ttheta}{\GA@optiontaufalse} \DeclareOption{varepsilon}{\GA@optionvarepstrue} \DeclareOption{epsilon}{\GA@optionvarepsfalse} \DeclareOption{vartheta}{\GA@optionvarthetatrue} \DeclareOption{theta}{\GA@optionvarthetafalse} \DeclareOption{varrho}{\GA@optionvarrhotrue} \DeclareOption{rho}{\GA@optionvarrhofalse} \DeclareOption{varpi}{\GA@optionvarpitrue} \DeclareOption{pi}{\GA@optionvarpifalse} \DeclareOption{varsigma}{\GA@optionvarsigmatrue} \DeclareOption{sigma}{\GA@optionvarsigmafalse} \DeclareOption{varphi}{\GA@optionvarphitrue} \DeclareOption{phi}{\GA@optionvarphifalse} % \end{macrocode} % \changes{v3}{2010/03/20}{ajout des options |legacy| et |Levi|} % \begin{macrocode} \DeclareOption{legacy}{\GA@optionlegacytrue} \DeclareOption{Levi}{\GA@optionlegacyfalse} % \end{macrocode} % % On traite le cas des options inconnues avec un message d'erreur. % \begin{macrocode} \DeclareOption*{\PackageError{paresse} {The option \CurrentOption\space is not known!\MessageBreak The default options are:\MessageBreak legacy, varepsilon, theta, pi, rho, sigma, and varphi.}% {Choose between `wild' (for an active Paresse in all the document) \MessageBreak and `tame' (so that § prints the paragraph symbol). \MessageBreak See the documentation for other options.}} % \end{macrocode} % % On active les options par défaut: |legacy|, |wild|, |varepsilon|, % |theta|, |pi|, |rho|, |sigma| et |varphi|. % \changes{v3}{2010/03/20}{Ajout de l'option |legacy| par défaut} % \begin{macrocode} \ExecuteOptions{legacy,wild,varepsilon,theta,pi,rho,sigma,varphi} \ProcessOptions\relax % \end{macrocode} % % On sauvegarde le catcode et la définition courante du caractère §. % \begin{macrocode} \count@=\catcode`\§ \let\GA@LaVieilleParesse= § % \end{macrocode} % On définit une macro pour pouvoir obtenir le caractère lui-même. Ça % peut servir, parfois\dots % \begin{macrocode} \def\§{\S} % \end{macrocode} % % On définit une série de macros plus ou moins \og cachées \fg. % On doit recourir à des acrobaties pour obtenir ce que l'on veut % et pour éviter que \TeX\ ne hurle des méchancetés du genre % |\inaccessible|. % \begin{macrocode} \newcommand{\makeparesseletter}{\catcode `\§=11\relax} \newcommand{\makeparesseother}{\catcode `\§=12\relax} \newcommand{\GA@MakeParesseActive}{\catcode `\§=\active} \def\GA@ActiveLaParessexii{\catcode `\§=\active} \def\GA@ActiveLaParessexiii{\catcode `\§=\active \def§##1{\ensuremath{\csname \string§##1\endcsname}}} \ifnum\count@=12 \let\GA@ActiveLaParesse \GA@ActiveLaParessexii \else \let\GA@ActiveLaParesse \GA@ActiveLaParessexiii \fi % \end{macrocode} % La macro utile puis l'environnement itou. Ils font tous les % deux appels à la macro \emph{cachée} qui suit. % \begin{macro}{\ActiveLaParesse} % Ce n'est qu'un alias pour \cs{GA@ActiveLaParesse}. % \begin{macrocode} \newcommand{\ActiveLaParesse}{\GA@ActiveLaParesse} % \end{macrocode} % \end{macro} % % \begin{environment}{ParesseActive} % Environnement minimaliste qui se contente d'appeler % \cs{GA@ActiveLaParesse} en bornant son effet par le groupe créé par % l'environnement. % \begin{macrocode} \newenvironment{ParesseActive}{\GA@ActiveLaParesse}{} % \end{macrocode} % \end{environment} % % Une série de macros pour les lettres à variantes. % \begin{macrocode} \ifGA@optionvareps\def\GA@epsilon{\varepsilon}\else\def\GA@epsilon{\epsilon}\fi \ifGA@optionvartheta\def\GA@theta{\vartheta}\else\def\GA@theta{\theta}\fi \ifGA@optionvarpi\def\GA@pi{\varpi}\else\def\GA@pi{\pi}\fi \ifGA@optionvarrho\def\GA@rho{\varrho}\else\def\GA@rho{\rho}\fi \ifGA@optionvarsigma\def\GA@sigma{\varsigma}\else\def\GA@sigma{\sigma}\fi \ifGA@optionvarphi\def\GA@phi{\varphi}\else\def\GA@phi{\phi}\fi % \end{macrocode} % On fait de § une lettre et on définit les macros à coup de % |\def\§...|. Avant de passer aux majuscules, on s'occupe de la % lettre t (option |ttau| et |ttheta|). % \begin{macrocode} \makeparesseletter % \end{macrocode} % % Définitions des macros communes aux options |legacy| et |Levi|: % \begin{macrocode} \def\§a {\alpha} \def\§b {\beta} \def\§g {\gamma} \def\§d {\delta} \def\§e {\GA@epsilon} \def\§z {\zeta} \def\§h {\eta} \def\§i {\iota} \def\§k {\kappa} \def\§l {\lambda} \def\§m {\mu} \def\§n {\nu} \def\§x {\xi} \def\§p {\GA@pi} \def\§r {\GA@rho} \def\§s {\GA@sigma} \def\§u {\upsilon} \def\§f {\GA@phi} \def\§w {\omega} % \end{macrocode} % Traitements pour l'option |legacy|: % \begin{macrocode} \ifGA@optionlegacy \def\§v {\GA@theta} \def\§y {\tau} \def\§c {\chi} \def\§q {\psi} % \end{macrocode} % % \begin{macrocode} \ifGA@optiontau \def\§t {\tau}\else \def\§t {\GA@theta}\fi % \end{macrocode} % traitements pour l'option |Levi|: % \begin{macrocode} \else \def\§j {\GA@theta} \def\§t {\tau} \def\§q {\chi} \def\§y {\psi} \def\§c {\varsigma} \fi % \end{macrocode} % Idem pour majuscules: % \begin{macrocode} \def\§G {\Gamma} \def\§D {\Delta} \def\§L {\Lambda} \def\§P {\Pi} \def\§S {\Sigma} \def\§U {\Upsilon} \def\§F {\Phi} \def\§X {\Xi} \def\§W {\Omega} % \end{macrocode} % % \begin{macrocode} \ifGA@optionlegacy \def\§V {\Theta} \def\§T {\Theta} \def\§Q {\Psi} \else \def\§J {\Theta} \def\§Y {\Psi} \fi % \end{macrocode} % On rend actif le caractère § et on définit les macros à % noms commençant par §. % \begin{macrocode} \catcode `\§=\active \def§#1{\ensuremath{\csname \string§#1\endcsname}} % \end{macrocode} % Si l'option |tame| est en vigueur, on remet § dans son état % initial et on sort. % \begin{macrocode} \ifGA@optiontame \catcode`\§=\count@ \ifnum\count@=13 \let §=\GA@LaVieilleParesse \fi \fi % \end{macrocode} % \iffalse % % \fi % \Finale % \iffalse %<*doc> \documentclass[a4paper]{ltxdoc} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage[tame]{paresse} \usepackage{xspace,url,array,ifthen} \IfFileExists{lmodern.sty}{\usepackage{lmodern}}{} %\usepackage[english,frenchb]{babel} %\usepackage[frenchb,english]{babel} \usepackage[colorlinks=true, linkcolor=blue, urlcolor=blue, citecolor=blue]{hyperref} \makeatletter \newcommand\DescribeOption[1]{\@bsphack \marginpar{\raggedleft \textsc{#1}}\index{#1 (option)}\@esphack} %<*fr> \GlossaryPrologue{% \section*{{Changements}} \markboth{{Changements}}{{Changements}}} \IndexPrologue{% \section*{Index}\markboth{Index}{Index}% 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.} \def\generalname{Général} \def\SpecialMainEnvIndex#1{% \@bsphack\special@index{% #1\actualchar {\string\ttfamily\space#1} (environnement)% \encapchar main}% \special@index{environnements:\levelchar#1\actualchar{% \string\ttfamily\space#1}\encapchar main}\@esphack} \makeatother \newcommand{\TO}{\textemdash\ \ignorespaces} \newcommand{\TF}{\unskip\ \textemdash\xspace} \newcommand{\CAD}{c.-à-d.\xspace} % \newcommand\BOP{\discretionary{}{}{}} \newcommand\Option[1]{\textsc{#1}} \newcommand\MODULE[1]{\textsf{#1}} \newcommand\NOUVO{% \marginpar{\hspace*{\stretch{1}}% \textbf{N (v3)}\hspace*{.5em}}\xspace} \begin{document} \GetFileInfo{paresse.sty} % marche pô! :( %<*fr> \title{Le module \MODULE{paresse}\thanks{Ce document correspond au fichier \MODULE{\filename}~\fileversion, du \filedate.}} % %<*en> \title{The package \MODULE{paresse}\thanks{This document corresponds to the file \MODULE{\filename}~\fileversion, dated \filedate.} \mbox{}\thanks{English translation by the author. Any comment about the translation is welcome.}} % \author{Le \TeX nicien de surface\\ \url{le.texnicien.de.surface@wanadoo.fr}} \maketitle{} %<*fr> \begin{abstract} Ce module, reprenant un exemple de T.~\textsc{Lachand-Robert} dans~\cite{tlachand}, fournit un moyen de taper des lettres grecques isolées à l'aide du caractère actif et redéfini. Au lieu de |\(\alpha\)| ou tape |§a| pour obtenir \(\alpha\). \textbf{Important} : Il doit être chargé \textbf{après} \MODULE{inputenc} si ce dernier est utilisé. De plus, il faut que le signe § soit une lettre pour \TeX. Le fichier \texttt{paresse.pdf} contient le code commenté en français. \end{abstract} \begin{otherlanguage}{english} \begin{abstract} This is the French documentation for the final user of the package \MODULE{paresse}. The English documentation for the final user is available in the file \texttt{paresse-en.pdf}. The code is not commented in English any more. Sorry. See the French documentation for French commented code in \texttt{paresse.pdf}. \end{abstract} \end{otherlanguage} % %<*en> \begin{abstract} This package implements an example from T.~\textsc{Lachand-Robert} in~\cite{tlachand}. It provides a means of typing isolated greek letters with the character § activated and redefined. Instead of |\(\alpha\)| one types |§a| to obtain \(\alpha\). The code is not commented in English any more. Sorry. See the French documentation for French commented code in \texttt{paresse.pdf}. \end{abstract} \begin{otherlanguage}{french} \begin{abstract} La documentation française pour l'utilisateur de l'extension \MODULE{paresse} est désormais disponible sous le nom de \texttt{paresse-fr.pdf}. Le fichier \texttt{paresse.pdf} contient le code commenté en français. \end{abstract} \end{otherlanguage} % \tableofcontents{} \newpage %\section{Introduction} %\section{Introduction} %<*fr> Cette extension ne fournit qu'un accès \og rapide et économique \fg aux lettres grecques qui s'obtiennent à l'aide d'une macro comme \cs{alpha} ou \cs{Omega}. Elle fournit un environnement et une commande qui permettent d'utiliser § pour taper ces lettres. Un \cs{ensuremath} nous dispense de nous placer explicitement \TO c'est-à-dire en tapant |$ $| ou bien |\( \)| ou encore |\[ \]| ou tout autre chose ayant le même effet\TF en mode mathématique pour obtenir une lettre grecque. % %<*en> This package provides only a `quick and low-cost' access to greek letters which one can obtain with a macro such as \cs{alpha} or \cs{Omega}. It provides also an environment and a macro which make possible the use of § to type in those letters. Because of an \cs{ensuremath} we are not bound to explicitly enter ---i.e. by typing |$ $| or |\( \)| or else |\[ \]| or anything whatsoever with the same effect--- mathematics mode to obtain a greek letter. % %<*fr> L'idée de la méthode est due à T.~\textsc{Lachand-Robert} et est exposée dans~\cite{tlachand}. Je n'ai fait qu'ajouter le \cs{ensuremath} bien agréable pour l'écriture de macros. % %<*en> The idea of the method is from T.~\textsc{Lachand-Robert} and described in~\cite{tlachand}. I have just add the \cs{ensuremath} which is so agreeable to write macros. % %<*fr> Bien entendu, on \textbf{ne} dispose \textbf{pas} de macros pour la minuscule omicron ni pour les majuscules alpha, beta\dots{} qui s'obtiennent à l'aide des latines romaines de même apparence\footnote{Je ne ferai aucune remarque sur les problèmes de codage que cela pose.}. Je ne me suis pas senti le courage ni la force de fournir une solution qui permettent d'obtenir dans une formule baignant dans un texte en italique gras un alpha majuscule droit, romain, \&c. % %<*en> There is \emph{no} macros for the lowercase omicron nor for the uppercase alpha, beta\dots{} that one can obtain with the latin roman letters with the same look. I have not had the courage nor the strength to build a solution which would provide a means of obtaining an upright uppercase alpha in a math formula enbedded in an italic boldfaced text. % %<*fr> Pour finir cette introduction, glosons le nom de cette extension. |paresse| vient de ce que le signe § indique un \og paragraphe \fg en ayant une forme lointainement apparentée au S et n'a donc aucun lien avec le \emph{défaut} si fréquent, encore que, à bien y réfléchir\dots % %<*en> Even if the meaning of the French `paresse' is just `lazyness' I would like to enphasize that the name of this package comes from the fact that the sign § can be used to point at a paragraph and looks like an S. So there is no connection between the name and the not unfrequent sin of the same (French) name\dots{} or maybe\dots{} % %\section{Pourquoi une 3\ieme version?} %\section{Why a 3rd Version?} %<*fr> C'est par un courriel du 3~mars 2003 que Claudio \textsc{Beccari} me signalait très aimablement qu'il existait un codage de l'alphabet grec en lettres latines près de 15~ans avant que je ne commette cette extension. Ce codage était dû à Sylvio \textsc{Levi} qui l'avait mis au point, alors qu'il dessinait les premières fontes grecques pour \TeX, en s'appuyant sur la correspondance entre les claviers américain et grec. Il me faisait remarquer à juste titre que si quelqu'un avait pris l'habitude du codage de Sylvio \textsc{Levi}, il préférerait conserver ses habitudes pour \MODULE{paresse}. % %<*en> With a mail dated march, 3, 2003, Claudio \textsc{Beccari} kindly informed me that there was an encoding of the greek alphabet with latin letters some 15~years before I commited this extension. This encoding was devised by Sylvio \textsc{Levi} who, at the time, was designing the first greek font for \TeX, using the correspondance between greek and us keyboard. Claudio wrote to me, and I can't but agree with him, that if one is used to \textsc{Levi}'s encoding, one would rather keep one's habit in order to use \MODULE{paresse}. % %<*fr> J'ai donc décidé de fournir un nouveau couple d'options exclusives l'une de l'autre que j'ai nommées, pour l'une, \Option{legacy} --- pour \og héritage\fg --- qui assure le codage originel de cette extension et qui est active par défaut et, pour l'autre, \Option{Levi} qui assure le codage de Sylvio \textsc{Levi}. % %<*en> I, then, decided to provide a new couple of mutually exclusive options: the first one is \Option{legacy} with which one obtain the original encoding of this extension and which is active by default, the other one is \Option{Levi} which provides Sylvio \textsc{Levi}'s encoding. % %<*fr> J'en profite pour faire quelques changements cosmétiques: désormais toutes les macros internes \emph{secrètes} ont un nom qui commence par \cs{GA@}; le fichier |.dtx| est réorganisé pour faciliter la tache de traduction de la documentation. % %<*en> I take advantage of this update to make some cosmetic changes: from now on all inner \emph{secret} macros have a name which begins with \cs{GA@}; the |.dtx| file is reorganised to facilitate the translation of the documentation. % %\section{Utilisation} %\section{Usage} %<*fr> On charge cette extension avec |\usepackage{paresse}| \textbf{après} l'extension |inputenc|. Il faut que la \og caractère \fg § soit reconnu par \TeX\ comme une lettre. On pourra, par exemple, utiliser l'option |latin1| de |inputenc| pour obtenir cela. % %<*en> One loads the package with |\usepackage{paresse}| \textbf{after} the package |inputenc|. The sign § must be recognised as a letter by \TeX. On can use for instance |inputenc| with option |latin1| for such a purpose. % %<*fr> Par défaut, l'extension est chargée avec l'option |wild| ce qui signifie que les macros de la forme |§a| sont disponibles. Si l'on préfère, on peut passer à |paresse| l'option \Option{tame} avec |\usepackage[tame]{paresse}|. Il faut alors utiliser la commande \cs{ActiveLaParesse} ou l'environnement |ParesseActive| pour utiliser les macros en §. % %<*en> By default the package is loaded with option |wild| and so the macros such as |§a| are immediately available. If one prefers one can choose the option \Option{tame} by writing |\usepackage[tame]{paresse}|. One must then use the command \cs{ActiveLaParesse} or the environment |ParesseActive| to use the `§-macros'. % %<*fr> Lorsque la \og paresse est active \fg, il suffit de taper |§a| pour obtenir \(\alpha\). On a de même accès à toutes les lettres grecques auxquelles sont consacrées une macro comme \cs{alpha}, voyez~\ref{codageorig} et~\ref{codagelevi}. On obtient, de même, \(\alpha^{\beta}\) avec |\(§a^{§b}\)| lorsque § est active. On notera que, si l'extension |amsmath| est utilisée, les accolades sont optionelles et qu'on obtient un résultat identique avec |\(§a^§b\)|. % %<*en> When `paresse' is active, one has just to type |§a| in to obtain \(\alpha\). One has access, by the same means, to all the other greek letters to which a macro is devoted such as \cs{alpha}, see the tables~\ref{codageorig} and~\ref{codagelevi}. One obtains \(\alpha^{\beta}\) with |\(§a^{§b}\)| when § is active. One will note that, if the package |amsmath| is loaded, the curly braces are \emph{not} compulsory and that one obtains the same result with just |\(§a^§b\)|. % %\subsection{Les options} %\subsection{Options} \begin{itemize} %<*fr> \item \Option{tame}\DescribeOption{tame / wild} s'oppose à \Option{wild} qui est l'option par défaut. Lorsque \Option{tame} règne, il \textbf{faut} un environnement |ParesseActive| ou une commande \cs{ActiveLaParesse} pour utiliser les macros à §. % %<*en> \item \Option{tame}\DescribeOption{tame / wild} is the contrary of \Option{wild} which is the option by default. When \Option{tame} reigns, one \textbf{must} use an environment |ParesseActive| or a command \cs{ActiveLaParesse} in order to use the §-macros. % %<*fr> \item \Option{Levi}\NOUVO\DescribeOption{legacy / Levi} s'oppose à \Option{legacy} qui est l'option par défaut. Avec l'option \Option{legacy} on utilise le codage \og originel\fg de \MODULE{paresse.sty} tel que le donne la table~\ref{codageorig}. Sinon, le codage est celui défini par Sylvio \textsc{Levi}, cf. la table~\ref{codagelevi}. % %<*en> \item \Option{Levi}\NOUVO\DescribeOption{legacy / Levi} is the contrary of \Option{legacy} which is the default. With \Option{legacy} one uses the original encoding of \MODULE{paresse.sty} as it is given by the table~\ref{codageorig}. If the option \Option{Levi} is enforced, one uses the Sylvio \textsc{Levi} encoding, see the table~\ref{codagelevi}. % %<*fr> \item \Option{ttau}\DescribeOption{ttau / ttheta} s'oppose à \Option{ttheta} qui est l'option par défaut. Lorsque \Option{ttheta} est active |§t| donne \(\theta\) dans le cas contraire |§t| donne \(\tau\). En tous cas, \(\theta\) est accessible par |§v| et \(\tau\) par |§y|. \NOUVO Cette option est inopérante si l'option \Option{Levi} a été choisie. % %<*en> \item \Option{ttau}\DescribeOption{ttau / ttheta} is the contrary of \Option{ttheta} which is selected by default. When \Option{ttheta} is active |§t| gives \(\theta\) in the contrary |§t| gives \(\tau\). In all cases, \(\theta\) is given by |§v| and \(\tau\) by |§y|. \NOUVO That option is ineffective when one has chosen \Option{Levi}. % %<*fr> \textbf{Remarque :} \NOUVO quand l'option \Option{legacy} a été choisie, \(\Theta\) est obtenu par |§V| de manière \og régulière \fg et \emph{également} par |§T| quelle que soit l'option choisie. Dans le cas de l'option \Option{Levi}, |§V| ne correspond à aucune lettre grecque. % %<*en> \textbf{Remark:} \NOUVO when one has chosen the option \Option{legacy}, \(\Theta\) is `regularly' obtained with |§V| and \emph{also} with |§T| whatever is the chosen option. In the case of the option \Option{Levi}, |§V| doesn't correspond to any greek letter. % %<*fr> \item \Option{epsilon}\DescribeOption{epsilon / varepsilon} s'oppose à \Option{varepsilon} qui est l'option par défaut. Avec \Option{epsilon}, |§e| donne \(\epsilon\) sinon |§e| donne \(\varepsilon\). % %<*en> \item \Option{epsilon}\DescribeOption{epsilon / varepsilon} is the contrary of \Option{varepsilon} which is selected by default. With \Option{epsilon}, |§e| gives \(\epsilon\) otherwide |§e| gives \(\varepsilon\). % %<*fr> \item Se comportent comme le couple \Option{epsilon}, \Option{varepsilon} les couples suivants \Option{theta} et \Option{vartheta} ; \Option{pi} et \Option{varpi} ; \Option{rho} et \Option{varrho} ; \Option{sigma} et \Option{varsigma} \og |§s| donne \(\varsigma\)\fg; \Option{phi} et \Option{varphi}. % %<*en> \item The following `couples' behave as \Option{epsilon}, \Option{varepsilon}: \Option{theta} and \Option{vartheta}; \Option{pi} and \Option{varpi}; \Option{rho} and \Option{varrho}; \Option{sigma} and \Option{varsigma}; \Option{phi} and \Option{varphi}. % \end{itemize} %<*fr> Par défaut on a \Option{varepsilon}, \Option{theta}, \Option{pi}, \Option{rho}, \Option{sigma}, \Option{varphi}, \Option{wild} et \Option{legacy}\NOUVO. Cela assure que cette version~3, se comporte, par défaut, comme la précédente. % %<*en> The default options are \Option{varepsilon}, \Option{theta}, \Option{pi}, \Option{rho}, \Option{sigma}, \Option{varphi}, \Option{wild} and \Option{legacy}\NOUVO. That ensures that this 3rd version behaves, by default, as the preceding one. % %\subsection{Commandes et environnement} %\subsection{Commands and Environment} \DescribeMacro{\makeparesseletter} %<*fr> Cette macro donne au \og caractère \fg § le catcode d'une lettre. Après cela, on peut se servir de § dans un nom de macro, par exemple. C'est le pendant de \cs{makeatletter}. % %<*en> This command gives the letter-catcode to the `character' §. After that one can use § in the name of a macro, for instance. It corresponds to the well-known |\makeatletter|. % \DescribeMacro{\makeparesseother} %<*fr> Cette macro donne au caractère § le catcode \emph{other}. C'est le \og contraire \fg de la précédente. Cela équivaut au \cs{makeatother}. % %<*en> This macro gives the catcode \emph{other} to the character §. It is the `contrary' of the preceding one. It corresponds to |\makeatother|. % \DescribeMacro{\ActiveLaParesse} %<*fr> Cette macro active le caractère § et permet ainsi d'accéder aux macros dont le nom commence par § comme |§a|. Pour une liste de ces macros et leurs significations, voyez les tableaux~\ref{codageorig} et~\ref{codagelevi}. % %<*en> This macro makes § active and thus enable one to access the macros the name of which begins with § such as |§a|. A list of these macros and theirs meanings is given in the tables~\ref{codageorig} and~\ref{codagelevi}. % \DescribeEnv{ParesseActive} %<*fr> Dans cet environnement le caractère § est actif ce qui permet d'utiliser les macros en §. On utilisera cet environnement si l'on veut utiliser les macros quand on a chargé l'extension \MODULE{paresse} avec l'option \texttt{tame}. % %<*en> In this environment § is active and one can use the §-macros. One could use this environment if one want to use the §-macros when the package \texttt{paresse.sty} is loaded whith the option \texttt{tame}. % %\subsection{Tableaux des macros} %\subsection{Tables of the Macros} %\subsubsection{Codage originel de \MODULE{paresse.sty}} %\subsubsection{\MODULE{paresse.sty}'s Original Encoding} %<*fr> C'est le codage actif lorsque l'on a choisit l'option \Option{legacy} qui est l'option par défaut. % %<*en> This is the active encoding when one choses the option \Option{legacy} which is the default. % \begin{center}\Large \begin{ParesseActive} \label{codageorig} \begin{tabular}{*4{||>{\ttfamily \§}c|c}||}\hline a & §a & b & §b & g & §g & d & §d\\ \hline e & §e & z & §z & h & §h & v & §v\\ \hline i & §i & k & §k & l & §l & m & §m\\ \hline n & §n & x & §x & p & §p & r & §r\\ \hline s & §s & y & §y & u & §u & f & §f\\ \hline c & §c & q & §q & w & §w &\multicolumn{1}{c|}{}&\\ \hline\hline G & §G & D & §D & V & §V & L & §L\\ \hline X & §X & P & §P & S & §S & U & §U\\ \hline F & §F & Q & §Q & W & §W &\multicolumn{1}{c|}{}&\\ \hline \end{tabular} \end{ParesseActive} \end{center} %<*fr> \paragraph{Remarques : } à l'exception de {\ActiveLaParesse §v, §y et §q} les lettres utilisées dans les noms des macros sont chargées de vertu mnémotechniques \texttt{:-)} et les majuscules grecques s'obtiennent à l'aide de la majuscule correspondante. % %<*en> \paragraph{Remarks : } all the latin letters used in the name of the §-macros, but for {\ActiveLaParesse §v, §y and §q}, are loaded with reminiscences, I hope \texttt{:-)} and the greek uppercases are obtained with the (latin) corresponding uppercases. % %\subsubsection{Codage de Sylvio \textsc{Levi}} %\subsubsection{Sylvio \textsc{Levi}'s Encoding} %<*fr> On active ce codage avec l'option \Option{Levi}. % %<*en> One make this encoding active with the option \Option{Levi}. % \begin{center}\Large\NOUVO \begin{ParesseActive} \label{codagelevi} \begin{tabular}{*4{||>{\ttfamily \§}c|c}||}\hline a & §a & b & §b & g & §g & d & §d\\ \hline e & §e & z & §z & h & §h & j & §v\\ \hline i & §i & k & §k & l & §l & m & §m\\ \hline n & §n & x & §x & p & §p & r & §r\\ \hline s & §s & t & §y & u & §u & f & §f\\ \hline q & §c & y & §q & w & §w & c & \(\varsigma\)\\ \hline\hline G & §G & D & §D & J & §V & L & §L\\ \hline X & §X & P & §P & S & §S & U & §U\\ \hline F & §F & Y & §Q & W & §W &\multicolumn{1}{c|}{}&\\ \hline \end{tabular} \end{ParesseActive} \end{center} %<*fr> Le codage de Sylvio \textsc{Levi} donne accès directement à \cs{varsigma} (\(\varsigma\)) avec |§c| et ne diffère du codage originel que pour les lettres {\ActiveLaParesse §v, §y, §c et §q}. Voici un résumé de ces différences: % %<*en> Sylvio \textsc{Levi}'s encoding gives a direct acces to \cs{varsigma} (\(\varsigma\)) with |§c| and is different from the original encoding just for the letters {\ActiveLaParesse §v, §y, §c et §q}. Here is a summary of theses differences: % \begin{center} \newcommand\CT[1]{\multicolumn{1}{c|}{\texttt{#1}}} \begin{ParesseActive} \begin{tabular}{|l|*{7}{c|}}\hline %lettres grecques %greek letters & §v & §y & §c & §q & §V & §Q & \(\varsigma\)\\\hline %codage originel %original encoding &\CT{\§v/\§t}&\CT{\§y/\§t}&\CT{\§c} &\CT{\§q}&\CT{\§V/\§T}&\CT{\§Q}& --- \\\hline %codage de S. \textsc{Levi} %S. \textsc{Levi}'s encoding &\CT{\§j}&\CT{\§t}&\CT{\§q}&\CT{\§y} &\CT{\§J}&\CT{\§Y} & \CT{\§c}\\\hline \end{tabular} \end{ParesseActive} \end{center} \begin{thebibliography}{99} \addcontentsline{toc}{section}{Bibliographie} \bibitem{tlachand} T.~\textsc{Lachand-Robert}. \emph{La maîtrise de \TeX{} et \LaTeX{}}. Masson, Paris, Milan, Barcelone, \oldstylenums{1995}.\\ \textsc{isbn} : \texttt{2-225-84832-7}. \end{thebibliography} \end{document} % %<*exemple> \documentclass[a4paper,12pt]{article} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage[tame]{paresse} \usepackage{amsmath,xspace,array,fancyvrb} %\usepackage[frenchb]{babel} %\usepackage[english]{babel} %\IfFileExists{lmodern.sty}{\usepackage{lmodern}}{} %\IfFileExists{fourier.sty}{\usepackage[upright]{fourier}}{} \setlength{\parindent}{0pt} \newcommand\BOP{\discretionary{}{}{}} \begin{document} \pagestyle{empty} \begin{center}\large %Exemples d'utilisation de l'extension \texttt{paresse}.\\ %Examples of \texttt{paresse} package usage.\\ le \TeX nicien de surface\\ 2008-08-12 \end{center} %<*fr> Ce fichier charge les extensions \texttt{amsmath} et, %si elle est disponible localement, \texttt{lmodern}. %<*fourier> \texttt{fourier} avec l'option \texttt{upright} si cette extension est présente sur votre installation. \IfFileExists{fourier.sty}{}{% {\Large Désolé l'extension fourier.sty semble absente ! Vous obtiendrez la fonte par défaut de votre site.}} % \textbf{Attention}: l'extension \texttt{paresse} est chargée avec l'option \texttt{tame} pour montrer l'utilisation de la commande \verb!\ActiveLaParesse! et de l'environnement \verb!Pares!\BOP\verb!se!\BOP\verb!Ac!\BOP\verb!tive!. % %<*en> This file loads the \texttt{amsmath} package and, %if it locally exists, the \texttt{lmodern} package. %<*fourier> if it locally exists, the \texttt{fourier} package with option \texttt{upright}. \IfFileExists{fourier.sty}{}{% {\Large Sorry the fourier.sty seems to be missing! You will obtain the default font of your site.}} % \textbf{Caution}: the \texttt{paresse} package is loaded with the option \texttt{tame} to show the usage of macro \verb!\ActiveLaParesse! and environment \verb!ParesseActive!. % \vspace{\baselineskip} %Avec la commande \verb!\ActiveLaParesse! pour activer le caractère §. %With the macro \verb!\ActiveLaParesse! to make the § character active. %<*fr> \begin{Verbatim}[frame=single] {\ActiveLaParesse \(§a^{§b}_{§g}\) et encore \(§D^§a_§d\) } \end{Verbatim} % %<*en> \begin{Verbatim}[frame=single] {\ActiveLaParesse \(§a^{§b}_{§g}\) and also \(§D^§a_§d\) } \end{Verbatim} % %pour obtenir : %to obtain: %{\ActiveLaParesse \(§a^{§b}_{§g}\) et encore \(§D^§a_§d\)} %{\ActiveLaParesse \(§a^{§b}_{§g}\) and also \(§D^§a_§d\)} \vspace{\baselineskip} %Avec l'environnement \verb!ParesseActive!. %With the environment \verb!ParesseActive!. \begin{Verbatim}[frame=single] \begin{ParesseActive}\large \begin{tabular}{*4{||>{\ttfamily \§}c|c}||} \hline a & §a & b & §b & g & §g & d & §d\\ \hline e & §e & z & §z & h & §h & v & §v\\ \hline ... X & §X & P & §P & S & §S & U & §U\\ \hline F & §F & Q & §Q & W & §W &\multicolumn{1}{c|}{}& \\ \hline \end{tabular} \end{ParesseActive} \end{Verbatim} \medskip \begin{center} \begin{ParesseActive}\large \begin{tabular}{*4{||>{\ttfamily \§}c|c}||} \hline a & §a & b & §b & g & §g & d & §d\\ \hline e & §e & z & §z & h & §h & v & §v\\ \hline i & §i & k & §k & l & §l & m & §m\\ \hline n & §n & x & §x & p & §p & r & §r\\ \hline s & §s & y & §y & u & §u & f & §f\\ \hline c & §c & q & §q & w & §w &\multicolumn{1}{c|}{}& \\ \hline\hline G & §G & D & §D & V & §V & L & §L\\ \hline X & §X & P & §P & S & §S & U & §U\\ \hline F & §F & Q & §Q & W & §W &\multicolumn{1}{c|}{}& \\ \hline \end{tabular} \end{ParesseActive} \end{center} \end{document} % % \fi \endinput %%% Local Variables: %%% mode: doctex %%% fill-column: 70 %%% coding: iso-8859-15 %%% TeX-master: t %%% End: