% \iffalse meta-comment
%
%% File: paresse.dtx
%% Copyright (C) 2021 Yvon Henel aka Le TeXnicien de surface
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
%% license or (at your option) any later version. The latest version
%% of this license is in the file
%%
%% http://www.latex-project.org/lppl.txt
%%
%
%<*driver|package|doc>
\RequirePackage{expl3}[2020/09/24]
\GetIdInfo$Id: paresse.dtx 5.0.2 2021-05-16 TdS $
{}
%
%<*driver>
\documentclass[full, english, draft]{l3doc}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage[french,main=english]{babel}
\usepackage{xspace}
\usepackage{paresse}[2021-05-16]
\newcommand*\PS{\texttt{\S}\xspace}
\newcommand*\PSVerb[1]{\texttt{\S #1}}
\newcommand\BOP{\discretionary{}{}{}}
\newcommand\Option[1]{\textsc{#1}}
\begin{document}
\DocInput{\jobname.dtx}
\end{document}
%
% \fi
%
% \title{^^A
% The \pkg{paresse} package^^A
% \thanks{This file describes v\ExplFileVersion, last revised \ExplFileDate.}^^A
% }
%
% \author{^^A
% Yvon Henel\thanks^^A
% {^^A
% E-mail:
% \href{mailto:le.texnicien.de.surface@yvon-henel.fr}
% {le.texnicien.de.surface@yvon-henel.fr}^^A
% }^^A
% }
%
% \date{Released \ExplFileDate}
%
% \maketitle
%
% \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}
% \changes{v5.0}{2020/10/06}{Uses expl3 to replace skeyval.}
% \changes{v5.0}{2020/10/06}{Two sub-packages.}
% \changes{v5.0}{2020/10/06}{\cs{varsigma} is added as \PSVerb{j} to legacy encoding.}
% \changes{v5.0.1}{2020/10/10}{Bug correction: keys ttheta and ttau had disappeared.}
% \changes{v5.0.1}{2020/10/10}{Some changes in documentation.}
% \changes{v5.0.2}{2021/05/16}{Correction of a typo in documentation.}
%
% \thispagestyle{empty}
%
% \noindent\hrulefill
%
% \bgroup
% \begin{otherlanguage}{french}
% \begin{abstract}
% Cette extension, 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.
%
% Depuis la 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-fra}.
% \end{abstract}
% \end{otherlanguage}
% \egroup
%
% \noindent\hrulefill
%
% \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.
%
% Since 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-eng}.
% \end{abstract}
%
% \noindent\hrulefill
%
% \DisableDocumentation
%
% \begin{documentation}
% \end{documentation}
%
% \iffalse
%<*doc>
%\documentclass[full, french]{l3doc}
%\documentclass[full, english]{l3doc}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
%\usepackage[english,main=french]{babel}
%\usepackage[french,main=english]{babel}
\usepackage{xparse}
\usepackage{xspace}
\usepackage[tame]{paresse}[2020-10-06]
\newcommand*\PS{\texttt{\S}\xspace}
\newcommand*\PSVerb[1]{\texttt{\S #1}}
\newcommand\BOP{\discretionary{}{}{}}
\newcommand\Option[1]{\textsc{#1}}
\newcommand{\TO}{\textemdash\ \ignorespaces}
\newcommand{\TF}{\unskip\ \textemdash\xspace}
\begin{document}
%<*FRA>
\title{Guide de l'utilisateur de \pkg{paresse}\thanks{Ce fichier décrit la
version~\ExplFileVersion, dernière révision~\ExplFileDate. Édition
\emph{Adieu à skeyval}.}}
%
%<*ENG>
\title{\pkg{paresse} user guide\thanks{This file describes
version~\ExplFileVersion, last revised~\ExplFileDate. \emph{Adieu to
skeyval} edition.}}
%
\author{Yvon Henel\thanks{E-mail:
\href{mailto:le.texnicien.de.surface@yvon-henel.fr}
{le.texnicien.de.surface@yvon-henel.fr}}}
\maketitle
\noindent\hrulefill
\begin{abstract}
%<*FRA>
Cette extension, 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.
Depuis la version~4, on peut utiliser cette extension même dans un source
codé en utf-8 avec \hologo{LaTeX}, \hologo{LuaLaTeX} ou \hologo{XeLaTeX}.
%
%<*ENG>
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.
Since version~4, one can use this package even with utf8-encoded source for
\hologo{LaTeX}, \hologo{LuaLaTeX}, or \hologo{XeLaTeX}.
%
\end{abstract}
\noindent\hrulefill
% \begin{otherlanguage}{english}
% \begin{otherlanguage}{french}
\begin{abstract}
%<*FRA>
The English documentation for the final user of the package
\pkg{paresse} is available in the file \texttt{paresse-eng}.
%
%<*ENG>
La documentation française pour l'utilisateur de l'extension
\pkg{paresse} est disponible sous le nom de \texttt{paresse-fra}.
%
\end{abstract}
\end{otherlanguage}
\noindent\hrulefill
\vspace{\baselineskip}
\tableofcontents{}
%<*FRA>
\section{Introduction}
\label{sec: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 \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.
%
%<*ENG>
\section{Introduction}
\label{sec:introduction}
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.
%
%<*FRA>
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.
%
%<*ENG>
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.
%
%<*FRA>
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.
%
%<*ENG>
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.
%
%<*FRA>
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
%
%<*ENG>
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{}
%
%\subsection{Pourquoi une 5\ieme version?}
%\subsection{Why a 5th Version?}
%<*FRA>
\emph{Sur mon brin de laurier, je dormais comme un loir} en utilisant
\pkg{paresse} presque quotidiennement quand il y a quelques jours, patatras!
Plus rien ne va, je me fais insulter rien qu'à charger l'extension. Je passe sur
les détails: la faute en revient à une modification du noyau qui vient perturber
le code acrobatique de \pkg{skeyval}. Comme la mise à jour de la dite extension
semble extrèmement improbable, j'ai décidé de réparer \pkg{paresse} en recourant
aux commandes de expl3.
Ce n'est donc que pour remettre en marche ce dont je me sers souvent que je
viens soulever le capot de cette extension vieille de plus de 7~ans.
%
%<*ENG>
I was happily using \pkg{paresse} almost every day until when, some days ago,
all hell broke loose! I was insulted just by loading \pkg{paresse}. To put it in
a nutshell: the culprit is an improvement of the \LaTeXe{} kernel which wreaks
havoc in the highly unconventional code of \pkg{skeyval}. As it seems very
improbable that that package will be corrected any time soon, I've decided to
rewrite some parts of \pkg{paresse} with expl3.
So that is why I touch the more than seven-year-old code of this package.
%
%<*FRA>
Avec cette 5\ieme version, apparaissent deux \emph{sous}-extensions:
\pkg{paresse-old} et \pkg{paresse-utf8} que l'on peut charger directement et qui
offrent les mêmes options et les mêmes commandes. De fait, \pkg{paresse} charge
l'une ou l'autre suivant la situation.
%
%<*ENG>
With this 5th version come two \emph{sub}-packages: \pkg{paresse-old} and
\pkg{paresse-utf8} which are directly loadable. They have the same options and
commands as \pkg{paresse} itself. In fact \pkg{paresse} loads one of them
according to the situation.
%
%<*FRA>
On utilisera \pkg{paresse-utf8} uniquement si le source est codé en utf-8 et que
l'on compile avec \texttt{latex} c.-à-d. avec le moteur \TeX{} et le format
\LaTeX{}. Dans tous les autres cas de figure on utilisera \pkg{paresse-old}.
%
%<*ENG>
One will use \pkg{paresse-utf8} if and only if the source is utf-8 encoded and
compiled with \texttt{latex} i.~e. with the \TeX-engine and the \LaTeX{}
format. In all other case, on will use \pkg{paresse-old}.
%
%<*FRA>
La documentation de \pkg{paresse} couvre donc l'utilisation des trois
extensions.
%
%<*ENG>
The documentation of \pkg{paresse} covers the use of the three packages.
%
%\subsection{Pourquoi une 4\ieme version?}
%\subsection{Why a 4th Version?}
%<*FRA>
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\footnote{J'ai écrit cette
section à l'occasion de la sortie de la 4\ieme version, en 2013.}\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.
%
%<*ENG>
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\footnote{I wrote this section in 2013 when the 4th version was
published.}\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.
%
%<*FRA>
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}.
%
%<*ENG>
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}.
%
%<*FRA>
J'ai profité de cette nouvelle version pour ajouter une macro en \PS:
\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.
%
%<*ENG>
I take advantage of this new version to add a \PS-macro:
\PSVerb{Z} which produces \S, symbol already available with
|\S|, so I don't dare to present it as a real ``shortcut''.
%
%\subsection{Pourquoi une 3\ieme version?}
%\subsection{Why a 3rd Version?}
%<*FRA>
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}.
%
%<*ENG>
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}.
%
%<*FRA>
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}.
%
%<*ENG>
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.
%
%<*FRA>
J'en profite pour faire quelques changements cosmétiques:
désormais toutes les macros internes \emph{secrètes}\footnote{À la mode
\LaTeXe{}, pour la version~5.0 j'utilise en partie expl3 et, dans ce cas,
le préfixe \texttt{paresse}.} ont un nom qui
commence par \cs{GA@};
le fichier |.dtx| est réorganisé pour faciliter la tache de
traduction de la documentation.
%
%<*ENG>
I take advantage of this update to make some cosmetic changes: from now on
all inner \emph{secret} macros\footnote{Macros \emph{à la mode}
\LaTeXe{}. As of version~5.0, partially \emph{translated} in expl3, when
dealing with expl3 commands and variables I use the prefix
\texttt{paresse}.} have a name which begins with \cs{GA@}; the |.dtx|
file is reorganised to facilitate the translation of the documentation.
%
%\section{Utilisation}
%\section{Usage}
%<*FRA>
On charge cette extension avec |\usepackage{paresse}|. Quand on utilise
\hologo{LaTeX} avec un codage 8-bits (comme \texttt{latin9} par exemple),
on la charge \textbf{après} l'extension \pkg{inputenc} avec l'option
idoine. Avec un \hologo{LaTeX} moderne \TO post 2019\TF et un source codé
en utf-8, on n'a pas besoin de charger explicitement \pkg{inputenc}. Dans
ce cas, \pkg{paresse} suppose que le source est codé en utf-8.
Dans tous les cas il faut que le \og caractère \fg § soit reconnu par \TeX\
comme une lettre.
% On pourra, par exemple, utiliser l'option \texttt{latin1} de
% \pkg{inputenc} pour obtenir cela.
On obtiendra le même comportement, à l'exception \TO signalée dans le
paragraphe intitulé \textbf{restriction} page~\pageref{restriction}\TF
près, avec \pkg{inputenc} et l'option \texttt{utf8}.
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.
%
%<*ENG>
One loads the package with |\usepackage{paresse}|.
When one uses \hologo{LaTeX} with an 8-bit encoded source
(e.g. \texttt{latin9}), one must load \pkg{paresse} \textbf{after} the
package \pkg{inputenc} whith the correct option.
In all cases 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 in
paragraph \textbf{restriction} on page~\pageref{restriction}, with
\pkg{inputenc} and option \texttt{utf8}.
There is no such restriction when one compiles with \hologo{LuaLaTeX}
or \hologo{XeLaTeX} a source encoded in utf-8.
%
%<*FRA>
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 à \pkg{paresse} l'option \Option{tame} avec
|\usepackage[tame]|\BOP|{paresse}|. Il faut alors utiliser la commande
\cs{ActiveLaParesse} ou l'environnement |ParesseActive| pour utiliser
les macros en~§.
%
%<*ENG>
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]|\BOP|{paresse}|. One
must then use the command \cs{ActiveLaParesse} or the environment
|ParesseActive| to use the `§-macros'.
%
%<*FRA>
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.
%
%<*ENG>
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.
%
\paragraph{Restriction}
%<*FRA>
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}
%
%<*ENG>
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}
%
%<*ENG>
\section{The Package Options}
\label{sec:keys}
In the margin the default options are in boldface.
%
%<*FRA>
\section{Les options de l'extension}
\label{sec:clefs}
Dans la marge, les options par défaut sont données en gras.
%
\begin{itemize}
%<*FRA>
\item \Option{tame} \DescribeOption{tame / \textbf{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 à §.
%
%<*ENG>
\item \Option{tame} \DescribeOption{tame / \textbf{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.
%
%<*FRA>
\item \Option{Levi} \DescribeOption{\textbf{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} tel que le donne la
table~\ref{codageorig}. Sinon, le codage est celui défini par Sylvio
\textsc{Levi}, cf. la table~\ref{codagelevi}.
%
%<*ENG>
\item \Option{Levi} \DescribeOption{\textbf{legacy} / Levi} is the
contrary of \Option{legacy} which is the default. With
\Option{legacy} one uses the original encoding of
\pkg{paresse} 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}.
%
%<*FRA>
\item \Option{ttau} \DescribeOption{ttau / \textbf{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.
%
%<*ENG>
\item \Option{ttau} \DescribeOption{ttau / \textbf{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}.
%
%<*FRA>
\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.
%
%<*ENG>
\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.
%
%<*FRA>
\item \Option{epsilon} \DescribeOption{epsilon / \textbf{varepsilon}} s'oppose à
\Option{varepsilon} qui est l'option par défaut. Avec
\Option{epsilon}, |§e| donne \(\epsilon\) sinon |§e| donne
\(\varepsilon\).
%
%<*ENG>
\item \Option{epsilon} \DescribeOption{epsilon / \textbf{varepsilon}} is the
contrary of \Option{varepsilon} which is selected by default. With
\Option{epsilon}, |§e| gives \(\epsilon\) otherwise |§e| gives
\(\varepsilon\).
%
%<*FRA>
\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}.
%
%<*ENG>
\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}.
%
\end{itemize}
%<*FRA>
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.
%
%<*ENG>
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.
%
%\section{Commandes et environnement}
%\section{Commands and Environment}
\DescribeMacro{\makeparesseletter}
%<*FRA>
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}.
%
%<*ENG>
This command gives the letter-catcode to the `character' §. After that
one can use § in the name of a macro, for instance. It corresponds to
the well-known |\makeatletter|.
%
\DescribeMacro{\makeparesseother}
%<*FRA>
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|.
%
%<*ENG>
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.
%
\DescribeMacro{\ActiveLaParesse}
%<*FRA>
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}.
%
%<*ENG>
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}.
%
\DescribeEnv{ParesseActive}
%<*FRA>
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}.
%
%<*ENG>
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} is loaded whith the option \texttt{tame}.
%
\newpage{}
%\section{Tableaux des macros}
%\section{Tables of the Macros}
%\subsection{Codage originel de \pkg{paresse}}
%\subsection{\pkg{paresse}'s Original Encoding}
%<*FRA>
C'est le codage actif lorsque l'on a choisit les options \Option{legacy} et
\Option{ttheta} qui sont des options par défaut.
Cette version~5.0 ajoute \(\varsigma\) obtenu avec \PSVerb{j}.
%
%<*ENG>
This is the active encoding when one choses the options \Option{legacy} and
\Option{ttheta} which are the default.
This version~5.0 adds \(\varsigma\) obtained with \PSVerb{j}.
%
\begin{center}\Large
\begin{ParesseActive} \label{codageorig}
\begin{tabular}{*4{||>{\ttfamily \S}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 & j & §j\\ \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}
\vspace{2\baselineskip}
\begin{center}\Large
\begin{ParesseActive} \label{codageorig}
\begin{tabular}{*7{||>{\ttfamily \S}c|c}||}\hline
a&§a&b&§b&c&§c&d&§d&e&§e&f&§f\\ \hline
g&§g&h&§h&i&§i&j&§j&k&§k&l&§l\\ \hline
m&§m&n&§n&o& &p&§p&q&§q&r&§r\\ \hline
s&§s&t&§t&u&§u&v&§v&w&§w&x&§x\\ \hline
y&§y&z&§z&A& &B& &C& &D&§D\\ \hline
E& &F&§F&G&§G&H& &I& &J& \\ \hline
K& &L&§L&M& &N& &O& &P&§P\\ \hline
Q&§Q&R& &S&§S&T&§T&U&§U&V&§V\\ \hline
W&§W&X&§X&Y& &Z&§Z&\multicolumn{4}{c||}{}\\ \hline
\end{tabular}
\end{ParesseActive}
\end{center}
%<*FRA>
\paragraph{Remarques : } à l'exception de {\ActiveLaParesse §v, §y, §q et §j}
les lettres utilisées dans les noms des macros sont chargées de vertu
mnémotechniques \texttt{:-)} et les capitales grecques, quand elles différent
des capitales latines, s'obtiennent à l'aide de la majuscule correspondante.
%
%<*ENG>
\paragraph{Remarks : } all the latin letters used in the name of the
§-macros, but for {\ActiveLaParesse §v, §y, §q and §j}, are loaded with
reminiscences, I hope \texttt{:-)} and the greek uppercases are
obtained with the (latin) corresponding uppercases.
%
\pagebreak[4]
%\subsection{Codage de Sylvio \textsc{Levi}}
%\subsection{Sylvio \textsc{Levi}'s Encoding}
%<*FRA>
On active ce codage avec l'option \Option{Levi}.
%
%<*ENG>
One make this encoding active with the option \Option{Levi}.
%
\begin{center}\Large
\begin{ParesseActive} \label{codagelevi}
\begin{tabular}{*4{||>{\ttfamily \S}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}
%<*FRA>
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:
%
%<*ENG>
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:
%
\begin{center}
\newcommand\CT[1]{\multicolumn{1}{c|}{\texttt{#1}}}
\begin{ParesseActive}
\begin{tabular}{|l|*{7}{c|}}\hline
%lettres grecques
%greek letters
& §v & §y & §c & §q & §V & §Q & \(\varsigma\)\\\hline
%codage originel
%original encoding
&\CT{\S{}v/\S{}t}&\CT{\S{}y/\S{}t}&\CT{\S{}c}
&\CT{\S{}q}&\CT{\S{}V/\S{}T}&\CT{\S{}Q}& \CT{\S{}j} \\\hline
%codage de S. \textsc{Levi}
%S. \textsc{Levi}'s encoding
&\CT{\S{}j}&\CT{\S{}t}&\CT{\S{}q}&\CT{\S{}y}
&\CT{\S{}J}&\CT{\S{}Y} & \CT{\S{}c}\\\hline
\end{tabular}
\end{ParesseActive}
\end{center}
\vspace{\stretch{2}}
\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}
\vspace{\stretch{2}}
\noindent\hspace*{0.2\textwidth}\hrulefill\hspace*{0.2\textwidth}
\begin{center}
\textsl{Le TeXnicien de Surface scripsit.}
\end{center}
\noindent\hspace*{0.2\textwidth}\hrulefill\hspace*{0.2\textwidth}
\vspace*{\stretch{2}}
\end{document}
%
% \fi
% \begin{implementation}
%
% \section{\pkg{paresse} implementation}
%
% Three packages are coded below: the main one \pkg{paresse} loads one of the
% other two \pkg{paresse-old} or \pkg{paresse-utf8} depending on the
% \TeX{}-engine used and the encoding of the source.
%
% \iffalse
%<*package>
% \fi
% The prefix is \texttt{paresse} for the three packages.
% \begin{macrocode}
%<@@=paresse>
% \end{macrocode}
%
% \iffalse
%<*MAIN>
% \fi
% The main package \pkg{paresse} begins here.
% \begin{macrocode}
\ProvidesExplPackage
{\ExplFileName}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
% \end{macrocode}
% \iffalse
%
% \fi
% \iffalse
%<*OLD>
% \fi
% Header of \pkg{paresse-old}:
% \begin{macrocode}
\ProvidesExplPackage
{\ExplFileName-old}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
% \end{macrocode}
% \iffalse
%
% \fi
% \iffalse
%<*UTF>
% \fi
% Header of \pkg{paresse-utf8}:
% \begin{macrocode}
\ProvidesExplPackage
{\ExplFileName-utf8}{\ExplFileDate}{\ExplFileVersion}{\ExplFileDescription}
% \end{macrocode}
% \iffalse
%
% \fi
%
% The three packages require \pkg{xparse} and \pkg{l3keys2}:
% \begin{macrocode}
\RequirePackage{xparse}
\RequirePackage{l3keys2e}
% \end{macrocode}
% \iffalse
%<*MAIN>
% \fi
% but the main \pkg{paresse} alone requires \pkg{iftex} to proceed according to
% the \TeX-engine.
% \begin{macrocode}
\RequirePackage{iftex}
% \end{macrocode}
% \iffalse
%
% \fi
%
% \iffalse
%<*!MAIN>
% \fi
% \begin{macrocode}
\cs_if_exist:NF \@@_main_package_loaded:
{
% \end{macrocode}
% \iffalse
%!MAIN>
% \fi
%
% \begin{macrocode}
\keys_define:nn {paresse}
{
encoding_is_legacy .bool_set:N = \g_@@_encoding_is_legacy_bool,
encoding_is_levi .bool_set_inverse:N =
\g_@@_encoding_is_legacy_bool,
legacy .meta:n = {
encoding_is_legacy = #1
},
legacy .default:n = {true},
legacy .initial:n = {true},
levi .meta:n = {
encoding_is_levi = #1
},
levi .default:n = {true},
levi .initial:n = {false},
mood_is_wild .bool_set:N = \g_@@_mood_is_wild_bool,
mood_is_tame .bool_set_inverse:N =
\g_@@_mood_is_wild_bool,
wild .meta:n = {
mood_is_wild = #1
},
wild .default:n = {true},
wild .initial:n = {true},
tame .meta:n = {
mood_is_tame = #1
},
tame .default:n = {true},
tame .initial:n = {false},
letter_t_is_theta .bool_set:N =
\g_@@_letter_t_is_theta_bool,
letter_t_is_tau .bool_set_inverse:N =
\g_@@_letter_t_is_theta_bool,
ttheta .meta:n = {
letter_t_is_theta = #1
},
ttheta .default:n = {true},
ttheta .initial:n = {true},
ttau .meta:n = {
letter_t_is_tau = #1
},
ttau .default:n = {true},
ttau .initial:n = {false},
letter_theta_is_theta .bool_set:N =
\g_@@_letter_theta_is_theta_bool,
letter_theta_is_vartheta .bool_set_inverse:N =
\g_@@_letter_theta_is_theta_bool,
theta .meta:n = {
letter_theta_is_theta = #1
},
theta .default:n = {true},
theta .initial:n = {true},
vartheta .meta:n = {
letter_theta_is_vartheta = #1
},
vartheta .default:n = {true},
vartheta .initial:n = {false},
letter_pi_is_pi .bool_set:N =
\g_@@_letter_pi_is_pi_bool,
letter_pi_is_varpi .bool_set_inverse:N =
\g_@@_letter_pi_is_pi_bool,
pi .meta:n = {
letter_pi_is_pi = #1
},
pi .default:n = {true},
pi .initial:n = {true},
varpi .meta:n = {
letter_pi_is_varpi = #1
},
varpi .default:n = {true},
varpi .initial:n = {false},
letter_rho_is_rho .bool_set:N =
\g_@@_letter_rho_is_rho_bool,
letter_rho_is_varrho .bool_set_inverse:N =
\g_@@_letter_rho_is_rho_bool,
rho .meta:n = {
letter_rho_is_rho = #1
},
rho .default:n = {true},
rho .initial:n = {true},
varrho .meta:n = {
letter_rho_is_varrho = #1
},
varrho .default:n = {true},
varrho .initial:n = {false},
letter_sigma_is_sigma .bool_set:N =
\g_@@_letter_sigma_is_sigma_bool,
letter_sigma_is_varsigma .bool_set_inverse:N =
\g_@@_letter_sigma_is_sigma_bool,
sigma .meta:n = {
letter_sigma_is_sigma = #1
},
sigma .default:n = {true},
sigma .initial:n = {true},
varsigma .meta:n = {
letter_sigma_is_varsigma = #1
},
varsigma .default:n = {true},
varsigma .initial:n = {false},
letter_epsilon_is_epsilon .bool_set:N =
\g_@@_letter_epsilon_is_epsilon_bool,
letter_epsilon_is_varepsilon .bool_set_inverse:N =
\g_@@_letter_epsilon_is_epsilon_bool,
epsilon .meta:n = {
letter_epsilon_is_epsilon = #1
},
epsilon .default:n = {true},
epsilon .initial:n = {false},
varepsilon .meta:n = {
letter_epsilon_is_varepsilon = #1
},
varepsilon .default:n = {true},
varepsilon .initial:n = {true},
letter_phi_is_phi .bool_set:N =
\g_@@_letter_phi_is_phi_bool,
letter_phi_is_varphi .bool_set_inverse:N =
\g_@@_letter_phi_is_phi_bool,
phi .meta:n = {
letter_phi_is_phi = #1
},
phi .default:n = {true},
phi .initial:n = {false},
varphi .meta:n = {
letter_phi_is_varphi = #1
},
varphi .default:n = {true},
varphi .initial:n = {true},
}
% \end{macrocode}
%
% \begin{macrocode}
\ProcessKeysOptions {paresse}
% \end{macrocode}
%
% \begin{macrocode}
\bool_if:nTF {\g_@@_letter_epsilon_is_epsilon_bool}
{\cs_new:Npn \@@_epsilon {\epsilon}}
{\cs_new:Npn \@@_epsilon {\varepsilon}}
\bool_if:nTF {\g_@@_letter_theta_is_theta_bool}
{\cs_new:Npn \@@_theta {\theta}}
{\cs_new:Npn \@@_theta {\vartheta}}
\bool_if:nTF {\g_@@_letter_pi_is_pi_bool}
{\cs_new:Npn \@@_pi {\pi}}
{\cs_new:Npn \@@_pi {\varpi}}
\bool_if:nTF {\g_@@_letter_rho_is_rho_bool}
{\cs_new:Npn \@@_rho {\rho}}
{\cs_new:Npn \@@_rho {\varrho}}
\bool_if:nTF {\g_@@_letter_sigma_is_sigma_bool}
{\cs_new:Npn \@@_sigma {\sigma}}
{\cs_new:Npn \@@_sigma {\varsigma}}
\bool_if:nTF {\g_@@_letter_phi_is_phi_bool}
{\cs_new:Npn \@@_phi {\phi}}
{\cs_new:Npn \@@_phi {\varphi}}
\bool_new:c {g__paresse_file_encoding_is_utf8_bool}
% \end{macrocode}
%
% \iffalse
%<*!MAIN>
% \fi
% \begin{macrocode}
}
% \end{macrocode}
% \iffalse
%!MAIN>
% \fi
% \iffalse
%<*MAIN>
% \fi
% \begin{macrocode}
\cs_new:Nn \__paresse_main_package_loaded: {}
% \end{macrocode}
%
% \begin{macrocode}
\ifluatex
% \end{macrocode}
% luatex specific code
% \begin{macrocode}
\PackageInfo{paresse}{compiling~with~luatex}
\RequirePackageWithOptions{paresse-old}
\else
% \end{macrocode}
% code for other engines
% \begin{macrocode}
\ifxetex
% \end{macrocode}
% xetex specific code
% \begin{macrocode}
\PackageInfo{paresse}{compiling~with~xetex}
\RequirePackageWithOptions{paresse-old}
\else
% \end{macrocode}
% nor luatex nor xetex
% \begin{macrocode}
\PackageInfo{paresse}{compiling~with~tex}
\newcommand\default@encoding@message{
\bool_gset_true:c {g__paresse_file_encoding_is_utf8_bool}
\PackageWarningNoLine{paresse}{
The~package~"paresse"~expects~a~"utf8"~encoded~file.~
In~case~of~an~8~bits~encoding,~
please~use~inputenc~with~the~correct~option}
}
\newcommand\find@encoding{
\begingroup
\def\utf@encoding{utf8}
\def\temp@a{
\bool_gset_false:c {g__paresse_file_encoding_is_utf8_bool}
\PackageInfo{paresse}{8-bit~encoding~expected\@gobble}
}
\ifx\utf@encoding\inputencodingname
\def\temp@a{
\bool_gset_true:c {g__paresse_file_encoding_is_utf8_bool}
\PackageInfo{paresse}{utf8~encoding~detected\@gobble}
}
\fi
\expandafter\endgroup\temp@a}
\@ifpackageloaded{inputenc}
{
\PackageInfo{paresse}{inputenc~loaded}
}
{
\PackageInfo{paresse}{inputenc~not~loaded,~utf8~expected\@gobble}
}
\AtBeginDocument
{
\@ifpackageloaded{inputenc} \find@encoding \default@encoding@message
\ExplSyntaxOn
\makeatletter
\bool_if:nTF {\use:c{g__paresse_file_encoding_is_utf8_bool}}
{
\PackageInfo{paresse}{charge~utf8}
\RequirePackageWithOptions{paresse-utf8}
}
{
\PackageInfo{paresse}{charge~vieux}
\RequirePackageWithOptions{paresse-old}
}
\makeatother
\ExplSyntaxOff
}
\fi % END OF ifxetex
\fi % END OF ifluatex
% \end{macrocode}
% \iffalse
%
% \fi
%
% \iffalse
%<*OLD>
% \fi
% \begin{macrocode}
\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 {\__paresse_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 {\__paresse_pi}
\def\^^a7r {\__paresse_rho}
\def\^^a7s {\__paresse_sigma}
\def\^^a7u {\upsilon}
\def\^^a7f {\__paresse_phi}
\def\^^a7w {\omega}
\bool_if:nTF {\g__paresse_encoding_is_legacy_bool}
{
\def\^^a7j {\varsigma}
\def\^^a7v {\__paresse_theta}
\def\^^a7y {\tau}
\def\^^a7c {\chi}
\def\^^a7q {\psi}
\bool_if:nTF {\g__paresse_letter_t_is_theta_bool}
{
\def\^^a7t {\__paresse_theta}
}
{
\def\^^a7t {\tau}
}
}
{
\def\^^a7j {\__paresse_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}
\bool_if:nTF {\g__paresse_encoding_is_legacy_bool}
{
\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}}
\bool_if:nF {\g__paresse_mood_is_wild_bool}
{
\catcode`\^^a7=\count@
\ifnum\count@=13 \let ^^a7=\GA@LaVieilleParesse \fi
}
% \end{macrocode}
% \iffalse
%
% \fi
% \iffalse
%<*UTF>
% \fi
% \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
\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\__paresse_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\__paresse_pi
\define@paresse@car r\__paresse_rho
\define@paresse@car s\__paresse_sigma
\define@paresse@car u\upsilon
\define@paresse@car f\__paresse_phi
\define@paresse@car w\omega
\bool_if:nTF {\g__paresse_encoding_is_legacy_bool}
{
\define@paresse@car j\varsigma
\define@paresse@car v\__paresse_theta
\define@paresse@car y\tau
\define@paresse@car c\chi
\define@paresse@car q\psi
\bool_if:nTF {\g__paresse_letter_t_is_theta_bool}
{
\define@paresse@car t\__paresse_theta
}
{
\define@paresse@car t\tau
}
}
{
\define@paresse@car j\__paresse_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
\bool_if:nTF {\g__paresse_encoding_is_legacy_bool}
{
\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
}
\bool_if:nF {\g__paresse_mood_is_wild_bool}{\makeparesseletter}
% \end{macrocode}
% \iffalse
%
% \fi
%
% \iffalse
%
% \fi
%
% \end{implementation}
%
% \Finale
% \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
%
\endinput
%%% Local Variables:
%%% mode: doctex
%%% coding: utf-8
%%% fill-column: 80
%%% TeX-master: t
%%% End: