diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/paresse |
Initial commit
Diffstat (limited to 'macros/latex/contrib/paresse')
-rw-r--r-- | macros/latex/contrib/paresse/LISEZMOI | 52 | ||||
-rw-r--r-- | macros/latex/contrib/paresse/Makefile | 203 | ||||
-rw-r--r-- | macros/latex/contrib/paresse/README | 54 | ||||
-rw-r--r-- | macros/latex/contrib/paresse/paresse-doc.dtx | 796 | ||||
-rw-r--r-- | macros/latex/contrib/paresse/paresse-en.pdf | bin | 0 -> 477661 bytes | |||
-rw-r--r-- | macros/latex/contrib/paresse/paresse-ex-en.pdf | bin | 0 -> 93880 bytes | |||
-rw-r--r-- | macros/latex/contrib/paresse/paresse-ex-fr.pdf | bin | 0 -> 93596 bytes | |||
-rw-r--r-- | macros/latex/contrib/paresse/paresse-fr.pdf | bin | 0 -> 503633 bytes | |||
-rw-r--r-- | macros/latex/contrib/paresse/paresse.dtx | 752 | ||||
-rw-r--r-- | macros/latex/contrib/paresse/paresse.ins | 64 | ||||
-rw-r--r-- | macros/latex/contrib/paresse/paresse.pdf | bin | 0 -> 489776 bytes | |||
-rw-r--r-- | macros/latex/contrib/paresse/paresse.sty | 112 | ||||
-rw-r--r-- | macros/latex/contrib/paresse/paresseold.sto | 97 | ||||
-rw-r--r-- | macros/latex/contrib/paresse/paresseutf8.sto | 140 |
14 files changed, 2270 insertions, 0 deletions
diff --git a/macros/latex/contrib/paresse/LISEZMOI b/macros/latex/contrib/paresse/LISEZMOI new file mode 100644 index 0000000000..178de1082a --- /dev/null +++ b/macros/latex/contrib/paresse/LISEZMOI @@ -0,0 +1,52 @@ +% -*- coding: utf-8 -*- +% Time-stamp: <2013-02-16 10:25:05 novatux> + +====================================================================== + +PARESSE version 4.1 2013/02/16 + +====================================================================== + +Ce lot comprend + +LISEZMOI % ce fichier +README % la version anglaise + +Makefile % pour les utilisateurs de *nix +paresse.dtx % fichier source +paresse.ins % fichier d'installation +paresse.sty % le fichier de l'extension +paresseold.sto % fichier d'option +paresseutf8.sto % fichier d'option + + +paresse.pdf % code documenté en anglais +paresse-fr.pdf % documentation française +paresse-en.pdf % documentation anglaise +paresse-ex-fr.pdf % exemple en français +paresse-ex-en.pdf % le même en anglais + +paresse-TEST.zip +% archive contenant les fichiers de test: + ex-com-utf8-tame.tex + ex-com-utf8-wild.tex + test-latex-8bits-tame.tlx + test-latex-8bits-wild.tlx + test-latex-utf8-tame.tlx + test-latex-utf8-wild.tlx + test-lualatex-tame.llx + test-lualatex-wild.llx + test-xelatex-tame.xlx + test-xelatex-wild.xlx + +paresse.tds.zip % l'archive conforme à la TDS + +====================================================================== + +Cette extension est faite pour taper « facilement » les lettres +grecques avec un minimum d'effort ;) Elle ne concerne que les +lettres grecques qui ont un nom de macro comme \alpha ou \Omega. + +-- +Le \TeX nicien de surface +Yvon.Henel@wanadoo.fr diff --git a/macros/latex/contrib/paresse/Makefile b/macros/latex/contrib/paresse/Makefile new file mode 100644 index 0000000000..c36bb56210 --- /dev/null +++ b/macros/latex/contrib/paresse/Makefile @@ -0,0 +1,203 @@ +# --------------------------------------------------------------- +# Time-stamp: <2013-02-16 10:51:17 novatux> +# Makefile for the paresse package by Y. Henel +# modified version of the Makefile of the kerntest package +# many thanks to Harald Harders whose kerntest.xml I have also +# hacked to obtain my paresse.xml +# --------------------------------------------------------------- +PKGNAME=paresse +VERSION=4.1 + +TESTSRCUTIL= \ + ex-com-utf8-tame.tex \ + ex-com-utf8-wild.tex \ + +TESTSRCTEX= \ + test-latex-8bits-tame.tlx \ + test-latex-8bits-wild.tlx \ + test-latex-utf8-tame.tlx \ + test-latex-utf8-wild.tlx \ + test-lualatex-tame.llx \ + test-lualatex-wild.llx \ + test-xelatex-tame.xlx \ + test-xelatex-wild.xlx + +TESTSRC= \ + $(TESTSRCUTIL) \ + $(TESTSRCTEX) + +SOURCE= Makefile \ + $(PKGNAME).dtx \ + $(PKGNAME)-doc.dtx \ + $(PKGNAME).ins \ + LISEZMOI \ + README + +PDFDOC= $(PKGNAME).pdf \ + $(PKGNAME)-fr.pdf \ + $(PKGNAME)-en.pdf \ + $(PKGNAME)-ex-fr.pdf \ + $(PKGNAME)-ex-en.pdf + +PDFDOCSUP = \ + test-latex-8bits-tame.pdf \ + test-latex-8bits-wild.pdf \ + test-latex-utf8-tame.pdf \ + test-latex-utf8-wild.pdf \ + test-lualatex-tame.pdf \ + test-lualatex-wild.pdf \ + test-xelatex-tame.pdf \ + test-xelatex-wild.pdf + +SRCDOC= $(PKGNAME)-doc.dtx + +TEXDOC= $(PKGNAME)-fr.ltx \ + $(PKGNAME)-en.ltx \ + $(PKGNAME)-ex-fr.elx \ + $(PKGNAME)-ex-en.elx + +CTANDOC= $(PDFDOC) + +DECHETS= \ + $(TEXDOC)\ + $(PDFDOC)\ + $(PDFDOCSUP) + +REPERTS = \ + doc \ + tex \ + source + +TEX = $(PKGNAME).sty \ + $(PKGNAME)utf8.sto \ + $(PKGNAME)old.sto + +GARBAGE= $(wildcard *.aux)\ + $(wildcard *.log)\ + $(wildcard *.toc)\ + $(wildcard *.out)\ + $(wildcard *.glo)\ + $(wildcard *.gls)\ + $(wildcard *.ilg)\ + $(wildcard *.ind)\ + $(wildcard *.idx)\ + $(wildcard *.hd)\ + $(wildcard *.ltx)\ + $(wildcard *.elx)\ + $(wildcard *~) + +# --------------------------------------------------------------- + +.SUFFIXES: .sty .ins .dtx .pdf .ltx .tex .llx .xlx .tlx .elx + +# --------------------------------------------------------------- +.ins.sty: + latex $< + +.dtx.pdf: + pdflatex $< + pdflatex $< + makeindex -s gind.ist $(*D)/$(*F) + makeindex -s gglo.ist -o $(*D)/$(*F).gls $(*D)/$(*F).glo + pdflatex $< + +.ltx.pdf: + pdflatex $< + pdflatex $< + makeindex -s gind.ist $(*D)/$(*F) + pdflatex $< + +.elx.pdf: + pdflatex $< + pdflatex $< + +.tlx.pdf: + pdflatex $< + +.llx.pdf: + lualatex $< + +.xlx.pdf: + xelatex $< + +# --------------------------------------------------------------- + +all: $(PKGNAME).sty $(PDFDOC) $(PDFDOCSUP)\ + $(TEXDOC) $(PKGNAME).ins + +# --------------------------------------------------------------- + +help: + @-echo "******************************************************" + @-echo "** Choisir une des options : *" + @-echo "== Choose one of the options: *" + @-echo "** 'all' pour produire tous les fichiers *" + @-echo "== 'all' to produce all the files *" + @-echo "** 'clean' suppression des fichiers auxiliaires *" + @-echo "== 'clean' delete the auxiliary files *" + @-echo "** 'distclean' pour ne conserver que les sources *" + @-echo "== 'distclean' to keep only the sources *" + @-echo "******************************************************" + +# --------------------------------------------------------------- + +dist: all clean + +# --------------------------------------------------------------- + +clean: + @-rm -f $(GARBAGE) + +distclean: clean + @-rm -f $(DECHETS) + @-rm -f $(TEX) + @-rm -f common.tex + +# --------------------------------------------------------------- + +texlive: dist + @-rm -rf $(REPERTS) + @-mkdir -p tex/latex/$(PKGNAME) + @-mkdir -p doc/latex/$(PKGNAME) + @-mkdir -p source/latex/$(PKGNAME) + @-mkdir -p TEST + @-cp $(TEX) tex/latex/$(PKGNAME) + @-cp $(CTANDOC) doc/latex/$(PKGNAME) + @-cp $(SOURCE) source/latex/$(PKGNAME) + @-cp $(TESTSRC) TEST + @-zip -r $(PKGNAME)-TEST TEST/ + @-mv $(PKGNAME)-TEST.zip source/latex/$(PKGNAME)/ + @-rm -rf TEST/ + @-mkdir -p $(PKGNAME) + @-cp $(CTANDOC) ./$(PKGNAME) + @-cp $(SOURCE) ./$(PKGNAME) + @-cp $(TEX) ./$(PKGNAME) + +# --------------------------------------------------------------- + +zip: texlive + @-rm -f $(PKGNAME).zip + @-zip -r $(PKGNAME) $(REPERTS) + @-rm -rf $(REPERTS) + @-mv $(PKGNAME).zip $(PKGNAME).tds.zip + @-zip -r $(PKGNAME) $(PKGNAME) + @-zip -r $(PKGNAME) $(PKGNAME).tds.zip + @-rm -rf $(PKGNAME) + @-rm -f $(PKGNAME).tds.zip + +# --------------------------------------------------------------- + +ctan: zip distclean + +# --------------------------------------------------------------- + +doc: $(PKGNAME).ins $(PKGNAME).pdf $(PKGNAME)-doc.dtx + +$(PKGNAME).sty: $(PKGNAME).ins $(PKGNAME).dtx +$(TEXDOC): $(PKGNAME).ins $(PKGNAME).dtx $(PKGNAME)-doc.dtx +$(PDFDOC): $(TEXDOC) +# --------------------------------------------------------------- +# echu e an abaden +# Le \TeX nicien de surface 2011/04/17, 2013/02/16 + + diff --git a/macros/latex/contrib/paresse/README b/macros/latex/contrib/paresse/README new file mode 100644 index 0000000000..d26dabd892 --- /dev/null +++ b/macros/latex/contrib/paresse/README @@ -0,0 +1,54 @@ +% Time-stamp: <2013-02-16 10:28:53 novatux> + +====================================================================== + +PARESSE version 4.1 2013/02/16 + +====================================================================== + +This bundle should contain + +README % this file +LISEZMOI % French version + +Makefile % for *nix users +paresse.dtx +paresse.ins +paresse.sty % the style file +paresseold.sto % style option file +paresseutf8.sto % style option file + +paresse.pdf % code documented in English +paresse-en.pdf % English documentation +paresse-fr.pdf % French documentation +paresse-ex-en.pdf % English Example +paresse-ex-fr.pdf % French Example + +paresse-TEST.zip +% archive containing files for test: + ex-com-utf8-tame.tex + ex-com-utf8-wild.tex + test-latex-8bits-tame.tlx + test-latex-8bits-wild.tlx + test-latex-utf8-tame.tlx + test-latex-utf8-wild.tlx + test-lualatex-tame.llx + test-lualatex-wild.llx + test-xelatex-tame.xlx + test-xelatex-wild.xlx + +paresse.tds.zip % the tds compliant archive + +====================================================================== + +This package provides a means of typing "easily" greek letters +with the least possible effort ;) It takes care only of the +letters which have a macro name as \alpha or \Omega. + +====================================================================== + +Happy TeXing and all that. + +-- +Le \TeX nicien de surface +le.texnicien.de.surface@wanadoo.fr diff --git a/macros/latex/contrib/paresse/paresse-doc.dtx b/macros/latex/contrib/paresse/paresse-doc.dtx new file mode 100644 index 0000000000..5bb0512419 --- /dev/null +++ b/macros/latex/contrib/paresse/paresse-doc.dtx @@ -0,0 +1,796 @@ +% \iffalse meta-comment +%-*- coding: iso-8859-15 -*- +% Time-stamp: <2013-02-16 10:40:24 novatux> +% -------------------------------------------------------------------- +% +% Copyright (C) 2011, 2013 +% by Yvon Henel alias 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 +%<*doc> +\documentclass[a4paper]{ltxdoc} +\usepackage[latin1]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[tame]{paresse} +\usepackage{xspace,url,array,ifthen,hologo} +\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} +\input{common} +\makeatletter +\newcommand\DescribeOption[1]{\@bsphack \marginpar{\raggedleft + \textsc{#1}}\index{#1 (option)}\@esphack} +\newcommand*\PS{\texttt{\S}\xspace} +\newcommand*\PSVerb[1]{\texttt{\S #1}} +%<*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{\CAD}{c.-à-d.\xspace} +%</fr> +\newcommand{\TO}{\textemdash\ \ignorespaces} +\newcommand{\TF}{\unskip\ \textemdash\xspace} +\newcommand\BOP{\discretionary{}{}{}} +\newcommand\Option[1]{\textsc{#1}} +\newcommand\Pkg[1]{\textsf{#1}} +\newcommand\NOUVO[1][1]{% + \ifthenelse + {\equal{#1}{5}} + {\marginpar{\hspace*{\stretch{1}}% + \textbf{N (v5)}\hspace*{.5em}}}% + {}} + + +\EnableCrossrefs +\CodelineIndex + +\begin{document} + +%<*fr> +\title{Le module \Pkg{paresse}\thanks{Ce document correspond au + fichier \Pkg{paresse}~\fileversion, du \filedate.}} +%</fr> +%<*en> +\title{The package \Pkg{paresse}\thanks{This document corresponds + to the file \Pkg{paresse}~\fileversion, dated \filedate.} + \mbox{}\thanks{English translation by the author. Any comment + about the translation is welcome.}} +%</en> +\author{Le \TeX nicien de surface\\ + \href{mailto:le.texnicien.de.surface@wanadoo.fr}% + {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 \PS actif et redéfini. Au lieu de + |\(\alpha\)| ou tape |§a| pour obtenir \(\alpha\). + + \textbf{Important} : Il doit être chargé \textbf{après} + \Pkg{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 + anglais. +\end{abstract} +\begin{otherlanguage}{english} + \begin{abstract} + This is the French documentation for the final user of the package + \Pkg{paresse}. The English documentation for the final user is + available in the file \texttt{paresse-en.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\). + +\end{abstract} +\begin{otherlanguage}{french} + \begin{abstract} + La documentation française pour l'utilisateur de l'extension + \Pkg{paresse} est désormais disponible sous le nom de + \texttt{paresse-fr.pdf}. + + Le fichier \texttt{paresse.pdf} contient le code commenté en + anglais. + \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 4\ieme version?} +%<en>\section{Why a 4th Version?} + +%<*fr> +Je ne sais plus bien à quelle occasion \TO l'age et les pannes de +machine avec \og crachage\fg de disque aidant\TF et encore moins quand +\TO si ce n'est que cela remonte à plus d'un an maintenant\TF +Christian \textsc{Tellechea} me faisait part de son désir d'utiliser +\Pkg{paresse} avec des sources codées en utf-8 sous \hologo{LaTeX} \TO +et non \hologo{XeLaTeX} ou \hologo{LuaLaTeX}. + +Une discussion s'engagea, Christian me fit parvenir du matériel en +ordre de marche. Il me fit même cadeau de deux versions, la deuxième +améliorant la reconnaissance du codage déclaré avec +\Pkg{inputenc}. Toutefois, je procrastinais. Il se peut que ma vie +personnelle et mon travail aient interféré avec le développement de +cette extension. + +Enfin, voici la chose. +%</fr> +%<*en> +I don't remember exactly on what occasion \TO age, disk crash and +computer mishap aiding\TF and even less when \TO more than a year ago, +I'm afraid\TF Christian \textsc{Tellechea} wrote me that he would be +glad to use \Pkg{paresse} in his utf-8 encoded sources with +\hologo{LaTeX} \TO not with \hologo{XeLaTeX} nor \hologo{LuaLaTeX}. + +We exchanged emails, Christian sent me working material. He even made +me the gift of two versions, the second better for the identification +of the encoding passed, as an option, to \Pkg{inputenc}. However I +procrastinated. My personal life and my job may have interfered with +the development of this package. + +At last, here is the thing. +%</en> + +%<*fr> +Le plus nouveau devrait échapper à l'utilisateur de \hologo{LuaLaTeX} +ou \hologo{XeLaTeX} et même de \hologo{LaTeX} chargeant \Pkg{inputenc} +avec une option comme \texttt{latin1} ou \texttt{latin9}. Cependant, +désormais, on peut utiliser cette extension avec \hologo{LaTeX} en +chargeant \Pkg{inputenc} avec l'option \texttt{utf8}. +%</fr> +%<*en> +The newest feature should escape the user of \hologo{LuaLaTeX} +or \hologo{XeLaTeX} and even of \hologo{LaTeX} loading \Pkg{inputenc} +with an option such as \texttt{latin1} or \texttt{latin9}. However, +henceforth, one can use this package with \hologo{LaTeX} loading +\Pkg{inputenc} with option \texttt{utf8}. +%</en> + +%<*fr> +J'ai profité de cette nouvelle version pour ajouter une macro en \PS: +\NOUVO\PSVerb{Z} qui produit \S, symbole déjà accessible par |\S|, ce qui +fait que je n'ose pas vraiment parler de \og raccourci\fg. +%</fr> +%<*en> +I take advantage of this new version to add a \PS-macro: +\NOUVO\PSVerb{Z} which produces \S, symbol already available with +|\S|, so I don't dare to present it as a real ``shortcut''. +%</en> + +%<fr>\section{Pourquoi une 3\ieme version?} +%<en>\section{Why a 3rd Version?} + +%<*fr> +C'est par courriel que Claudio \textsc{Beccari} m'a signalé 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 \Pkg{paresse}. +%</fr> +%<*en> +With a mail 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 \Pkg{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 \Pkg{inputenc} quand on utilise \hologo{LaTeX}. Il faut +que la \og caractère \fg § soit reconnu par \TeX\ comme une lettre. On +pourra, par exemple, utiliser l'option |latin1| de \Pkg{inputenc} pour +obtenir cela. + +On obtiendra le même comportement, à l'exception signalée +page~\pageref{restriction} près, avec \Pkg{inputenc} et l'option +\texttt{utf8}.\NOUVO + +Il n'y a pas ce genre de restriction quand on travaille avec +\hologo{LuaLaTeX} ou \hologo{XeLaTeX} sur un source codé en +UTF-8.\NOUVO +%</fr> +%<*en> +One loads the package with |\usepackage{paresse}| \textbf{after} the +package \Pkg{inputenc} when using \hologo{LaTeX}. The sign § must be +recognised as a letter by \TeX. On can use for instance \Pkg{inputenc} +with option |latin1| for such a purpose. + +One will obtain the same behaviour, but for the exception +pointed out on page~\pageref{restriction}, with \Pkg{inputenc} and +option \texttt{utf8}.\NOUVO + +There is no such restriction when one compiles with \hologo{LuaLaTeX} +or \hologo{XeLaTeX} a source encoded in UTF-8.\NOUVO +%</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. +%</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. +%</en> + +%<*fr> +On notera que les accolades sont optionelles et qu'on obtient un +résultat identique avec |\(§a^§b\)|, \textbf{à moins que} l'on utilise +un source codé en utf-8 avec \hologo{LaTeX}.\label{restriction} +%</fr> +%<*en> +One will note that the curly braces are \emph{not} compulsory and that +one obtains the same result with just |\(§a^§b\)| \textbf{unless} one +uses a utf-8 encoded source with \hologo{LaTeX}.\label{restriction} +%</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}\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 + \Pkg{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}\DescribeOption{legacy / Levi} is the + contrary of \Option{legacy} which is the default. With + \Option{legacy} one uses the original encoding of + \Pkg{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|. 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|. That option is ineffective when one has chosen + \Option{Levi}. +%</en> + +%<*fr> + \textbf{Remarque :} 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:} 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\) otherwise |§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}. 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}. 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}. + +Cette macro est inactive avec un codage utf-8 sous +\hologo{LaTeX}. Elle n'aurait d'ailleurs pas vraiment de sens. Son +utilisation produit un avertissement dans le fichier |.log|. +%</fr> +%<*en> +This macro gives the catcode \emph{other} to the character §. It is +the `contrary' of the preceding one. It corresponds to |\makeatother|. + +This macro is inactivated when one uses a utf-8 encoding with +\hologo{LaTeX}. In such a case it wouldn't have a clear meaning. When +used it issues a warning in the |.log| file. +%</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 +\Pkg{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 \Pkg{paresse.sty}} +%<en>\subsubsection{\Pkg{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 & Z & §Z\\ \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> + +\pagebreak[4] + +%<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 +\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 & Z & §Z\\ \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} +%<fr>\addcontentsline{toc}{section}{Bibliographie} +%<en>\addcontentsline{toc}{section}{References} +\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} +\PrintIndex +\end{document} +%</doc> +%<*exemple> +\documentclass[a4paper,12pt]{article} +\usepackage[latin1]{inputenc} +\usepackage[T1]{fontenc} +\usepackage[tame]{paresse} +% \usepackage{amsmath} +\usepackage{xspace,array,fancyvrb} +%<fr>\usepackage[frenchb]{babel} +%<en>\usepackage[english]{babel} +\IfFileExists{lmodern.sty}{\usepackage{lmodern}}{} +\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\\ + 2011-04-19 +\end{center} + +%<*fr> +Ce fichier charge +% les extensions \texttt{amsmath} et, +l'extension \texttt{lmodern} +si elle est disponible localement.%, \texttt{lmodern}. + +\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, +the \texttt{lmodern} package if it locally exists. + +\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: +{\ActiveLaParesse \(§a^{§b}_{§g}\) +%<fr> et encore +%<en> 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 & Z & §Z\\ \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 & Z & §Z\\ \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: diff --git a/macros/latex/contrib/paresse/paresse-en.pdf b/macros/latex/contrib/paresse/paresse-en.pdf Binary files differnew file mode 100644 index 0000000000..707e4cf90b --- /dev/null +++ b/macros/latex/contrib/paresse/paresse-en.pdf diff --git a/macros/latex/contrib/paresse/paresse-ex-en.pdf b/macros/latex/contrib/paresse/paresse-ex-en.pdf Binary files differnew file mode 100644 index 0000000000..01364d627e --- /dev/null +++ b/macros/latex/contrib/paresse/paresse-ex-en.pdf diff --git a/macros/latex/contrib/paresse/paresse-ex-fr.pdf b/macros/latex/contrib/paresse/paresse-ex-fr.pdf Binary files differnew file mode 100644 index 0000000000..e0af60738e --- /dev/null +++ b/macros/latex/contrib/paresse/paresse-ex-fr.pdf diff --git a/macros/latex/contrib/paresse/paresse-fr.pdf b/macros/latex/contrib/paresse/paresse-fr.pdf Binary files differnew file mode 100644 index 0000000000..b2444884bd --- /dev/null +++ b/macros/latex/contrib/paresse/paresse-fr.pdf diff --git a/macros/latex/contrib/paresse/paresse.dtx b/macros/latex/contrib/paresse/paresse.dtx new file mode 100644 index 0000000000..7b413fdbcb --- /dev/null +++ b/macros/latex/contrib/paresse/paresse.dtx @@ -0,0 +1,752 @@ +% \iffalse meta-comment +%-*- coding: iso-8859-15 -*- +% Time-stamp: <2013-02-16 10:32:18 novatux> +% -------------------------------------------------------------------- +% +% Copyright (C) 2011, 2013 +% by Yvon Henel alias 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] +%<*common> +\def\fileversion{v4.1} +\def\filedate{2013/02/16} +\def\fileinfo{fichier paresse par le TeXnicien de surface} +%</common> +%<*package> +\ProvidesPackage{paresse} + [\filedate\space\fileversion\space\fileinfo] +%</package> +% \fi +% \iffalse +%<*driver> +\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{hypdoc,hologo} + +\newcommand*\PS{\texttt{\S}\xspace} +\newcommand*\PSVerb[1]{\texttt{\S #1}} +\newcommand\BOP{\discretionary{}{}{}} +\newcommand\Option[1]{\textsc{#1}} +\newcommand\Pkg[1]{\textsf{#1}} +\newcommand\NOUVO[1][1]{% + \ifthenelse + {\equal{#1}{4.1}} + {\marginpar{\hspace*{\stretch{1}}% + \textbf{N (v4.1)}\hspace*{.5em}}}% + {}} + +% commentez la ligne suivante pour avoir un document avec le code +% \OnlyDescription +% comment the preceding line to obtain a document with the code +% puis cherchez \StopEventually pour d'éventuels réglages +% then look for \StopEventually to make a bit of setup +\EnableCrossrefs +\CodelineIndex +\RecordChanges + +\begin{document} + \DocInput{paresse.dtx} +\end{document} +%</driver> +% \fi +% +% \CheckSum{592} +% +% \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}{New name, some redefinitions, +% first public version} +% \changes{v1}{2004/04/17}{Documentation updated} +% \changes{v1a}{2005/03/01}{Correction of a bug in Infofile which prevented the loading of the package} +% \changes{v2}{2008/08/13}{A useless macro is deleted} +% \changes{v2}{2008/08/13}{Documentation reorganised} +% \changes{v2}{2008/08/13}{New wrapping to provide a tds.zip.} +% \changes{v2.1}{2008/08/16}{Correction of a bug in Infofile, once again} +% \changes{v3}{2010/03/19}{Option for Sylvio \textsc{Levi}'s encoding} +% \changes{v4}{2011/04/16}{Documentation of the code in English} +% \changes{v4}{2011/04/16}{paresse goes utf8} +% \changes{v4.1}{2013/02/16}{Using skeyval-bc instead of (moving forward) skeyval} +% +% \GetFileInfo{paresse.sty} +% +% \DoNotIndex{\newcommand,\newenvironment,\i,\ae,\oe,\DeclareOption,^^A +% \ifthenelse,\if,\else,\fi,\tr@@c,\ExecuteOptions,\ProcessOptions,^^A +% \relax,\MessageBreak,\CurrentOption,\RequirePackage,\PackageError,^^A +% \def,\endinput,\let,\boolean,\newboolean,\setboolean,\renewcommand,^^A +% \afterassignment,\global,\aftergroup,\bgroup,\egroup,\csname,^^A +% \endcsname,\emph,\catcode,\space,\string,\next,\active,\rmfamily,\rule,^^A +% \textsl,\upshape, \alpha, \beta, \gamma, \delta, \epsilon, ^^A +% \varepsilon, \zeta, \eta, \theta, \vartheta, \iota, \kappa, ^^A +% \lambda, \mu, \nu, \xi, \pi, \varpi, \rho, \varrho, \sigma, ^^A +% \varsigma, \tau, \upsilon, \phi, \varphi, \chi, \psi, \omega, ^^A +% \Delta, \Gamma, \Theta, \Lambda, \Xi, \Pi, \Sigma, \Upsilon, ^^A +% \ExecuteOptionsX,\ProcessOptionsX,\DeclareOptionX,^^A +% \DeclareUnicodeCharacter, \parse@XML@charref, ^^A +% \parse@UTFviii@a, \parse@UTFviii@b, \AtBeginDocument, ^^A +% \@eha, \@firstofone, \@gobble,\@toks, \@latex@error, ^^A +% \begingroup, \endgroup, \gdef, \IeC, \ifcat, \ifcsname, ^^A +% \ifluatex, \ifxetex, \iftogoff, \iftogon, \UTFviii@tmp, ^^A +% \UTFviii@four@octets, \UTFviii@three@octets, \UTFviii@two@octets,^^A +% \ifx, \the, \wlog, \togoff, \togon, \@ifpackageloaded, ^^A +% \expandafter, \futurelet, \makeatletter, \makeatother, ^^A +% \inputencodingname, \InputIfFileExists, \PackageInfo,^^A +% \PackageWarning, \newtog, \ProvidesFile, \PS, \PSVerb, ^^A +% \stop, \S, \usepackage, \temp@a, \define@bitogkeys, ^^A +% \Phi, \Psi, \Omega, \newif, \ifnum, \count@, \ensuremath, ^^A +% \~, \", \^} ^^A +% +% \title{The package \Pkg{paresse}\thanks{This document corresponds +% to file \Pkg{paresse.sty}~\fileversion, dated \filedate.}} +% \author{Le \TeX nicien de surface\\ +% \href{mailto:le.texnicien.de.surface@wanadoo.fr}% +% {le.texnicien.de.surface@wanadoo.fr}} +% +% \maketitle +% \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 \PS activated and redefined. Instead of +% |\(\alpha\)| one types \PSVerb{a} to obtain \(\alpha\). +% +% \textbf{Important}: You have to load it \textbf{after} the +% \Pkg{inputenc} package if the latter is used. Moreover the sign +% \PS must be a letter for \TeX. +% +% \textbf{New}: with this version~4, one can use this package even +% with utf8-encoded source for \hologo{LaTeX}, \hologo{LuaLaTeX}, or +% \hologo{XeLaTeX}. +% +% The English documentation for the final user of the package +% \Pkg{paresse} is available in the file \texttt{paresse-en.pdf}. +% +% \end{abstract} +% \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 \PS actif et redéfini. Au +% lieu de |\(\alpha\)| ou tape \PSVerb{a} pour obtenir +% \(\alpha\). +% +% \textbf{Important} : Il doit être chargé \textbf{après} +% \Pkg{inputenc} si ce dernier est utilisé. De plus, il faut +% que le signe \PS soit une lettre pour \TeX. +% +% \textbf{Nouveau}: avec cette version~4, on peut utiliser cette +% extension même dans un source codé en utf-8 avec \hologo{LaTeX}, +% \hologo{LuaLaTeX} ou \hologo{XeLaTeX}. +% +% La documentation française pour l'utilisateur de l'extension +% \Pkg{paresse} est disponible sous le nom de +% \texttt{paresse-fr.pdf}. +% \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{The code} +% +% +% \subsection{The sty file} +% +% From the 4th version, I have used \Pkg{skeyval} for it provides +% toggle-keys. But times are a-changing and so is \Pkg{skeyval}. +% From this version 4.1, I use \Pkg{skeyval-bc} which retains the old +% ways of \Pkg{skeyval}. \Pkg{skeyval-bc} loads \Pkg{xkeyval} the +% macros of which I use to manage options. +% +% \Pkg{ifluatex} and \Pkg{ifxetex} are required to take care of +% \hologo{LuaLaTeX} and \hologo{XeLaTeX} respectively. +% +% \begin{macrocode} +\RequirePackage{skeyval-bc} +\RequirePackage{ifluatex} +\RequirePackage{ifxetex} +% \end{macrocode} +% +% With \cmd{\define@bitogkeys}, from \Pkg{skeyval-bc}, I define nine +% pairs of complementary toggle keys. If one of the pair is set to +% \texttt{true}, the other will be automatically set to \texttt{false} +% and vice-versa. +% \begin{macrocode} +\define@bitogkeys[GA]{paresse.sty}[GA@]{legacy}[true]{levi}{}{} +\define@bitogkeys[GA]{paresse.sty}[GA@]{wild}[true]{tame}{}{} +\define@bitogkeys[GA]{paresse.sty}[GA@]{ttau}[true]{ttheta}{}{} +\define@bitogkeys[GA]{paresse.sty}[GA@]{varepsilon}[true]{epsilon}{}{} +\define@bitogkeys[GA]{paresse.sty}[GA@]{varphi}[true]{phi}{}{} +\define@bitogkeys[GA]{paresse.sty}[GA@]{pi}[true]{varpi}{}{} +\define@bitogkeys[GA]{paresse.sty}[GA@]{sigma}[true]{varsigma}{}{} +\define@bitogkeys[GA]{paresse.sty}[GA@]{rho}[true]{varrho}{}{} +\define@bitogkeys[GA]{paresse.sty}[GA@]{theta}[true]{vartheta}{}{} +% \end{macrocode} +% +% I set the behaviour of the package in case of an unknown option +% with \cmd{\DeclareOptionX*}, from \Pkg{xkeyval}. +% \begin{macrocode} +\DeclareOptionX*{\PackageError{paresse} {The option "\CurrentOption" + 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 the character obtained by + \string\S\MessageBreak prints the section symbol \string\S). + \MessageBreak See the documentation for other options.}} +% \end{macrocode} +% +% The default options are: |legacy|, |wild|, |varepsilon|, +% |theta|, |pi|, |rho|, |sigma|, and |varphi|. +% \changes{v3}{2010/03/20}{Default option |legacy| added} +% \begin{macrocode} +\ExecuteOptionsX[GA]{legacy,wild,varepsilon,theta,pi,rho,sigma,varphi} +\ProcessOptionsX[GA]\relax +% \end{macrocode} +% +% The prefix of the \emph{secret} macros of this package is +% |GA@|. Here I define the macros which will print the correct +% character according to the chosen options. \cs{iftogon} is provided +% by \Pkg{skeyval-bc}. +% \begin{macrocode} +\iftogon{GA@varepsilon}{% + \def\GA@epsilon{\varepsilon}}{\def\GA@epsilon{\epsilon}} +\iftogon{GA@vartheta}{\def\GA@theta{\vartheta}}{\def\GA@theta{\theta}} +\iftogon{GA@varpi}{\def\GA@pi{\varpi}}{\def\GA@pi{\pi}} +\iftogon{GA@varrho}{\def\GA@rho{\varrho}}{\def\GA@rho{\rho}} +\iftogon{GA@varsigma}{\def\GA@sigma{\varsigma}}{\def\GA@sigma{\sigma}} +\iftogon{GA@varphi}{\def\GA@phi{\varphi}}{\def\GA@phi{\phi}} +% \end{macrocode} +% +% +% I test the engine, it it is \hologo{XeTeX} or \hologo{LuaTeX}, the +% file \texttt{paresseold.sto} is loaded. +% \begin{macrocode} +\ifluatex + \PackageInfo{paresse}{compiling with luatex} + \InputIfFileExists{paresseold.sto}{% + \PackageInfo{paresse}{paresseold loaded}}{% + \PackageInfo{paresse}{paresseold not loaded}} +\else + \ifxetex + \PackageInfo{paresse}{compiling with xetex} + \InputIfFileExists{paresseold.sto}{% + \PackageInfo{paresse}{paresseold loaded}}{% + \PackageInfo{paresse}{paresseold not loaded}} + \else +% \end{macrocode} +% We arrive here if the working engine is good old \hologo{TeX} (in +% fact, good not so old \hologo{eTeX} I hope for some things could +% depend on \hologo{eTeX}-nical internals). +% +% First some useful macros to take care of the encoding. The macros +% have been given to me by Christian \textsc{Tellechea} I do heartily +% thank for his kindness. +% +% The first one takes care of problems of encoding. +% \begin{macrocode} +\newcommand\encoding@error{% + \@latex@error{% + paresse needs inputenc loaded with option "utf8" + or option such as "latin1" (8 bits encodign).}{}\stop} +% \end{macrocode} +% The second checks that \Pkg{inputenc} has been loaded before +% \Pkg{paresse}. +% \begin{macrocode} +\@ifpackageloaded{inputenc}\relax +{\PackageError{paresse}{% + Please, load inputenc package before paresse}{% + With LaTeX, "paresse" needs to know the encoding to work well and so + the package "inputenc" must be loaded, with \string\usepackage, before + loading "paresse" itself}} +% \end{macrocode} +% The test for \Pkg{inputenc} and encoding is delayed at the beginning +% of the document where all things about encoding should be settled. +% \begin{macrocode} +\AtBeginDocument{% + \@ifpackageloaded{inputenc}\find@encoding\encoding@error} +% \end{macrocode} +% I create a new toggle |GA@utf8| and set it to \texttt{false}. It +% will be used later to chose the correct action. +% \begin{macrocode} +\newtog[GA@]{utf8}[false] +% \end{macrocode} +% A bit of code to find the declared encoding and set up the toggle +% |GA@utf8| accordingly. There again work by Christian +% \textsc{Tellechea}. +% \begin{macrocode} +\newcommand\find@encoding{% + \begingroup + \def\utf@encoding{utf8}% + \def\temp@a{\togoff{GA@utf8}% + \PackageInfo{paresse}{8-bit encoding expected\@gobble}} + \ifx\utf@encoding\inputencodingname + \def\temp@a{\togon{GA@utf8}% + \PackageInfo{paresse}{utf8 encoding detected\@gobble}} + \fi + \expandafter\endgroup\temp@a} +% \end{macrocode} +% +% The main action is then delayed at the beginning of the document for +% reasons already given above. In case the utf8 encoding has been +% detected, the file \texttt{paresseutf8.sto} is loaded, otherwise it +% is \texttt{paresseold.sto} once again. +% +% \cs{makeatletter} is needed to mimic the loading of a \texttt{sty} +% file for, at the beginning of the document, |@| is no more a +% letter. Naturally, we must revert |@| to its non-letter status at +% the end of the loading. +% \begin{macrocode} +\AtBeginDocument{% + \makeatletter + \iftogoff{GA@utf8}{% + \InputIfFileExists{paresseold.sto}{% + \PackageInfo{paresse}{old loaded\@gobble}}{% + \PackageError{paresse}{paresseold.sto not found}{% + The package "paresse" needs to load the file "paresseold.sto" + but can't find it. Something seems to be broken in your TeX + system}}}{% + \InputIfFileExists{paresseutf8.sto}{% + \PackageInfo{paresse}{utf8 loaded\@gobble}}{% + \PackageError{paresse}{paresseutf8 not found}{% + The package "paresse" needs to load the file "paresseutf8.sto" + but can't find it. Something seems to be broken in your TeX + system}}} + \makeatother} +\fi +\fi +% \end{macrocode} +% +% And that's all for the main file. +% \iffalse +%</package> +% \fi +% \iffalse +%<*oldpack> +% \fi +% +%\subsection{The file paresseold.sto} +% +% This file will be loaded in all cases except when the working engine is +% \hologo{LaTeX} with |[utf8]{inputenc}| loaded. |^^a7| is \TeX nical +% code for the character I type, on my French keypad, with key \S. +% +% This is almost the content of the version~3 of +% \texttt{paresse.sty}. The changes are the use of toggles provided by +% \Pkg{skeyval-bc} and the appearance of \PSVerb{Z} to obtain \S --- +% which is always available through \cs{S}\footnote{So could I speak +% of \PSVerb{Z} in terms of ``shortcut''?}. +% +% \begin{macrocode} +\ProvidesFile{paresseold.sto} +% \end{macrocode} +% Presentations made, I save the current category code (catcode) of +% the character \PS and its definition in \cs{GA@LaVieilleParesse}. +% \begin{macrocode} +\count@=\catcode`\^^a7 +\let\GA@LaVieilleParesse= ^^a7 +% \end{macrocode} +% For sake of convienience, \PS is def'ed as |\S|. +% \begin{macrocode} +\def\^^a7{\S} +% \end{macrocode} +% +% Come some end-user macros. \cs{makeparesseletter} changes the +% \DescribeMacro{\makeparesseletter} catcode of \PS to~\(11\) which is +% the code of letter and \DescribeMacro{\makeparesseother} +% \cs{makeparesseother} changes that code to~\(12\) the code of other +% characters. +% \begin{macrocode} +\newcommand{\makeparesseletter}{\catcode `\^^a7=11\relax} +\newcommand{\makeparesseother}{\catcode `\^^a7=12\relax} +% \end{macrocode} +% \cs{GA@MakeParesseActive} is an internal macro to activate \PS. +% \DescribeMacro{\GA@MakeParesseActive} +% Then come two macros to activate \PS for the remaining part of the +% file. On of them is applied according to the catcode of \PS at the +% beginning --- catcode saved in |\count@|. +% \begin{macrocode} +\newcommand{\GA@MakeParesseActive}{\catcode `\^^a7=\active} +\def\GA@ActiveLaParessexii{\catcode `\^^a7=\active} +\def\GA@ActiveLaParessexiii{\catcode `\^^a7=\active + \def^^a7##1{\ensuremath{\csname \string^^a7##1\endcsname}}} +\ifnum\count@=12 + \let\GA@ActiveLaParesse \GA@ActiveLaParessexii +\else + \let\GA@ActiveLaParesse \GA@ActiveLaParessexiii +\fi +% \end{macrocode} +% +% It's time to provide one end-user macro and one environment useful +% \DescribeMacro{\ActiveLaParesse} +% \DescribeEnv{ParesseActive} +% when the package has been loaded with option \Option{tame} to +% locally activate \PS. +% \begin{macrocode} +\newcommand{\ActiveLaParesse}{\GA@ActiveLaParesse} +\newenvironment{ParesseActive}{\GA@ActiveLaParesse}{} +% \end{macrocode} +% +% Now come the definitions of the meanings of the \PS-macros. For +% these definitions to work, \PS is made a letter. +% \begin{macrocode} +\makeparesseletter +\def\^^a7a {\alpha} +\def\^^a7b {\beta} +\def\^^a7g {\gamma} +\def\^^a7d {\delta} +\def\^^a7e {\GA@epsilon} +\def\^^a7z {\zeta} +\def\^^a7h {\eta} +\def\^^a7i {\iota} +\def\^^a7k {\kappa} +\def\^^a7l {\lambda} +\def\^^a7m {\mu} +\def\^^a7n {\nu} +\def\^^a7x {\xi} +\def\^^a7p {\GA@pi} +\def\^^a7r {\GA@rho} +\def\^^a7s {\GA@sigma} +\def\^^a7u {\upsilon} +\def\^^a7f {\GA@phi} +\def\^^a7w {\omega} +% \end{macrocode} +% In case of option \Option{legacy}, definitions of \PSVerb{v}, +% \PSVerb{y}, \PSVerb{c}, and \PSVerb{q} as in the first two versions +% of this package. +% \begin{macrocode} +\iftogon{GA@legacy}{% + \def\^^a7v {\GA@theta} + \def\^^a7y {\tau} + \def\^^a7c {\chi} + \def\^^a7q {\psi} +% \end{macrocode} +% Care is taken of options \Option{ttau} and \Option{ttheta}. +% \begin{macrocode} + \iftogon{GA@ttau}{\def\^^a7t {\tau}}{\def\^^a7t {\GA@theta}}}{% +% \end{macrocode} +% Definitions of the same \PSVerb{v}, \PSVerb{y}, \PSVerb{c}, and +% \PSVerb{q} with option \Option{levi}. In that case, options +% \Option{ttau} and \Option{ttheta} are no-op. +% \begin{macrocode} + \def\^^a7j {\GA@theta} + \def\^^a7t {\tau} + \def\^^a7q {\chi} + \def\^^a7y {\psi} + \def\^^a7c {\varsigma}} +% \end{macrocode} +% Upper case letters are treated thence: +% \begin{macrocode} +\def\^^a7G {\Gamma} +\def\^^a7D {\Delta} +\def\^^a7L {\Lambda} +\def\^^a7P {\Pi} +\def\^^a7S {\Sigma} +\def\^^a7U {\Upsilon} +\def\^^a7F {\Phi} +\def\^^a7X {\Xi} +\def\^^a7W {\Omega} +% \end{macrocode} +% Once again \Option{legacy} vs. \Option{levi}: +% \begin{macrocode} +\iftogon{GA@legacy}{% + \def\^^a7V {\Theta} + \def\^^a7T {\Theta} + \def\^^a7Q {\Psi} +}{% + \def\^^a7J {\Theta} + \def\^^a7Y {\Psi} +}% +% \changes{va4}{2011/04/17}{\PSVerb{Z} added to produce \PS} +\def\^^a7Z {\S} +% \end{macrocode} +% +% The end is near! \PS is made active and the \PS-macros defined. This +% is old code --- directly from~\cite{tlachand}. +% \begin{macrocode} +\catcode `\^^a7=\active +\def^^a7#1{\ensuremath{\csname \string^^a7#1\endcsname}} +% \end{macrocode} +% In case option \Option{tame} is chosen, \PS is given its first +% catcode and meaning back. +% \begin{macrocode} +\iftogon{GA@tame}{% + \catcode`\^^a7=\count@ + \ifnum\count@=13 \let ^^a7=\GA@LaVieilleParesse \fi +}% +% \end{macrocode} +% +% And that's all for \texttt{paresseold.sto}. +% +% \iffalse +%</oldpack> +% \fi +% \iffalse +%<*utf8pack> +% \fi +% +%\subsection{The file paresseutf8.sto} +% +% This part is brand new. It deals with the document encoded in utf8 +% via |\usepackage[utf8]{fontenc}| and compiled with \hologo{LaTeX}. +% +% It is at the request of Christian \textsc{Tellechea} that this +% package now deals with such source. Most of the macros of this part +% were created by the same Christian. +% +% First a bit of identification +% \begin{macrocode} +\ProvidesFile{paresseutf8.sto} +% \end{macrocode} +% followed by code partially taken from \texttt{utf8.def} for I wanted +% to implement the option \Option{tame} and, to do so, needed to +% redeclare the character \PS. Four macros are used in such a +% redeclaration and they are made unavailable outside preamble in +% \texttt{utf8.def}. +% +% The original \cs{DeclareUnicodeCharacter} depends on +% \cs{parse@XML@charref} which itself depends on \cs{parse@UTFviii@a} +% and \cs{parse@UTFviii@b}. Those two last macros are defined in terms +% of accessible macros. Therefore, I first create an alias of the last +% two and then define \cs{declareunicodecharacter} and +% \cs{GA@parse@XML@charref} in terms of the \emph{localised} version +% of \cs{parse@UTFviii@a} and \cs{parse@UTFviii@b}. +% +% To be on the safe side, I repeat the invocations of catcode of +% \texttt{utf8.def}. +% \begin{macrocode} +\begingroup +\catcode`\"=12 +\catcode`\<=12 +\catcode`\.=12 +\catcode`\,=12 +\catcode`\;=12 +\catcode`\!=12 +\catcode`\~=13 +\global\let\GA@parse@UTFviii@a=\parse@UTFviii@a +\global\let\GA@parse@UTFviii@b=\parse@UTFviii@b +\gdef\declareunicodecharacter#1#2{% + \count@"#1\relax + \wlog{\space\space Redefining Unicode char U+#1 (decimal \the\count@)}% + \begingroup + \GA@parse@XML@charref + \def\UTFviii@two@octets##1##2{\csname u8:##1\string##2\endcsname}% + \def\UTFviii@three@octets##1##2##3{\csname u8:##1% + \string##2\string##3\endcsname}% + \def\UTFviii@four@octets##1##2##3##4{\csname u8:##1% + \string##2\string##3\string##4\endcsname}% + \expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter + \expandafter + \gdef\UTFviii@tmp{\IeC{#2}}% + \endgroup} +\gdef\GA@parse@XML@charref{% + \ifnum\count@<"A0\relax + \PackageError{inputenc}{Cannot\space define\space Unicode\space + char\space value\space <\space 00A0}\@eha + \else\ifnum\count@<"800\relax + \GA@parse@UTFviii@a,% + \GA@parse@UTFviii@b C\UTFviii@two@octets.,% + \else\ifnum\count@<"10000\relax + \GA@parse@UTFviii@a;% + \GA@parse@UTFviii@a,% + \GA@parse@UTFviii@b E\UTFviii@three@octets.{,;}% + \else + \GA@parse@UTFviii@a;% + \GA@parse@UTFviii@a,% + \GA@parse@UTFviii@a!% + \GA@parse@UTFviii@b F\UTFviii@four@octets.{!,;}% + \fi + \fi +\fi} +\endgroup +% \end{macrocode} +% Here ends the \emph{localisation}. +% +% I provide the same macros as in the preceding case but in such a +% context \cs{makeparesseother} doesn't make sense. It just produces a +% warning. +% \begin{macrocode} +\newcommand{\makeparesseletter}{\DeclareUnicodeCharacter{00A7}\S} +\newcommand{\makeparesseother}{% + \PackageWarning{paresse}{% + Command \string\makeparesseother disabled}{% + The command \string\makeparesseother would have been meaningless + in the current context}} +% \end{macrocode} +% +% The end-user macro \cs{ActiveLaParesse} and the corresponding +% environment |ParesseActive|. +% +% The Unicode character of code \texttt{00A7} is made equal to the +% macro \cs{@paresse}. +% \begin{macrocode} +\newcommand{\ActiveLaParesse}{\declareunicodecharacter{00A7}\@paresse} +\newenvironment{ParesseActive}{\ActiveLaParesse}{} +% \end{macrocode} +% +% It's time to prepare the definition of the \PS-macros. To begin with +% we activate the character \PS. +% \begin{macrocode} +\ActiveLaParesse +% \end{macrocode} +% +% And now for the \emph{working} code: when the paresse is active, the +% byte \texttt{00A7} is an alias for \cs{@paresse} and, because of the +% following, the code \cs{@paresse}\meta{token} is changed into +% \cs{@i@paresse}\meta{token} with the side effect that \cs{@toks} is +% let to \meta{token}. +% \begin{macrocode} +\def\@paresse{\futurelet\@toks\@i@paresse} +% \end{macrocode} +% Then if \meta{token}, now ``in'' \cs{@toks}, has the same category +% than \texttt{a} --- hopefully a letter --- then we obtain +% \cs{@ii@paresse} else \cs{S}. +% +% \begin{macrocode} +\def\@i@paresse{% + \csname\ifcat a\@toks @ii@paresse\else S\fi\endcsname} +% \end{macrocode} +% At that point, the code which was \cs{@paresse}\meta{token} is +% either \cs{S}\meta{token} or \cs{@ii@paresse} which awaits for an +% argument. That argument will be the still present \meta{token}. +% +% If the command \cs{@paresse@}\meta{token} is defined then it does +% its job, else we obtain \cs{S}\meta{token}. +% \begin{macrocode} +\def\@ii@paresse#1{% + \ifcsname @paresse@#1\endcsname + \csname @paresse@#1\endcsname\expandafter\@gobble + \else + \expandafter\@firstofone + \fi{\S#1}} +% \end{macrocode} +% +% The next macro is used to define the \PS-macros. +% +% I have not used it in \texttt{paresseold.sto} for that definition +% prevent a feature I'm attached to, to wit, obtaining +% \(\alpha^{\beta}\) with |\(|\PSVerb{a}|^|\PSVerb{b}|\)|. I would +% have been loath to force some of the users to change their until now +% working sources. +% \begin{macrocode} +\def\define@paresse@car#1#2{% + \expandafter\def\csname @paresse@#1\endcsname{\ensuremath{#2}}} +% \end{macrocode} +% +% From now on, there are just definitions of \PS-macros. +% +% The first one, \PSVerb{Z} is new. +% \begin{macrocode} +\define@paresse@car Z\S +\define@paresse@car a\alpha +\define@paresse@car b\beta +\define@paresse@car g\gamma +\define@paresse@car d\delta +\define@paresse@car e\GA@epsilon +\define@paresse@car z\zeta +\define@paresse@car h\eta +\define@paresse@car i\iota +\define@paresse@car k\kappa +\define@paresse@car l\lambda +\define@paresse@car m\mu +\define@paresse@car n\nu +\define@paresse@car x\xi +\define@paresse@car p\GA@pi +\define@paresse@car r\GA@rho +\define@paresse@car s\GA@sigma +\define@paresse@car u\upsilon +\define@paresse@car f\GA@phi +\define@paresse@car w\omega +\iftogon{GA@legacy}{% + \define@paresse@car v\GA@theta + \define@paresse@car y\tau + \define@paresse@car c\chi + \define@paresse@car q\psi + \iftogon{GA@ttau}{% + \define@paresse@car t\tau}{% + \define@paresse@car t\GA@theta}}{% + \define@paresse@car j\GA@theta + \define@paresse@car t\tau + \define@paresse@car q\chi + \define@paresse@car y\psi + \define@paresse@car c\varsigma} +\define@paresse@car G\Gamma +\define@paresse@car D\Delta +\define@paresse@car L\Lambda +\define@paresse@car P\Pi +\define@paresse@car S\Sigma +\define@paresse@car U\Upsilon +\define@paresse@car F\Phi +\define@paresse@car X\Xi +\define@paresse@car W\Omega +\iftogon{GA@legacy}{% + \define@paresse@car V\Theta + \define@paresse@car T\Theta + \define@paresse@car Q\Psi}{% + \define@paresse@car J\Theta + \define@paresse@car Y\Psi}% +% \end{macrocode} +% +% At the end of the package, if the option \Option{tame} is chosen, \PS +% is made a letter again. +% \begin{macrocode} +\iftogon{GA@tame}{\makeparesseletter} +% \end{macrocode} +% +% And that's all for the file \texttt{paresseutf8.sto}. +% \iffalse +%</utf8pack> +% \fi +% \Finale +\endinput +%%% Local Variables: +%%% mode: doctex +%%% fill-column: 70 +%%% coding: iso-8859-15 +%%% TeX-master: t +%%% End: + diff --git a/macros/latex/contrib/paresse/paresse.ins b/macros/latex/contrib/paresse/paresse.ins new file mode 100644 index 0000000000..f5079fc407 --- /dev/null +++ b/macros/latex/contrib/paresse/paresse.ins @@ -0,0 +1,64 @@ +%% +%% Copyright (C) 2011, 2013 +%% by Yvon Henel alias 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. +%% +\input docstrip.tex +\keepsilent +\preamble +This is a generated file. + +Copyright (C) 2011, 2013 +by Yvon Henel, alias 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. +\endpreamble + +\askforoverwritefalse +\generate{ + \file{paresse.sty}{\from{paresse.dtx}{common,package}} + \file{paresseold.sto}{\from{paresse.dtx}{oldpack}} + \file{paresseutf8.sto}{\from{paresse.dtx}{utf8pack}} + \file{common.tex}{\from{paresse.dtx}{common}} + \file{paresse-en.ltx}{\from{paresse-doc.dtx}{doc,en}} + \file{paresse-fr.ltx}{\from{paresse-doc.dtx}{doc,fr}} + \file{paresse-ex-fr.elx}{\from{paresse-doc.dtx}{exemple,fr}} + \file{paresse-ex-en.elx}{\from{paresse-doc.dtx}{exemple,en}} + } +\obeyspaces +\Msg{*****************************************************************} +\Msg{* *} +\Msg{* To finish the installation you have to move the following *} +\Msg{* file into a directory searched by TeX: *} +\Msg{* paresse.sty *} +\Msg{*****************************************************************} +\Msg{* Pour finir l'installation vous devez placer *} +\Msg{* le fichier suivant dans un dossier parcouru par TeX: *} +\Msg{* paresse.sty *} +\Msg{* *} +\Msg{* To produce the documentation read the README file *} +\Msg{* Pour produire la documentation lire le fichier LISEZMOI *} +\Msg{* *} +\Msg{** Happy TeXing **} +\Msg{** TeXez dans la joie ! **} +\Msg{*****************************************************************} +\endbatchfile diff --git a/macros/latex/contrib/paresse/paresse.pdf b/macros/latex/contrib/paresse/paresse.pdf Binary files differnew file mode 100644 index 0000000000..fd9863db90 --- /dev/null +++ b/macros/latex/contrib/paresse/paresse.pdf diff --git a/macros/latex/contrib/paresse/paresse.sty b/macros/latex/contrib/paresse/paresse.sty new file mode 100644 index 0000000000..82e02574f6 --- /dev/null +++ b/macros/latex/contrib/paresse/paresse.sty @@ -0,0 +1,112 @@ +%% +%% This is file `paresse.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% paresse.dtx (with options: `common,package') +%% This is a generated file. +%% +%% Copyright (C) 2011, 2013 +%% by Yvon Henel, alias 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. +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\def\fileversion{v4.1} +\def\filedate{2013/02/16} +\def\fileinfo{fichier paresse par le TeXnicien de surface} +\ProvidesPackage{paresse} + [\filedate\space\fileversion\space\fileinfo] +\RequirePackage{skeyval-bc} +\RequirePackage{ifluatex} +\RequirePackage{ifxetex} +\define@bitogkeys[GA]{paresse.sty}[GA@]{legacy}[true]{levi}{}{} +\define@bitogkeys[GA]{paresse.sty}[GA@]{wild}[true]{tame}{}{} +\define@bitogkeys[GA]{paresse.sty}[GA@]{ttau}[true]{ttheta}{}{} +\define@bitogkeys[GA]{paresse.sty}[GA@]{varepsilon}[true]{epsilon}{}{} +\define@bitogkeys[GA]{paresse.sty}[GA@]{varphi}[true]{phi}{}{} +\define@bitogkeys[GA]{paresse.sty}[GA@]{pi}[true]{varpi}{}{} +\define@bitogkeys[GA]{paresse.sty}[GA@]{sigma}[true]{varsigma}{}{} +\define@bitogkeys[GA]{paresse.sty}[GA@]{rho}[true]{varrho}{}{} +\define@bitogkeys[GA]{paresse.sty}[GA@]{theta}[true]{vartheta}{}{} +\DeclareOptionX*{\PackageError{paresse} {The option "\CurrentOption" + 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 the character obtained by + \string\S\MessageBreak prints the section symbol \string\S). + \MessageBreak See the documentation for other options.}} +\ExecuteOptionsX[GA]{legacy,wild,varepsilon,theta,pi,rho,sigma,varphi} +\ProcessOptionsX[GA]\relax +\iftogon{GA@varepsilon}{% + \def\GA@epsilon{\varepsilon}}{\def\GA@epsilon{\epsilon}} +\iftogon{GA@vartheta}{\def\GA@theta{\vartheta}}{\def\GA@theta{\theta}} +\iftogon{GA@varpi}{\def\GA@pi{\varpi}}{\def\GA@pi{\pi}} +\iftogon{GA@varrho}{\def\GA@rho{\varrho}}{\def\GA@rho{\rho}} +\iftogon{GA@varsigma}{\def\GA@sigma{\varsigma}}{\def\GA@sigma{\sigma}} +\iftogon{GA@varphi}{\def\GA@phi{\varphi}}{\def\GA@phi{\phi}} +\ifluatex + \PackageInfo{paresse}{compiling with luatex} + \InputIfFileExists{paresseold.sto}{% + \PackageInfo{paresse}{paresseold loaded}}{% + \PackageInfo{paresse}{paresseold not loaded}} +\else + \ifxetex + \PackageInfo{paresse}{compiling with xetex} + \InputIfFileExists{paresseold.sto}{% + \PackageInfo{paresse}{paresseold loaded}}{% + \PackageInfo{paresse}{paresseold not loaded}} + \else +\newcommand\encoding@error{% + \@latex@error{% + paresse needs inputenc loaded with option "utf8" + or option such as "latin1" (8 bits encodign).}{}\stop} +\@ifpackageloaded{inputenc}\relax +{\PackageError{paresse}{% + Please, load inputenc package before paresse}{% + With LaTeX, "paresse" needs to know the encoding to work well and so + the package "inputenc" must be loaded, with \string\usepackage, before + loading "paresse" itself}} +\AtBeginDocument{% + \@ifpackageloaded{inputenc}\find@encoding\encoding@error} +\newtog[GA@]{utf8}[false] +\newcommand\find@encoding{% + \begingroup + \def\utf@encoding{utf8}% + \def\temp@a{\togoff{GA@utf8}% + \PackageInfo{paresse}{8-bit encoding expected\@gobble}} + \ifx\utf@encoding\inputencodingname + \def\temp@a{\togon{GA@utf8}% + \PackageInfo{paresse}{utf8 encoding detected\@gobble}} + \fi + \expandafter\endgroup\temp@a} +\AtBeginDocument{% + \makeatletter + \iftogoff{GA@utf8}{% + \InputIfFileExists{paresseold.sto}{% + \PackageInfo{paresse}{old loaded\@gobble}}{% + \PackageError{paresse}{paresseold.sto not found}{% + The package "paresse" needs to load the file "paresseold.sto" + but can't find it. Something seems to be broken in your TeX + system}}}{% + \InputIfFileExists{paresseutf8.sto}{% + \PackageInfo{paresse}{utf8 loaded\@gobble}}{% + \PackageError{paresse}{paresseutf8 not found}{% + The package "paresse" needs to load the file "paresseutf8.sto" + but can't find it. Something seems to be broken in your TeX + system}}} + \makeatother} +\fi +\fi +\endinput +%% +%% End of file `paresse.sty'. diff --git a/macros/latex/contrib/paresse/paresseold.sto b/macros/latex/contrib/paresse/paresseold.sto new file mode 100644 index 0000000000..be2832354f --- /dev/null +++ b/macros/latex/contrib/paresse/paresseold.sto @@ -0,0 +1,97 @@ +%% +%% This is file `paresseold.sto', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% paresse.dtx (with options: `oldpack') +%% This is a generated file. +%% +%% Copyright (C) 2011, 2013 +%% by Yvon Henel, alias 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. +\ProvidesFile{paresseold.sto} +\count@=\catcode`\^^a7 +\let\GA@LaVieilleParesse= ^^a7 +\def\^^a7{\S} +\newcommand{\makeparesseletter}{\catcode `\^^a7=11\relax} +\newcommand{\makeparesseother}{\catcode `\^^a7=12\relax} +\newcommand{\GA@MakeParesseActive}{\catcode `\^^a7=\active} +\def\GA@ActiveLaParessexii{\catcode `\^^a7=\active} +\def\GA@ActiveLaParessexiii{\catcode `\^^a7=\active + \def^^a7##1{\ensuremath{\csname \string^^a7##1\endcsname}}} +\ifnum\count@=12 + \let\GA@ActiveLaParesse \GA@ActiveLaParessexii +\else + \let\GA@ActiveLaParesse \GA@ActiveLaParessexiii +\fi +\newcommand{\ActiveLaParesse}{\GA@ActiveLaParesse} +\newenvironment{ParesseActive}{\GA@ActiveLaParesse}{} +\makeparesseletter +\def\^^a7a {\alpha} +\def\^^a7b {\beta} +\def\^^a7g {\gamma} +\def\^^a7d {\delta} +\def\^^a7e {\GA@epsilon} +\def\^^a7z {\zeta} +\def\^^a7h {\eta} +\def\^^a7i {\iota} +\def\^^a7k {\kappa} +\def\^^a7l {\lambda} +\def\^^a7m {\mu} +\def\^^a7n {\nu} +\def\^^a7x {\xi} +\def\^^a7p {\GA@pi} +\def\^^a7r {\GA@rho} +\def\^^a7s {\GA@sigma} +\def\^^a7u {\upsilon} +\def\^^a7f {\GA@phi} +\def\^^a7w {\omega} +\iftogon{GA@legacy}{% + \def\^^a7v {\GA@theta} + \def\^^a7y {\tau} + \def\^^a7c {\chi} + \def\^^a7q {\psi} + \iftogon{GA@ttau}{\def\^^a7t {\tau}}{\def\^^a7t {\GA@theta}}}{% + \def\^^a7j {\GA@theta} + \def\^^a7t {\tau} + \def\^^a7q {\chi} + \def\^^a7y {\psi} + \def\^^a7c {\varsigma}} +\def\^^a7G {\Gamma} +\def\^^a7D {\Delta} +\def\^^a7L {\Lambda} +\def\^^a7P {\Pi} +\def\^^a7S {\Sigma} +\def\^^a7U {\Upsilon} +\def\^^a7F {\Phi} +\def\^^a7X {\Xi} +\def\^^a7W {\Omega} +\iftogon{GA@legacy}{% + \def\^^a7V {\Theta} + \def\^^a7T {\Theta} + \def\^^a7Q {\Psi} +}{% + \def\^^a7J {\Theta} + \def\^^a7Y {\Psi} +}% +\def\^^a7Z {\S} +\catcode `\^^a7=\active +\def^^a7#1{\ensuremath{\csname \string^^a7#1\endcsname}} +\iftogon{GA@tame}{% + \catcode`\^^a7=\count@ + \ifnum\count@=13 \let ^^a7=\GA@LaVieilleParesse \fi +}% +\endinput +%% +%% End of file `paresseold.sto'. diff --git a/macros/latex/contrib/paresse/paresseutf8.sto b/macros/latex/contrib/paresse/paresseutf8.sto new file mode 100644 index 0000000000..0f232d83c4 --- /dev/null +++ b/macros/latex/contrib/paresse/paresseutf8.sto @@ -0,0 +1,140 @@ +%% +%% This is file `paresseutf8.sto', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% paresse.dtx (with options: `utf8pack') +%% This is a generated file. +%% +%% Copyright (C) 2011, 2013 +%% by Yvon Henel, alias 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. +\ProvidesFile{paresseutf8.sto} +\begingroup +\catcode`\"=12 +\catcode`\<=12 +\catcode`\.=12 +\catcode`\,=12 +\catcode`\;=12 +\catcode`\!=12 +\catcode`\~=13 +\global\let\GA@parse@UTFviii@a=\parse@UTFviii@a +\global\let\GA@parse@UTFviii@b=\parse@UTFviii@b +\gdef\declareunicodecharacter#1#2{% + \count@"#1\relax + \wlog{\space\space Redefining Unicode char U+#1 (decimal \the\count@)}% + \begingroup + \GA@parse@XML@charref + \def\UTFviii@two@octets##1##2{\csname u8:##1\string##2\endcsname}% + \def\UTFviii@three@octets##1##2##3{\csname u8:##1% + \string##2\string##3\endcsname}% + \def\UTFviii@four@octets##1##2##3##4{\csname u8:##1% + \string##2\string##3\string##4\endcsname}% + \expandafter\expandafter\expandafter + \expandafter\expandafter\expandafter + \expandafter + \gdef\UTFviii@tmp{\IeC{#2}}% + \endgroup} +\gdef\GA@parse@XML@charref{% + \ifnum\count@<"A0\relax + \PackageError{inputenc}{Cannot\space define\space Unicode\space + char\space value\space <\space 00A0}\@eha + \else\ifnum\count@<"800\relax + \GA@parse@UTFviii@a,% + \GA@parse@UTFviii@b C\UTFviii@two@octets.,% + \else\ifnum\count@<"10000\relax + \GA@parse@UTFviii@a;% + \GA@parse@UTFviii@a,% + \GA@parse@UTFviii@b E\UTFviii@three@octets.{,;}% + \else + \GA@parse@UTFviii@a;% + \GA@parse@UTFviii@a,% + \GA@parse@UTFviii@a!% + \GA@parse@UTFviii@b F\UTFviii@four@octets.{!,;}% + \fi + \fi +\fi} +\endgroup +\newcommand{\makeparesseletter}{\DeclareUnicodeCharacter{00A7}\S} +\newcommand{\makeparesseother}{% + \PackageWarning{paresse}{% + Command \string\makeparesseother disabled}{% + The command \string\makeparesseother would have been meaningless + in the current context}} +\newcommand{\ActiveLaParesse}{\declareunicodecharacter{00A7}\@paresse} +\newenvironment{ParesseActive}{\ActiveLaParesse}{} +\ActiveLaParesse +\def\@paresse{\futurelet\@toks\@i@paresse} +\def\@i@paresse{% + \csname\ifcat a\@toks @ii@paresse\else S\fi\endcsname} +\def\@ii@paresse#1{% + \ifcsname @paresse@#1\endcsname + \csname @paresse@#1\endcsname\expandafter\@gobble + \else + \expandafter\@firstofone + \fi{\S#1}} +\def\define@paresse@car#1#2{% + \expandafter\def\csname @paresse@#1\endcsname{\ensuremath{#2}}} +\define@paresse@car Z\S +\define@paresse@car a\alpha +\define@paresse@car b\beta +\define@paresse@car g\gamma +\define@paresse@car d\delta +\define@paresse@car e\GA@epsilon +\define@paresse@car z\zeta +\define@paresse@car h\eta +\define@paresse@car i\iota +\define@paresse@car k\kappa +\define@paresse@car l\lambda +\define@paresse@car m\mu +\define@paresse@car n\nu +\define@paresse@car x\xi +\define@paresse@car p\GA@pi +\define@paresse@car r\GA@rho +\define@paresse@car s\GA@sigma +\define@paresse@car u\upsilon +\define@paresse@car f\GA@phi +\define@paresse@car w\omega +\iftogon{GA@legacy}{% + \define@paresse@car v\GA@theta + \define@paresse@car y\tau + \define@paresse@car c\chi + \define@paresse@car q\psi + \iftogon{GA@ttau}{% + \define@paresse@car t\tau}{% + \define@paresse@car t\GA@theta}}{% + \define@paresse@car j\GA@theta + \define@paresse@car t\tau + \define@paresse@car q\chi + \define@paresse@car y\psi + \define@paresse@car c\varsigma} +\define@paresse@car G\Gamma +\define@paresse@car D\Delta +\define@paresse@car L\Lambda +\define@paresse@car P\Pi +\define@paresse@car S\Sigma +\define@paresse@car U\Upsilon +\define@paresse@car F\Phi +\define@paresse@car X\Xi +\define@paresse@car W\Omega +\iftogon{GA@legacy}{% + \define@paresse@car V\Theta + \define@paresse@car T\Theta + \define@paresse@car Q\Psi}{% + \define@paresse@car J\Theta + \define@paresse@car Y\Psi}% +\iftogon{GA@tame}{\makeparesseletter} +\endinput +%% +%% End of file `paresseutf8.sto'. |