diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-11 23:55:56 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-11 23:55:56 +0000 |
commit | 44d5743506d09ed3576840868832d7ee1a763202 (patch) | |
tree | f9d3ed7cb737afbe302922f6e3f29383983ef243 /Master/texmf-dist/source/latex/paresse/paresse.dtx | |
parent | de587d62664bc9c125fb8ed97513fd5b322dc7bd (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.dtx | 438 |
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: |