summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/paresse/paresse.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-11 23:55:56 +0000
committerKarl Berry <karl@freefriends.org>2006-01-11 23:55:56 +0000
commit44d5743506d09ed3576840868832d7ee1a763202 (patch)
treef9d3ed7cb737afbe302922f6e3f29383983ef243 /Master/texmf-dist/source/latex/paresse/paresse.dtx
parentde587d62664bc9c125fb8ed97513fd5b322dc7bd (diff)
trunk/Master/texmf-dist/source/latex/paresse
git-svn-id: svn://tug.org/texlive/trunk@435 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/paresse/paresse.dtx')
-rw-r--r--Master/texmf-dist/source/latex/paresse/paresse.dtx438
1 files changed, 438 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/paresse/paresse.dtx b/Master/texmf-dist/source/latex/paresse/paresse.dtx
new file mode 100644
index 00000000000..5b3ebde2b5e
--- /dev/null
+++ b/Master/texmf-dist/source/latex/paresse/paresse.dtx
@@ -0,0 +1,438 @@
+% \iffalse meta-comment
+%
+%%%% Copyright (C) 2004 by Yvon Henel <Yvon.Henel@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>\def\fileversion{v1a}
+%<package>\def\filedate{2005/03/01}
+%<package>\def\fileinfo{fichier paresse.dtx par Le \TeX nicien 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}
+% commentez la ligne suivante pour avoir un document avec le code
+\OnlyDescription
+% puis cherchez \StopEventually pour d'éventuels réglages
+\EnableCrossrefs
+\CodelineIndex
+\RecordChanges
+\makeatletter
+%%% quelques redéfinition de commande de la classe ltxdoc.cls ou de
+%%% l'extension doc.sty pour une documentation en français.
+\GlossaryPrologue{\section*{{Changements}}\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.}
+\renewcommand{\SpecialMainEnvIndex}[1]{\@bsphack\special@index{%
+ #1\actualchar
+ {\string\ttfamily\space#1}
+ (environnement)%
+ \encapchar main}%
+ \special@index{environnements:\levelchar{%
+ \string\ttfamily\space#1}\encapchar
+ main}\@esphack}
+\makeatother
+%%% fin de la francisation
+\begin{document}
+ \DocInput{paresse.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+% \CheckSum{319}
+%
+% \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.}
+%
+% \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 \textsf{paresse}\thanks{Ce document correspond au
+% fichier \textsf{paresse}~\fileversion, du \filedate.}}
+% \author{Le \TeX nicien de surface\\ \url{Yvon.Henel@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} |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
+% |inputenc| package if the latter is used. Moreover the sign
+% § must be a letter for \TeX.
+% \end{abstract}
+% \end{otherlanguage}
+%
+% \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 ---~c'est-à-dire en tapant |$ $| ou bien |\( \)| ou
+% encore |\[ \]| ou tout autre chose ayant le même effet~--- 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... 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...
+%
+% \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|.
+%
+% Par défaut on a |theta|, |pi|, |rho|, |sigma| et |varphi|.
+% \end{itemize}
+%
+% \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 \texttt{paresse.sty} 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}
+%
+% \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
+%
+\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}
+%
+\DeclareOption{defaut}{\@optiontamefalse \@optionvarepstrue
+ \@optionvarthetafalse \@optionvarrhofalse \@optionvarsigmafalse
+ \@optionvarpifalse \@optionvarphitrue \@optiontaufalse}
+%
+\DeclareOption*{\PackageError{paresse}{%
+ L'option \CurrentOption\space n'est pas connue !\MessageBreak
+ Les options par défaut sont << wild >> et << theta >>.}%
+ {Choisissez entre << wild >> (pour une Paresse active dans tout
+ le document) \MessageBreak et << tame >> (pour que § imprime
+ la marque de paragraphe). \MessageBreak Choisissez entre <<
+ theta >> (pour que §t imprime theta) \MessageBreak et << tau
+ >> (pour que §t imprime tau).}} \ExecuteOptions{defaut}
+\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...
+% \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}
+% \begin{macrocode}
+\newcommand{\ActiveLaParesse}{\GA@ActiveLaParesse}
+% \end{macrocode}
+% \end{macro}
+% \begin{environment}{ParesseActive}
+% \begin{macrocode}
+\newenvironment{ParesseActive}{\GA@ActiveLaParesse}{}
+% \end{macrocode}
+% \end{environment}
+% \begin{macro}{\GA@ActiveL@P@resse}
+% \begin{macrocode}
+\newcommand{\GA@ActiveL@P@resse}{\catcode `\§=\active%
+ \def§##1{\ensuremath{\csname \string§##1\endcsname}}}
+% \end{macrocode}
+% \end{macro}
+% 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
+%%% minuscules
+\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}
+%
+\if@optiontau \def\§t {\tau}\else \def\§t {\@theta}\fi
+%
+%%% Majuscules
+\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}
+% \Finale
+\endinput
+
+%%% Local Variables:
+%%% mode: latex
+%%% coding: iso-8859-15
+%%% TeX-master: t
+%%% End: