% \iffalse meta-comment %-*- coding: iso-8859-15 -*- % -------------------------------------------------------------------- % % Copyright (C) 2004, 2008 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{v2} %\def\filedate{2008/08/13} %\def\fileinfo{fichier paresse.dtx par Le \TeX nicien 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}} \begin{document} \DocInput{paresse.dtx} \end{document} % % \fi % % \CheckSum{300} % % \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.} % % \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. % \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. % \end{abstract} % \end{otherlanguage} % % \tableofcontents{} % % \section{Introduction} % 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 % |\alpha| ou |\Omega|. Elle fournit un environnement et une commande % qui permettent d'utiliser § pour taper ces lettres. Un |\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. % % 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 % |\ensuremath| bien agréable pour l'écriture de macros. % % 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. % % 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 % % \section{Utilisation} % % 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. % % % 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 |tame| avec % |\usepackage[tame]{paresse}|. Il faut alors utiliser la % commande |\ActiveLaParesse| ou l'environnement |ParesseActive| % pour utiliser les macros en §. % % 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 % |\alpha|, voyez~\pageref{tableau}. 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\)|. % % \subsection{Les options} % % \begin{itemize} % \item |tame| s'oppose à |wild| qui est l'option par % défaut. Lorsque |tame| règne, il \textbf{faut} un environnement % |ParesseActive| ou une commande |\ActiveLaParesse| pour % utiliser les macros à §. % % \item |ttau| s'oppose à |ttheta| qui est l'option par % défaut. Lorsque |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|. % % \textbf{Remarque :} \(\Theta\) est obtenu par |§V| de manière % \og régulière \fg et \emph{également} par |§T| quelle que soit % l'option choisie. % % \item |epsilon| s'oppose à |varepsilon| qui est l'option par % défaut. Avec |epsilon|, |§e| donne \(\epsilon\) sinon |§e| % donne \(\varepsilon\). % % \item Se comportent comme le couple |epsilon|, |varepsilon| les % couples suivants |theta| et |vartheta| ; |pi| et |varpi| ; |rho| % et |varrho| ; |sigma| et |varsigma| ; |phi| et |varphi|. % \end{itemize} % % Par défaut on a |varepsilon|, |theta|, |pi|, |rho|, |sigma|, % |varphi| et |wild|. % % \subsection{Commandes et environnement} % \DescribeMacro{\makeparesseletter} % 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 |\makeatletter|. % % \DescribeMacro{\makeparesseother} % Cette macro donne au caractère § le catcode % \emph{other}. C'est le \og contraire \fg de la % précédente. Cela équivaut au |\makeatother|. % % \DescribeMacro{\ActiveLaParesse} % 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 le % tableau~\pageref{tableau}. % % \DescribeEnv{ParesseActive} % 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}. % % % \subsection{Tableau des macros} % % \begin{center}\Large % \begin{ParesseActive} \label{tableau} % \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} % % \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. % % \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 %<*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 % \iffalse %<*en-doc> \documentclass[a4paper]{ltxdoc} \usepackage[latin1]{inputenc} \usepackage[T1]{fontenc} \usepackage[tame]{paresse} \usepackage{xspace,url,array,ifthen} \IfFileExists{lmodern.sty}{\usepackage{lmodern}}{} \usepackage[frenchb,english]{babel} \usepackage[colorlinks=true, linkcolor=blue, urlcolor=blue, citecolor=blue]{hyperref} \newcommand\MODULE[1]{\textsf{#1}} \begin{document} \GetFileInfo{paresse.sty} \title{The package \MODULE{paresse}\thanks{This document corresponds to the file \MODULE{paresse.sty}~\fileversion, dated \filedate, 50th anniversary edition.} \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 \begin{otherlanguage}{french} \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 \textbf{documentation française} de cette extension est \texttt{paresse-fr.pdf}. Elle contient le code commenté. \end{abstract} \end{otherlanguage} \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 code is not commented in English any more, see the French documentation for French commented code. Sorry. \end{abstract} \tableofcontents{} \newpage \section{Introduction} This is the English version of the documentation of the \MODULE{paresse} package. This package provides only a `quick and low-cost' access to greek letters which one can obtain with a macro such as |\alpha| or |\Omega|. It provides also an environment and a macro which make possible the use of § to type in those letters. Because of an |\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. The idea of the method is from T.~\textsc{Lachand-Robert} and described in~\cite{tlachand}. I have just add the |\ensuremath| which is so agreeable to write macros. 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. 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{Usage} 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. 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 |tame| by writing |\usepackage[tame]{paresse}|. One must then use the command |\ActiveLaParesse| or the environment |ParesseActive| to use the `§-macros'. 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 |\alpha|, see the table page~\pageref{tableau}. 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{Options} \begin{itemize} \item |tame| is the contrary of |wild| which is the option by default. When |tame| reigns, one \textbf{must} use an environment |ParesseActive| or a command |\ActiveLaParesse| in order to use the §-macros. \item |ttau| is the contrary of |ttheta| which is selected by default. When |ttheta| is active |§t| gives \(\theta\) in the contrary |§t| gives \(\tau\). In all cases, \(\theta\) is given by |§v| and \(\tau\) by |§y|. \textbf{Remark:} \(\Theta\) is `regularly' obtained with |§V| and \emph{also} with |§T| whatever is the chosen option. \item |epsilon| is the contrary of |varepsilon| which is selected by default. With |epsilon|, |§e| gives \(\epsilon\) otherwide |§e| gives \(\varepsilon\). \item The following `couples' behave as |epsilon|, |varepsilon|: |theta| and |vartheta|; |pi| and |varpi|; |rho| and |varrho|; |sigma| and |varsigma|; |phi| and |varphi|. \end{itemize} The default options are |varepsilon|, |theta|, |pi|, |rho|, |sigma|, |varphi| and |wild|. \subsection{Commands and environment} \DescribeMacro{\makeparesseletter} 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} This macro gives the catcode \emph{other} to the character §. It is the `contrary' of the preceding one. It corresponds to |\makeatother|. \DescribeMacro{\ActiveLaParesse} 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 table~\pageref{tableau}. \DescribeEnv{ParesseActive} 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{Table of the §-macros} \begin{center}\Large \begin{ParesseActive} \label{tableau} \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} \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. \begin{thebibliography}{99} \addcontentsline{toc}{section}{Bibliography} \selectlanguage{french} \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} % % \fi % \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\if@optiontame \newif\if@optiontau \newif\if@optionvareps \newif\if@optionvartheta \newif\if@optionvarrho \newif\if@optionvarsigma \newif\if@optionvarphi \newif\if@optionvarpi % \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}{\@optiontametrue} \DeclareOption{wild}{\@optiontamefalse} \DeclareOption{ttau}{\@optiontautrue} \DeclareOption{ttheta}{\@optiontaufalse} \DeclareOption{varepsilon}{\@optionvarepstrue} \DeclareOption{epsilon}{\@optionvarepsfalse} \DeclareOption{vartheta}{\@optionvarthetatrue} \DeclareOption{theta}{\@optionvarthetafalse} \DeclareOption{varrho}{\@optionvarrhotrue} \DeclareOption{rho}{\@optionvarrhofalse} \DeclareOption{varpi}{\@optionvarpitrue} \DeclareOption{pi}{\@optionvarpifalse} \DeclareOption{varsigma}{\@optionvarsigmatrue} \DeclareOption{sigma}{\@optionvarsigmafalse} \DeclareOption{varphi}{\@optionvarphitrue} \DeclareOption{phi}{\@optionvarphifalse} % \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 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: |wild|, |varepsilon|, |theta|, % |pi|, |rho|, |sigma| et |varphi|. % \begin{macrocode} \ExecuteOptions{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} \if@optionvareps \def\@epsilon {\varepsilon} \else \def\@epsilon {\epsilon} \fi \if@optionvartheta \def\@theta {\vartheta} \else \def\@theta {\theta} \fi \if@optionvarpi \def\@pi {\varpi} \else \def\@pi {\pi} \fi \if@optionvarrho \def\@rho {\varrho} \else \def\@rho {\rho} \fi \if@optionvarsigma \def\@sigma {\varsigma} \else \def\@sigma {\sigma} \fi \if@optionvarphi \def\@phi {\varphi} \else \def\@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} % % \begin{macrocode} \def\§a {\alpha} \def\§b {\beta} \def\§g {\gamma} \def\§d {\delta} \def\§e {\@epsilon} \def\§z {\zeta} \def\§h {\eta} \def\§v {\@theta} \def\§i {\iota} \def\§k {\kappa} \def\§l {\lambda} \def\§m {\mu} \def\§n {\nu} \def\§x {\xi} \def\§p {\@pi} \def\§r {\@rho} \def\§s {\@sigma} \def\§y {\tau} \def\§u {\upsilon} \def\§f {\@phi} \def\§c {\chi} \def\§q {\psi} \def\§w {\omega} % \end{macrocode} % % \begin{macrocode} \if@optiontau \def\§t {\tau}\else \def\§t {\@theta}\fi % \end{macrocode} % % \begin{macrocode} \def\§G {\Gamma} \def\§D {\Delta} \def\§V {\Theta} \def\§T {\Theta} \def\§L {\Lambda} \def\§X {\Xi} \def\§P {\Pi} \def\§S {\Sigma} \def\§U {\Upsilon} \def\§F {\Phi} \def\§Q {\Psi} \def\§W {\Omega} % \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} \if@optiontame \catcode`\§=\count@ \ifnum\count@=13 \let §=\GA@LaVieilleParesse \fi \fi \endinput % \end{macrocode} % \iffalse % % \fi % \Finale \endinput %%% Local Variables: %%% mode: doctex %%% fill-column: 70 %%% coding: iso-8859-15 %%% TeX-master: t %%% End: