% \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 » <le.texnicien.de.surface@wanadoo.fr>
%
% --------------------------------------------------------------------
% 
% 
% This file may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.2
% of this license or (at your option) any later version.
% The latest version of this license is in:
%
%    http://www.latex-project.org/lppl.txt
%
% and version 1.2 or later is part of all distributions of LaTeX 
% version 1999/12/01 or later.
% \fi
%
% \iffalse
%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package|doc>\def\fileversion{v3}  
%<package|doc>\def\filedate{2010/03/21}
%<package>\def\fileinfo{fichier paresse.dtx par le TeXnicien de surface}
%<package>\ProvidesPackage{paresse}
%<package>   [\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
%%% <francisation>
\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
%%% </francisation>
\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}
%</driver>
% \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
%</package>
% \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}}{}
%<fr>\usepackage[english,frenchb]{babel}
%<en>\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}
%</fr>
\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.}}
%</fr>
%<*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.}}
%</en>
\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}
%</fr> 
%<*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}
%</en>

\tableofcontents{}

\newpage

%<fr>\section{Introduction}
%<en>\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.
%</fr>
%<*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.
%</en>

%<*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.
%</fr>
%<*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.
%</en>

%<*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.
%</fr>
%<*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.
%</en>

%<*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
%</fr>
%<*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{}
%</en>

%<fr>\section{Pourquoi une 3\ieme version?}
%<en>\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}.
%</fr>
%<*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}.
%</en>

%<*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}.
%</fr>
%<*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.
%</en>

%<*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.
%</fr>
%<*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.
%</en>

%<fr>\section{Utilisation}
%<en>\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.
%</fr>
%<*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.
%</en>

%<*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 §.
%</fr>
%<*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'.
%</en>

%<*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\)|.
%</fr>
%<*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\)|.
%</en>

%<fr>\subsection{Les options}
%<en>\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 à §.
%</fr>
%<*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.
%</en>


%<*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}.
%</fr>
%<*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}.
%</en>

%<*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.
%</fr>
%<*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}.
%</en>

%<*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.
%</fr>
%<*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.
%</en>

%<*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\).
%</fr>
%<*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\).
%</en>

%<*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}.
%</fr>
%<*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}.
%</en>
\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.
%</fr>
%<*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.
%</en>

%<fr>\subsection{Commandes et environnement}
%<en>\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}.
%</fr>
%<*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|.
%</en>

\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}.
%</fr>
%<*en>
This macro gives the catcode \emph{other} to the character §. It is
the `contrary' of the preceding one. It corresponds to |\makeatother|.
%</en>

\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}.
%</fr>
%<*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}.
%</en>

\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}.
%</fr>
%<*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}.
%</en>

%<fr>\subsection{Tableaux des macros}
%<en>\subsection{Tables of the Macros}

%<fr>\subsubsection{Codage originel de \MODULE{paresse.sty}}
%<en>\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.
%</fr>
%<*en>
This is the active encoding when one choses the option \Option{legacy}
which is the default.
%</en>

\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.
%</fr>
%<*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.
%</en>

%<fr>\subsubsection{Codage de Sylvio \textsc{Levi}}
%<en>\subsubsection{Sylvio \textsc{Levi}'s Encoding}

%<*fr>
On active ce codage avec l'option \Option{Levi}.
%</fr>
%<*en>
One make this encoding active with the option \Option{Levi}.
%</en>

\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: 
%</fr>
%<*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:
%</en>

\begin{center}
\newcommand\CT[1]{\multicolumn{1}{c|}{\texttt{#1}}}
\begin{ParesseActive}
\begin{tabular}{|l|*{7}{c|}}\hline
%<fr>lettres grecques
%<en>greek letters
& §v & §y & §c & §q & §V & §Q & \(\varsigma\)\\\hline
%<fr>codage originel 
%<en>original encoding
&\CT{\§v/\§t}&\CT{\§y/\§t}&\CT{\§c}
&\CT{\§q}&\CT{\§V/\§T}&\CT{\§Q}& --- \\\hline
%<fr>codage de S. \textsc{Levi}
%<en>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}
%</doc>
%<*exemple>
\documentclass[a4paper,12pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[tame]{paresse}
\usepackage{amsmath,xspace,array,fancyvrb}
%<fr>\usepackage[frenchb]{babel}
%<en>\usepackage[english]{babel}
%<lmodern>\IfFileExists{lmodern.sty}{\usepackage{lmodern}}{}
%<fourier>\IfFileExists{fourier.sty}{\usepackage[upright]{fourier}}{}
\setlength{\parindent}{0pt}
\newcommand\BOP{\discretionary{}{}{}}
\begin{document}
\pagestyle{empty}
\begin{center}\large
%<fr>Exemples d'utilisation de l'extension \texttt{paresse}.\\
%<en>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, 
%<lmodern>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.}}
%</fourier>

\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!. 
%</fr>
%<*en>
This file loads the \texttt{amsmath} package and, 
%<lmodern>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.}}
%</fourier>

\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!.
%</en>

\vspace{\baselineskip}

%<fr>Avec la commande \verb!\ActiveLaParesse! pour activer le caractère §.
%<en>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}
%</fr>
%<*en>
\begin{Verbatim}[frame=single]
{\ActiveLaParesse
\(§a^{§b}_{§g}\) and also \(§D^§a_§d\)
}
\end{Verbatim}
%</en>
%<fr>pour obtenir :
%<en>to obtain:
%<fr>{\ActiveLaParesse \(§a^{§b}_{§g}\) et encore \(§D^§a_§d\)}
%<en>{\ActiveLaParesse \(§a^{§b}_{§g}\) and also \(§D^§a_§d\)}

\vspace{\baselineskip}

%<fr>Avec l'environnement \verb!ParesseActive!.
%<en>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}
%</exemple>
% \fi
\endinput
%%% Local Variables: 
%%% mode: doctex
%%% fill-column: 70
%%% coding: iso-8859-15
%%% TeX-master: t
%%% End: 

