summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/tdsfrmath
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-06-22 23:30:24 +0000
committerKarl Berry <karl@freefriends.org>2009-06-22 23:30:24 +0000
commitde252d25752922eade4f5921dc772887abba81dc (patch)
tree9ce3dc58bc2d6418de291284ade7da954988bc2d /Master/texmf-dist/source/latex/tdsfrmath
parentc4835a7ff442f5e80acfc98ee6bdbb53d31f10f8 (diff)
tdsfrmath 1.3 (22jun09)
git-svn-id: svn://tug.org/texlive/trunk@13896 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/tdsfrmath')
-rw-r--r--Master/texmf-dist/source/latex/tdsfrmath/tdsfrmath.dtx401
1 files changed, 255 insertions, 146 deletions
diff --git a/Master/texmf-dist/source/latex/tdsfrmath/tdsfrmath.dtx b/Master/texmf-dist/source/latex/tdsfrmath/tdsfrmath.dtx
index 28349f15206..04c3e279fae 100644
--- a/Master/texmf-dist/source/latex/tdsfrmath/tdsfrmath.dtx
+++ b/Master/texmf-dist/source/latex/tdsfrmath/tdsfrmath.dtx
@@ -1,7 +1,6 @@
% \iffalse meta-comment
-% -*- mode: LaTeX; coding: iso-8859-15 -*-
-% Time-stamp: <2008-09-18T08:57:14 (cest) [yvon sur hypatie]>
-% Copyright (C) 2008 by Yvon Henel
+% Time-stamp: <2009-06-22T14:58:16 (cest) [yvon sur hypatie]>
+% Copyright (C) 2009 by Yvon Henel
% dit «le TeXnicien de surface» <le.texnicien.de.surface@wanadoo.fr>
% ------------------------------------------------------------------
%
@@ -19,8 +18,8 @@
% \iffalse
%<package|suite|taupe>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
%<package>\def\PackageName{tdsfrmath}
-%<package|suite|taupe>\def\fileversion{v1.2}
-%<package|suite|taupe>\def\filedate{2008/09/17}
+%<package|suite|taupe>\def\fileversion{v1.3}
+%<package|suite|taupe>\def\filedate{2009/06/22}
%<package>\def\fileinfo{macros pour les maths
%<package> par Le TeXnicien de surface}
%<package>\ProvidesPackage{tdsfrmath}
@@ -37,7 +36,7 @@
\usepackage[tame]{paresse}
\IfFileExists{lmodern.sty}{\usepackage{lmodern}}{}
\usepackage[np]{numprint}
-\usepackage[taupe=true,suite=true]{tdsfrmath}[2008/08/11]
+\usepackage[taupe,suite]{tdsfrmath}[2008/08/11]
\usepackage[english,frenchb]{babel}
\usepackage[pdfpagelabels,
colorlinks=true,
@@ -94,6 +93,12 @@
\newcommand\Optioncle[1]{\OptionclePresent{#1}}
\newcommand\OptionvalPresent[1]{\texttt{\textit{#1}}}
\newcommand\Optionval[2]{\OptionvalPresent{#1}\IndexVal{#1}{#2}}
+\newcommand\SignalNouveau[1]{%
+ \marginpar{\raggedleft\framebox{\textbf{N v#1}}\hspace*{2em}}}
+\newcommand\Nouveau[3][***]{%
+% \SignalNouveau{#3}%
+ \emph{#2}\footnote{Nouveauté de la version #3%
+ \ifthenelse{\equal{#1}{***}}{.}{, #1}}}
%%% fin de la personalisation
\begin{document}
\settowidth{\xttlarge}{\texttt{x}}
@@ -102,7 +107,7 @@
%</driver>
% \fi
%
-% \CheckSum{1055}
+% \CheckSum{1100}
%
% \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
@@ -202,7 +207,7 @@
% plus français. On aura par exemple \og \(\D x\)\fg au lieu de \og
% \(dx\)\fg dans les intégrales et les dérivées.
%
-% \Pkg{tdsfrmath} s'appuie lourdement sur \texttt{amsmath}qu'il
+% \Pkg{tdsfrmath} s'appuie lourdement sur \texttt{amsmath} qu'il
% requiert. On n'aura donc pas besoin de le charger avec un
% \cs{usepackage} si l'on utilise \texttt{tdsfrmath}.
%
@@ -257,6 +262,21 @@
% ici par présenter toutes les options et toutes les macros de cette
% extension.
%
+% \subsection{À propos des clés booléennes}
+%
+% Nouveauté de la version 1.3.
+%
+% Les clés booléennes, comme \Optioncle{taupe} p.~ex., sont des clés
+% qui n'admettent pour valeur que |true| ou |false|. L'extension
+% \Pkg{xkeyval} me permet de leur donner une valeur \emph{par défaut}
+% et une valeur \emph{d'origine}: la valeur d'origine est celle que
+% possède la clé lorsque l'on charge \Pkg{tdsfrmath} sans aucune
+% option avec |\usepackage|\BOP|{tdsfrmath}|. La valeur par défaut est
+% celle que l'on obtient en mentionnant la clé sans lui donner de
+% valeur comme avec |\usepackage|\BOP|[taupe]|\BOP|{tdsfrmath}| qui
+% revient au même que |\usepackage|\BOP|[taupe| |=|
+% |true]|\BOP|{tdsfrmath}| car la valeur par défaut de la clé
+% \Optioncle{taupe} est \OptionvalPresent{true}.
%
% \subsection{Chargement optionnel}
%
@@ -268,31 +288,35 @@
%
% \DescribeOptionCle{taupe}\clabel{taupe}
% À chacun de ces fichiers correspond une clé booléenne, de même nom,
-% dont la valeur par défaut est \OptionvalPresent{false} ce qui
+% dont la valeur d'origine est \OptionvalPresent{false} ce qui
% \DescribeOptionCle{suite}\clabel{suite}
% entraine que ces fichiers ne sont pas chargés.
%
% Si on veut utiliser les macros définies dans \texttt{taupe.sto}, on
-% appelera \texttt{tdsfrmath} par:
-% |\usepackage[taupe=true]{tdsfrmath}|
+% appelera \texttt{tdsfrmath} par:
+% |\usepackage[taupe=true]{tdsfrmath}| ou encore avec
+% |\usepackage|\BOP|[taupe]|\BOP|{tdsfrmath}| depuis la version
+% 1.3\SignalNouveau{1.3} puisque la valeur par défaut de
+% \Optioncle{taupe} est \OptionvalPresent{true}.
%
% \bigbreak
%
-% Le fichier \texttt{taupe.sto} contient
-% des définitions qui dépendent de la clé \Optioncle{ArgArcMaj} \TO
-% \DescribeOptionCle{ArgArcMaj}\clabel{ArgArcMaj}
-% \textbf{arg} et \textbf{arc} avec \textbf{maj}uscule\TF qui vaut
-% \Optionval{false}{ArgArcMaj} par défaut ce qui entraine que les noms
-% des fonctions circulaires et hyperboliques réciproques \TO comme
+% Le fichier \texttt{taupe.sto} contient des définitions qui dépendent
+% de la clé \Optioncle{ArgArcMaj} \TO
+% \DescribeOptionCle{ArgArcMaj}\clabel{ArgArcMaj} \textbf{arg} et
+% \textbf{arc} avec \textbf{maj}uscule\TF dont la valeur d'origine est
+% \Optionval{false}{ArgArcMaj} ce qui entraine que les noms des
+% fonctions circulaires et hyperboliques réciproques \TO comme
% \(\argch x\)\TF sont écrites en minuscule. En donnant la valeur
-% \Optionval{true}{ArgArcMaj} à la clé \Optioncle{ArgArcMaj}, ils
-% prennent une majuscule \TO on a alors \(\operatorname{Argch}x\).
+% \Optionval{true}{ArgArcMaj}, valeur par défaut, à la clé
+% \Optioncle{ArgArcMaj}, ils prennent une majuscule \TO on a alors
+% \(\operatorname{Argch}x\).
%
% \subsection{Réglage de la police calligraphique}
%
% Trois clés règlent le choix de la police calligraphique en mode
-% mathématique. Par défaut, \Optioncle{CharPoCal} \TO pour
-% \OptionclePresent{Char}ger
+% mathématique. D'origine la clé booléenne \Optioncle{CharPoCal} \TO
+% pour \OptionclePresent{Char}ger
% \DescribeOptionCle{CharPoCal}\clabel{CharPoCal} une
% \OptionclePresent{Po}lice \OptionclePresent{Cal}ligraphique\TF est
% \OptionvalPresent{true} ce qui permet de définir la police
@@ -300,9 +324,9 @@
% obtiendrait si \Optioncle{CharPoCal} avait la valeur
% \OptionvalPresent{false}.
%
-% Lorsque \Optioncle{CharPoCal} vaut \OptionvalPresent{true}, il faut
-% définir les clés \Optioncle{calpack} et
-% \Optioncle{calcomd}.
+% Lorsque \Optioncle{CharPoCal} vaut \OptionvalPresent{true} \TO ce
+% qui est également sa valeur par défaut \TF, il faut définir les clés
+% \Optioncle{calpack} et \Optioncle{calcomd}.
%
% La clé \Optioncle{calpack}, qui contient
% \DescribeOptionCle{calpack}\clabel{calpack}
@@ -383,7 +407,8 @@
% \DescribeOptionCle{CharPoGdT}\clabel{CharPoGdT} une
% \OptionclePresent{Po}lice \OptionclePresent{G}ras
% \OptionclePresent{d}e \OptionclePresent{T}ableau\TF vaut
-% \OptionvalPresent{false} par défaut.
+% \OptionvalPresent{false} à l'origine mais a \OptionvalPresent{true}
+% pour valeur par défaut.
%
% En fixant \Optioncle{CharPoGdT} à \OptionvalPresent{true}, on peut
% \DescribeOptionCle{gdtpack}\clabel{gdtpack}
@@ -405,6 +430,11 @@
% \noindent|\usepackage[CharPoGdT=true,| |gdtpack=dsfont,| |gdtoptn=sans,|\\
% \Alinea |gdtcomd=mathds]{tdsfrmath}|%
%
+% \noindent ou encore:
+%
+% \noindent|\usepackage[CharPoGdT,| |gdtpack=dsfont,| |gdtoptn=sans,|\\
+% \Alinea |gdtcomd=mathds]{tdsfrmath}|%
+%
% \noindent et \cs{grastab} donnera ce que l'on voit dans
% \texttt{symbols-a4.pdf}.
%
@@ -419,6 +449,10 @@
%
% \noindent|\usepackage[CharPoGdT=true,| |gdtcomd=textbf]{tdsfrmath}|
%
+% \noindent ou encore:
+%
+% \noindent|\usepackage[CharPoGdT,| |gdtcomd=textbf]{tdsfrmath}|
+%
% \noindent et on aura alors, \PX, \(\textbf{R}\) avec |\R|.
%
% \bigbreak
@@ -444,15 +478,15 @@
% possible entre ces deux extensions.
%
% La clé booléenne \Optioncle{avecmathdesign}\label{avecMD} vaut
-% \Optionval{false}{avecmathdesign} par défaut.
+% \Optionval{false}{avecmathdesign} à l'origine.
% \DescribeOptionCle{avecmathdesign} Lorsqu'on lui donne, au
-% chargement de \Pkg{tdsfrmath}, la valeur \OptionvalPresent{true}, on
-% n'a plus besoin de spécifier quoique ce soit concernant la police
-% calligraphique car \Pkg{tdsfrmath} se repose entièrement sur
-% \Pkg{mathdesign} qu'il faut charger explicitement avec
-% \cs{usepackage} en lui passant les options adéquates comme
-% l'explique le manuel \TO \texttt{mathdesign-doc.pdf}\TF de
-% l'extension.
+% chargement de \Pkg{tdsfrmath}, la valeur \OptionvalPresent{true} \TO
+% qui est sa valeur par défaut \TF, on n'a plus besoin de spécifier
+% quoique ce soit concernant la police calligraphique car
+% \Pkg{tdsfrmath} se repose entièrement sur \Pkg{mathdesign} qu'il
+% faut charger explicitement avec \cs{usepackage} en lui passant les
+% options adéquates comme l'explique le manuel \TO
+% \texttt{mathdesign-doc.pdf}\TF de l'extension.
%
% Cette option ne change rien au mécanisme de gestion du gras de
% tableau. C'est dû au fait agréable que la macro de \Pkg{mathdesign}
@@ -478,7 +512,7 @@
% à l'époque, mon fichier de macros ne ressemblait à celui-ci que de
% très loin mais on apprend avec l'age \TO au moins pendant un
% moment.} pour écrire des textes à destination des élèves du
-% secondaire car on est souvent ammené à utiliser des nombres décimaux
+% secondaire car on est souvent amené à utiliser des nombres décimaux
% et, dans ce cas, le mélange de virgule ne m'a jamais paru très
% heureux.
%
@@ -657,14 +691,15 @@
% \DescribeMacro{\TdSMsepdefens}\mlabel{TdSMsepdefens}
% séparateur et peut-être redéfinie à l'aide d'un \cs{renewcommand}.
%
-% Si, comme c'est le cas par défaut, la clé \Optioncle{SepDefEnsExt}
-% vaut \Optionval{true}{SepDefEnsExt}, la définition de
-% \cs{TdSMsepdefens} doit être \emph{quelque chose} supportant
-% l'action de \cs{middle} \TO qui est à un délimiteur central ce que
-% \cs{left} et \cs{right} sont à ceux de gauche et droite\TF comme,
-% \PX, \cs{vert}. Ce qui fait que si l'on veut un séparateur qui ne
-% supporte pas cela, comme |:|, les deux-points, il faut passer la
-% valeur \OptionvalPresent{false} à la clé \Optioncle{SepDefEnsExt}.
+% Si, comme c'est le cas à l'origine et par défaut, la clé
+% \Optioncle{SepDefEnsExt} vaut \Optionval{true}{SepDefEnsExt}, la
+% définition de \cs{TdSMsepdefens} doit être \emph{quelque chose}
+% supportant l'action de \cs{middle} \TO qui est à un délimiteur
+% central ce que \cs{left} et \cs{right} sont à ceux de gauche et
+% droite\TF comme, \PX, \cs{vert}. Ce qui fait que si l'on veut un
+% séparateur qui ne supporte pas cela, comme |:|, les deux-points, il
+% faut passer explicitement la valeur \OptionvalPresent{false} à la
+% clé \Optioncle{SepDefEnsExt}.
%
% \subsection{Des noms des ensembles classiques}
%
@@ -715,34 +750,35 @@
% \bigbreak
%
% \DescribeMacro{\EnsembleDeNombre} Cette macro fait le gros boulot de
-% composition.
-% Elle prend 4~arguments obligatoires: le 1\ier donne la lettre
-% majuscule symbolisant l'ensemble comme \og R\fg pour \R; le
-% \DescribeMacro{\C}
-% comportement de la macro varie suivant que le 2\ieme est égal à
-% \(1\), est un entier supérieur à \(1\), un entier strictement
-% négatif ou l'une de ces sept chaines de caractères |*|, |+|, |-|,
-% \DescribeMacro{\N}
-% |*+|, |+*|, |-*| et |-*| \TO c'est ce qui permet d'obtenir plus
-% tard, \PX, \Q[+*] avec |\Q[+*]|\TF; le 3\ieme argument est utilisé
-% \DescribeMacro{\Q}
+% composition.\SignalNouveau{1.3} Elle prend 4~arguments obligatoires:
+% le 1\ier donne la lettre majuscule symbolisant l'ensemble comme \og
+% R\fg pour \R; le \DescribeMacro{\C} comportement de la macro varie
+% suivant que le 2\ieme est égal à \(1\), \Nouveau{est égal
+% à~\(0\)}{1.3}, l'une de ces sept chaines de caractères |*|, |+|,
+% |-|, \DescribeMacro{\N} |*+|, |+*|, |-*| et |-*| \TO ou
+% \Nouveau{sinon suivant qu'il commence par un signe moins ou
+% pas}{1.3}. C'est ce qui permet d'obtenir plus tard, \PX, \Q[+*]
+% avec |\Q[+*]|\TF; le 3\ieme argument est utilisé \DescribeMacro{\Q}
% pour dénoter les ensembles de polynômes comme \C[-3] et dans ce cas
-% le 2\ieme doit être un nombre négatif; enfin le 4\ieme doit être un
-% \DescribeMacro{\R}
-% entier qui donne le nombre de |mu| \TO unité de longueur spécifique
-% \DescribeMacro{\Z}
-% au mode mathématique\TF qui séparent la majuscule du crochet
-% ouvrant.
+% le 2\ieme doit commencer par un signe moins; enfin le 4\ieme doit
+% être un \DescribeMacro{\R} entier qui donne le nombre de |mu| \TO
+% unité de longueur spécifique \DescribeMacro{\Z} au mode
+% mathématique\TF qui séparent la majuscule du crochet ouvrant.
%
% Je rappelle au passage que |mu| \TO pour \emph{maths unit}\TF est
% une unité de longueur définie uniquement en mode mathématique. Elle
% vaut 1/18 d'un |em| qui est \TO approximativement\TF la largeur d'un
% M dans la fonte courante.
%
-% La macro opère un certain controle car, en dehors de |*|, |+|, |-|,
-% |*+|, |+*|, |-*| et |-*|, le 2\ieme argument doit être un entier
-% relatif. On peut saisir |\R[--4]| \TO mais pourquoi le ferait-on?
-% \TF et ça donne \R[--4]!
+% Avec la version 1.3\SignalNouveau{1.3} j'opère un changement de
+% doctrine! Si le 2\ieme argument n'est pas |*|, |+|, |-|, |*+|, |+*|,
+% |-*|, |-*|, |0| ou |1|, la seule chose qui compte est de savoir s'il
+% commence par un signe \og \(-\)\fg ou pas. Ce qui fait que |\R[--4]|
+% donne désormais le (douteux?) \R[--4]. Toutefois, on a maintenant
+% \R[n] avec |\R[n]| et \R[-m] avec |\R[-m]| et c'est bien cela dont
+% j'avais besoin ces derniers temps! On peut même laisser des blancs
+% devant le signe moins: \verb*+\R[ -3]+ donne \R[ -3] grâce à une
+% réponse de Manuel \textsc{Pégourié-Gonnard} sur \fctt.
%
% Comme il serait fastidieux d'avoir à taper
% \cs{EnsembleDeNombre}\BOP|{N}|\BOP|{1}|\BOP|{}|\BOP|{}| pour obtenir
@@ -769,13 +805,18 @@
% Voici toutes les façons d'utiliser \cs{R}, \PX, et ce qu'elles
% produisent:
% \begin{itemize}\mlabel{nomsens}
+% \item |\R| donne \R;
% \item |\R[*]| donne \R[*];
% \item |\R[+]| donne \R[+];
% \item |\R[-]| donne \R[-];
% \item |\R[+*]| ou |\R[*+]| donne \R[+*];
% \item |\R[-*]| ou |\R[*-]| donne \R[-*];
+% \item |\R[1]| donne \R[1];
% \item |\R[5]| donne \R[5];
+% \item |\R[n]| donne \R[n];
+% \item |\R[0]| donne \R[0];
% \item |\R[-6]| donne \R[-6];
+% \item |\R[-m]| donne \R[-m];
% \item |\R[-6][Y]| donne \R[-6][Y].
% \end{itemize}
% On notera que l'on ne peut pas donner le 2\ieme argument optionnel
@@ -809,6 +850,9 @@
% \Q\)\fg on devra coder |\(\Q{} + \Q\)|. Il arrive que certaines
% épines aient des roses\dots
%
+% À la demande\SignalNouveau{1.3} de Maxime Chupin, on dispose
+% désormais de la macro |\R/| qui donne \R/ et |\R/+| qui donne \R/+.
+%
% \subsection{Des vecteurs, des bases et des repères}
% \label{SSECvecteursutil}
%
@@ -1309,12 +1353,17 @@
% \cs{drv}\BOP\marg{fonction}\BOP\marg{var} utilisable en mode
% texte. J'ai codé |\drv{f(x)}{x}| l'exemple ci-dessus.
%
+% Cette macro admet désormais --- depuis la version
+% 1.3\SignalNouveau{1.3} --- un argument optionnel avec
+% |\drv[3]{f(x)}{x}| on obtient \og \drv[3]{f(x)}{x}\fg.
+%
% \medbreak
%
-% \DescribeMacro{\ddrv}\mlabel{ddrv}
-% \cs{ddrv} est à \cs{drv}, ce que \cs{dfrac} est à \cs{frac} et donc
-% \og |et| |\ddrv{f(x)}{x}| |vaut|\fg compose \og et \ddrv{f(x)}{x}
-% vaut \fg, en bousillant l'interligne comme prévu!
+% \DescribeMacro{\ddrv}\mlabel{ddrv} \cs{ddrv} est à \cs{drv}, ce que
+% \cs{dfrac} est à \cs{frac} et donc \og |et| |\ddrv{f(x)}{x}|
+% |vaut|\fg compose \og et \ddrv{f(x)}{x} vaut \fg, en bousillant
+% l'interligne comme prévu! Elle admet également un argument optionnel
+% qui joue le même rôle que celui de~\cs{drv}.
%
% \medbreak
%
@@ -1381,6 +1430,10 @@
% \Optioncle{suite}, on charge le fichier \texttt{suite.sto} qui donne
% accès à quelques macros concernant les suites.
%
+% Depuis la version 1.3\SignalNouveau{1.3}, on obtient le chargement
+% de \texttt{suite.sto} en écrivant simplement
+% |\usepackage[suite]{tdsfrmath}|.
+%
% \DescribeMacro{\suite}\mlabel{suite}
% La première macro \cs{suite} a pour syntaxe \cs{suite}\oarg{texte}
% et la valeur par défaut de \meta{texte} est |u|. Elle assure le mode
@@ -1451,21 +1504,21 @@
% \bigbreak
%
% Ce que je viens de décrire est le comportement par défaut de ces
-% \DescribeOptionCle{suitedeco}\clabel{suitedeco}
-% macros \cs{suite}, \cs{suitar}, \cs{suitgeo}, \cs{suite*},
-% \cs{suitar*} et \cs{suitgeo*}, comportement obtenu lorsque la clé
-% \DescribeOptionVal{false}{suitedeco}
-% \Optioncle{suitedeco} a la valeur
-% \Optionval{false}{suitedeco}. Lorsque l'on passe la valeur
-% \Optionval{true}{suitedeco} à la clé \Optioncle{suitedeco} le
-% comportement des macros avec et sans étoile est inversé.
+% \DescribeOptionCle{suitedeco}\clabel{suitedeco} macros \cs{suite},
+% \cs{suitar}, \cs{suitgeo}, \cs{suite*}, \cs{suitar*} et
+% \cs{suitgeo*}, comportement obtenu lorsque la clé
+% \DescribeOptionVal{false}{suitedeco} \Optioncle{suitedeco} a la
+% valeur \Optionval{false}{suitedeco}, sa valeur d'origine. Lorsque
+% l'on passe la valeur \Optionval{true}{suitedeco}, sa valeur par
+% défaut, à la clé \Optioncle{suitedeco} le comportement des macros
+% avec et sans étoile est inversé.
%
% \medbreak
%
% Quitte à être un peu lourd, avec |suitedeco=false| on a \og
% \suite\fg avec |\suite| et \og \suite*\fg avec |\suite*|. Avec
-% |suitedeco=true| on a \og \suite*\fg avec |\suite| et \og \suite\fg
-% avec |\suite*|.
+% |suitedeco=true| \TO ou simplement |suitedeco|\TF on a \og
+% \suite*\fg avec |\suite| et \og \suite\fg avec |\suite*|.
%
% On fera attention que, si l'on a donné explicitement les premiers
% arguments optionnels de \cs{suitar}, \PX, dans le cas où
@@ -1475,7 +1528,6 @@
% 2\ieme argument optionnel donnant le \og nom\fg de la suite. Bref,
% on choisira une fois pour toute la forme de base et on s'y tiendra!
%
-% ^^A ICI
%
%\section{Récapitulatif}
%\label{SECrecapitulatif}
@@ -1491,9 +1543,10 @@
% \Optionval{false}{avecmathdesign}\TF,
% \texttt{xspace},
% \texttt{xargs},
-% \texttt{suffix}
-% et \texttt{stmaryrd} si la clé \Optioncle{taupe} a la valeur
-% \Optionval{true}{taupe}.
+% \texttt{suffix},
+% \texttt{xstring}
+% et, si la clé \Optioncle{taupe} a la valeur \Optionval{true}{taupe},
+% \texttt{stmaryrd} .
%
% Il n'est donc pas nécessaire de les appeler avec \cs{usepackage}
% dans le préambule d'un document chargeant \texttt{tdsfrmath}.
@@ -1513,26 +1566,27 @@
% \renewcommand{\arraystretch}{1.1}
% \caption{les clés de \Pkg{tdsfrmath}}
% \label{TABcles}
-% \begin{tabular}{*{2}{l} >{\ttfamily}l l}\hline
-% clé & type & valeur&\multicolumn{1}{l}{référence} \\
-% \multicolumn{1}{l}{}&\multicolumn{1}{l}{}&par défaut&voir page\\
+% \begin{tabular}{*{2}{l} *{2}{>{\ttfamily}l} l}\hline
+% clé & type & \multicolumn{2}{c}{valeur}&\multicolumn{1}{l}{référence} \\
+% \multicolumn{1}{l}{}&\multicolumn{1}{l}{}&d'origine&par défaut&voir page\\
% \hline\hline
-% avecmathdesign & booléen & false & \pageref{avecMD}\\ \hline
-% taupe & booléen & false & \pageref{cletaupe} \\
-% ArgArcMaj & booléen & false & \pageref{cleArgArcMaj} \\ \hline
-% suite & booléen & false & \pageref{clesuite} \\
-% suitedeco & booléen & false & \pageref{clesuitedeco} \\ \hline
-% SepDefEnsExt& booléen & true & \pageref{cleSepDefEnsExt} \\ \hline
-% CharPoCal & booléen & true& \pageref{cleCharPoCal} \\
-% calpack & texte & mathrsfs& \pageref{clecalpack} \\
-% calcomd & texte \TeX & mathscr& \pageref{clecalcomd} \\
-% caloptn & texte \TeX & ***& \pageref{clecaloptn} \\ \hline
-% CharPoGdT & booléen & false& \pageref{cleCharPoGdT} \\
-% gdtpack & texte & ***& \pageref{clegdtpack} \\
-% gdtcomd & texte \TeX & ***& \pageref{clegdtcomd} \\
-% gdtoptn & texte \TeX & ***& \pageref{clegdtoptn} \\ \hline
-% placesigne & choix & haut& \pageref{cleplacesigne} \\
-% ensdeco & choix & ebsh& \pageref{cleensdeco} \\ \hline
+% avecmathdesign & booléen & false & true& \pageref{avecMD}\\ \hline
+% taupe & booléen & false & true &\pageref{cletaupe} \\
+% ArgArcMaj & booléen & false & true & \pageref{cleArgArcMaj} \\ \hline
+% suite & booléen & false & true &\pageref{clesuite} \\
+% suitedeco & booléen & false & true &\pageref{clesuitedeco} \\ \hline
+% SepDefEnsExt& booléen & true & true &\pageref{cleSepDefEnsExt} \\ \hline
+% CharPoCal & booléen & true& true &\pageref{cleCharPoCal} \\
+% calpack & texte & mathrsfs& &\pageref{clecalpack} \\
+% calcomd & texte \TeX & mathscr& &\pageref{clecalcomd} \\
+% caloptn & texte \TeX & ***& &\pageref{clecaloptn} \\ \hline
+% CharPoGdT & booléen & false& true &\pageref{cleCharPoGdT} \\
+% gdtpack & texte & ***& &\pageref{clegdtpack} \\
+% gdtcomd & texte \TeX & ***& &\pageref{clegdtcomd} \\
+% gdtoptn & texte \TeX & ***& &\pageref{clegdtoptn} \\ \hline
+% placesigne & choix & haut& &\pageref{cleplacesigne} \\
+% ensdeco & choix & ebsh& &\pageref{cleensdeco} \\ \hline
+% nupletsep & choix & virgule & &\pageref{clenupletsep}\\ \hline
% \end{tabular}
%\end{table}
%
@@ -1557,6 +1611,12 @@
\RequirePackage{xkeyval}
% \end{macrocode}
%
+% Depuis la version 1.3\SignalNouveau{1.3}, je charge aussi
+% \changes{v1.3}{2009/06/04}{Chargement de \Pkg{xstring}}
+% \begin{macrocode}
+\RequirePackage{xstring}
+% \end{macrocode}
+%
% \Pkg{tdsfrmath} est la première extension où je fais usage de
% \Pkg{xkeyval} et de sa gestion de clés pour les options de
% l'extension.
@@ -1608,13 +1668,15 @@
% pour éviter de le rendre inutilisable alors que l'on n'en a plus
% besoin. On fera la même chose avec \cs{nr} après l'exécution des
% options.
-%
+% \changes{v1.3}{2009/01/08}{Réécriture du code pour l'option
+% nupletsep}
% \begin{macrocode}
+\newcommand{\TdSM@separateur}{\string,\,}
\define@choicekey*+[TdSM]{tdsfrmath.sty}{nupletsep}[\val\nr]%
{virgule,pointvirgule}{%
\ifcase\nr\relax
- \newcommand{\TdSM@separateur}{\string,\,}\or
- \newcommand{\TdSM@separateur}{\,\string;\,}\fi
+ \renewcommand{\TdSM@separateur}{\string,\,}\or
+ \renewcommand{\TdSM@separateur}{\,\string;\,}\fi
}{%
\PackageWarningNoLine{tdsfrmath}{la clef <<nupletsep>> ne connait pas
<<\val>>\MessageBreak <<nupletsep=virgule>> en vigueur}
@@ -1662,12 +1724,23 @@
%
% Le mécanisme de \texttt{xkeyval} crée la macro \cs{ifTdSM@CharPoCal}
% et ses s½urs \cs{TdSM@CharPoCaltrue} et \cs{TdSM@CharPoCalfalse}.
-% Le 5\ieme argument devrait contenir la valeur par défaut mais, dans
-% le cadre de la définition des options d'une extension, ce mécanisme
-% ne fonctionne pas comme il semble le devoir d'après le manuel. Je
-% dois avouer qu'ici quelque chose m'échappe.
-% \begin{macrocode}
-\define@boolkey+[TdSM]{tdsfrmath.sty}[TdSM@]{CharPoCal}[]{}%
+% Le 5\ieme argument contient \TO depuis la version
+% 1.3\SignalNouveau{1.3} \TF la valeur par défaut |true| ce qui permet
+% à l'utilisateur d'obtenir le même comportement de \Pkg{tdsfrmath}
+% avec |\usepackage|\BOP|[CharPoCal]|\BOP|{tdsfrmath}| qu'avec
+% |\usepackage|\BOP|[CharPoCal| |=| |true]|\BOP|{tdsfrmath}|. Il en
+% sera de même avec toutes les clés booléennes de cette extension.
+% \changes{v1.3}{2009/06/04}{Utilisation de la valeur par défaut des
+% clés booléennes}
+%
+% On ne confondra pas cette valeur par défaut avec la valeur que la
+% clé possède à l'exécution des options, autrement dit, la valeur de
+% la clé lorsque l'extension est appelée avec un simple
+% |\usepackage|\BOP|{tdsfrmath}|. Je parlerai alors de valeur
+% \emph{d'origine}.
+%
+% \begin{macrocode}
+\define@boolkey+[TdSM]{tdsfrmath.sty}[TdSM@]{CharPoCal}[true]{}%
{\PackageWarningNoLine{tdsfrmath}{CharPoCal attend la valeur
<< true >> ou << false >>}}
% \end{macrocode}
@@ -1696,7 +1769,7 @@
% \subsubsection{Du choix du gras de tableau}
%
% \begin{macrocode}
-\define@boolkey[TdSM]{tdsfrmath.sty}[TdSM@]{CharPoGdT}[]{}
+\define@boolkey[TdSM]{tdsfrmath.sty}[TdSM@]{CharPoGdT}[true]{}
% \end{macrocode}
% \begin{macrocode}
\define@cmdkey[TdSM]{tdsfrmath.sty}[TdSM@]{gdtpack}[]{}
@@ -1716,12 +1789,12 @@
% fournit des symboles mathématiques dont celui dont je me sers pour
% écrire les intervalles de~\N.
% \begin{macrocode}
-\define@boolkey[TdSM]{tdsfrmath.sty}[TdSM@]{taupe}[]{}
+\define@boolkey[TdSM]{tdsfrmath.sty}[TdSM@]{taupe}[true]{}
% \end{macrocode}
% Clé fixant l'aspect des fonctions circulaires et hyperboliques
% réciproques.
% \begin{macrocode}
-\define@boolkey[TdSM]{tdsfrmath.sty}[TdSM@]{ArgArcMaj}[]{}
+\define@boolkey[TdSM]{tdsfrmath.sty}[TdSM@]{ArgArcMaj}[true]{}
% \end{macrocode}
%
% \subsubsection{Des macros pour les suites}
@@ -1729,25 +1802,25 @@
% Avec la clé booléenne \Optioncle{suite}, on charge le fichier
% \texttt{suite.sto}.
% \begin{macrocode}
-\define@boolkey[TdSM]{tdsfrmath.sty}[TdSM@]{suite}[]{}
+\define@boolkey[TdSM]{tdsfrmath.sty}[TdSM@]{suite}[true]{}
% \end{macrocode}
%
% \begin{macrocode}
-\define@boolkey[TdSM]{tdsfrmath.sty}[TdSM@]{suitedeco}[]{}
+\define@boolkey[TdSM]{tdsfrmath.sty}[TdSM@]{suitedeco}[true]{}
% \end{macrocode}
%
% \subsubsection{Séparateur de définition dans les ensembles}
%
% La clé booléenne \Optioncle{SepDefEnsExt}.
% \begin{macrocode}
-\define@boolkey[TdSM]{tdsfrmath.sty}[TdSM@]{SepDefEnsExt}[]{}
+\define@boolkey[TdSM]{tdsfrmath.sty}[TdSM@]{SepDefEnsExt}[true]{}
% \end{macrocode}
%
% \subsubsection{Pour les utilisateurs de \Pkg{mathdesign}}
%
% La clé booléenne \Optioncle{avecmathdesign}.
% \begin{macrocode}
-\define@boolkey[TdSM]{tdsfrmath.sty}[TdSM@]{avecmathdesign}[]{}
+\define@boolkey[TdSM]{tdsfrmath.sty}[TdSM@]{avecmathdesign}[true]{}
% \end{macrocode}
%
% \subsubsection{Exécutons les options}
@@ -2028,23 +2101,28 @@
% macros auxiliaires par lesquelles je commence.
%
% \begin{macro}{\EnsembleDeNombre}
+% \changes{v1.3}{2009/03/12}{Avec |0| en 1\ier argument, on obtient
+% l'ensemble des polynômes}
+% \changes{v1.3}{2009/06/04}{On analyse autrement le 1\ier argument,
+% en utilisant \Pkg{xstring}}
% La suivante fait le boulot de composition.
% \begin{macrocode}
\newcommandx\EnsembleDeNombre[4]{%
\ensuremath{%
- \grastab{#1}%
- \ifthenelse{\equal{#2}{*}}{^{\ast}}{%
- \ifthenelse{\equal{#2}{+}}{\TdSM@PlaceSigne{+}}{%
- \ifthenelse{\equal{#2}{-}}{\TdSM@PlaceSigne{-}}{%
- \ifthenelse{\equal{#2}{+*}\or\equal{#2}{*+}}{%
+ \grastab{#1}{%
+ \edef\TdSM@arg{\@firstofone#2}%
+ \ifthenelse{\equal{\TdSM@arg}{1}}{}{%
+ \ifthenelse{\equal{\TdSM@arg}{0}}{\mspace{#4mu}\left[#3\right]}{%
+ \ifthenelse{\equal{\TdSM@arg}{*}}{^{\ast}}{%
+ \ifthenelse{\equal{\TdSM@arg}{+}}{\TdSM@PlaceSigne{+}}{%
+ \ifthenelse{\equal{\TdSM@arg}{-}}{\TdSM@PlaceSigne{-}}{%
+ \ifthenelse{\equal{\TdSM@arg}{+*}\or\equal{\TdSM@arg}{*+}}{%
\TdSM@Decoration{\ast}{+}}{%
- \ifthenelse{\equal{#2}{-*}\or\equal{#2}{*-}}{%
+ \ifthenelse{\equal{\TdSM@arg}{-*}\or\equal{\TdSM@arg}{*-}}{%
\TdSM@Decoration{\ast}{-}}{%
- \ifthenelse{#2=1}{}{%
- \ifthenelse{#2>1}{^{\number #2}}{%
- \ifthenelse{#2<0}{_{\number -#2}\mspace{#4mu}\left[#3\right]}{%
- [\string?\string?\string?]%
- }}}}}}}}}\xspace}
+ \IfBeginWith{\TdSM@arg}{-}{%
+ _{\StrBehind{\TdSM@arg}{-}}\mspace{#4mu}\left[#3\right]}{%
+ ^{\TdSM@arg}}}}}}}}}}}\xspace}
% \end{macrocode}
% \end{macro}
%
@@ -2080,6 +2158,15 @@
\WithSuffix\newcommand\R>{\R[+*]}
\WithSuffix\newcommand\R<{\R[-*]}
% \end{macrocode}
+% \begin{macro}{\R/}
+% \changes{v1.3}{2009/03/12}{Ajout des commandes \cs{R/} et \cs{R/+}}
+% \begin{macrocode}
+\DeclareRobustCommand{\TdSM@Rcomplet}{\ensuremath{\overline{\R}}}
+\WithSuffix\newcommand\TdSM@Rcomplet+{\ensuremath{\overline{\R+}}}
+\WithSuffix\newcommand\R/{\TdSM@Rcomplet}
+% \end{macrocode}
+% \end{macro}
+%
% \iffalse
%</package>
% \fi
@@ -2147,7 +2234,10 @@
% \end{macrocode}
%
% \begin{macro}{\EncloreExtensible}
-%
+% \changes{v1.3}{2008/11/26}{Ajout de \cs{mathopen} et
+% % \cs{mathclose} pour régler les distances extérieures.}
+% \changes{v1.3}{2009/06/03}{Changement de noms internes:
+% \cs{@v@nt} et \cs{@pr@s} deviennent \cs{TdS@v@nt} et \cs{TdS@pr@s}}
% Pour \emph{passer} le mode à l'intérieur de la macro, en vue de
% prendre la bonne définition des délimiteurs, j'ai besoin d'un
% booléen.
@@ -2155,9 +2245,9 @@
\newboolean{TdSM@horstexterequis}
\setboolean{TdSM@horstexterequis}{false}
\newcommandx{\EncloreExtensible}[4][1=1]{%
- \ifthenelse{#1=0}
- {\setboolean{TdSM@horstexterequis}{true}}
- {\setboolean{TdSM@horstexterequis}{false}}
+ \ifthenelse{#1=0}%
+ {\setboolean{TdSM@horstexterequis}{true}}%
+ {\setboolean{TdSM@horstexterequis}{false}}%
% \end{macrocode}
% J'ai réglé le cas de l'argument optionnel. Il faut voir si on ne
% serait pas en mode mathématique (\cs{ifmmode}) interne
@@ -2165,7 +2255,7 @@
% mathématique hors-texte où il faut faire quelque chose:
% \begin{macrocode}
\ifmmode\ifinner\else
- \setboolean{TdSM@horstexterequis}{true}
+ \setboolean{TdSM@horstexterequis}{true}%
\fi\else\fi
% \end{macrocode}
% On ouvre un groupe et on s'assure d'être en mode mathématique et on
@@ -2174,21 +2264,25 @@
% nécessaire:
% \begin{macrocode}
{\ensuremath{%
- \ifthenelse{\boolean{TdSM@horstexterequis}}
- {\displaystyle\def\@v@nt{\left #2}\def\@pr@s{\right #3}}
+ \ifthenelse{\boolean{TdSM@horstexterequis}}%
+ {\displaystyle\def\TdS@v@nt{\left #2}\def\TdS@pr@s{\right #3}}%
% \end{macrocode}
% En hors-texte \TO naturel ou forcé\TF on a des délimiteurs
% extensibles,
% \begin{macrocode}
- {\ifthenelse{\equal{#2}{.}}{\def\@v@nt{\relax}}{\def\@v@nt{#2}}%
- \ifthenelse{\equal{#3}{.}}{\def\@pr@s{\relax}}{\def\@pr@s{#3}}}
+ {\ifthenelse{\equal{#2}{.}}%
+ {\def\TdS@v@nt{\relax}}%
+ {\def\TdS@v@nt{\mathopen#2}}%
+ \ifthenelse{\equal{#3}{.}}%
+ {\def\TdS@pr@s{\relax}}
+ {\def\TdS@pr@s{\mathclose#3}}}%
% \end{macrocode}
% il n'en est rien en mode en ligne mais il faut tenir compte du
% délimiteur fantome donné par le point.
%
% Et, pour finir, on compose le texte attendu.
% \begin{macrocode}
- \@v@nt #4 \@pr@s}}}
+ \TdS@v@nt #4 \TdS@pr@s}}}
% \end{macrocode}
% \end{macro}
%
@@ -2601,12 +2695,15 @@
\newcommand*{\parties}[2][-2]{%
\ensuremath{\manus{p}\mspace{#1mu}\parent{{#2}}}}
% \end{macrocode}
-%
+% \begin{macro}{\drv}
+% \changes{v1.3}{2008/11/26}{Réécriture avec un argument optionnel.}
% \begin{macrocode}
-\newcommand{\drv}[2]{\ensuremath{\frac{\D#1}{\D#2}}}
-\newcommand{\ddrv}[2]{\ensuremath{\dfrac{\D#1}{\D#2}}}
+\newcommand{\drv}[3][***]{\ensuremath{%
+ \frac{\D\ifthenelse{\equal{#1}{***}}{}{^{#1}}#2}%
+ {\D#3\ifthenelse{\equal{#1}{***}}{}{^{#1}}}}}
+\newcommand{\ddrv}[3][***]{\ensuremath{\displaystyle\drv[#1]{#2}{#3}}}
% \end{macrocode}
-%
+% \end{macro}
% \begin{macrocode}
\newcommandx{\interent}[4][1=1,2=2,4=2]{%
\EncloreExtensible[#1]{\llbracket}{\rrbracket}%
@@ -2814,17 +2911,20 @@
\ProvidesFile{suite.sto}%
[\filedate\space\fileversion\space Pour tdsfrmath -- option suite]
% \end{macrocode}
-%
+% \begin{macro}{\suite}
+% \changes{v1.3}{2009/01/07}{Ajout de \cs{xspace} dans le code de
+% \cs{suite} et \cs{suite*} pour éviter que la macro mange l'espace
+% derrière}
% \begin{macrocode}
\ifTdSM@suitedeco
-\newcommandx\suite[2][1=\N,2=u]{\ensuremath{\parent{{#2}_{n}}_{#1}}}
+\newcommandx\suite[2][1=\N,2=u]{\ensuremath{\parent{{#2}_{n}}_{#1}}\xspace}
\newcommandx\suitar[6][1=\N,2=u,4=0,6={}]{%
\suite[#1][#2]#6 la suite arithm\'etique de raison %
$r = #3$ et de premier terme $#2_{#4}=#5$}
\newcommandx\suitgeo[6][1=\N,2=u,4=0,6={}]{%
\suite*[#1][#2]#6 la suite g\'eom\'etrique de raison %
$q = #3$ et de premier terme $#2_{#4}=#5$}
-\WithSuffix\newcommand\suite*[1][u]{\parent{{#1}_{n}}}
+\WithSuffix\newcommand\suite*[1][u]{\parent{{#1}_{n}}\xspace}
\WithSuffix\newcommandx\suitar*[5][1=u,3=0,5={}]{%
\suite*[#1]#5 la suite arithm\'etique de raison %
$r = #2$ et de premier terme $#1_{#3}=#4$}
@@ -2832,7 +2932,7 @@
\suite*[#1]#5 la suite g\'eom\'etrique de raison %
$q = #2$ et de premier terme $#1_{#3}=#4$}
\else
-\newcommand\suite[1][u]{\parent{{#1}_{n}}}
+\newcommand\suite[1][u]{\parent{{#1}_{n}}\xspace}
\newcommandx\suitar[5][1=u,3=0,5={}]{%
\suite[#1]#5 la suite arithm\'etique de raison %
$r = #2$ et de premier terme $#1_{#3}=#4$}
@@ -2840,7 +2940,7 @@
\suite[#1]#5 la suite g\'eom\'etrique de raison %
$q = #2$ et de premier terme $#1_{#3}=#4$}
\WithSuffix\newcommandx\suite*[2][1=\N,2=u]{%
- \ensuremath{\suite[#2]_{#1}}}
+ \ensuremath{\suite[#2]_{#1}}\xspace}
\WithSuffix\newcommandx\suitar*[6][1=\N,2=u,4=0,6={}]{%
\suite*[#1][#2]#6 la suite arithm\'etique de raison %
$r = #3$ et de premier terme $#2_{#4}=#5$}
@@ -2849,6 +2949,7 @@
$q = #3$ et de premier terme $#2_{#4}=#5$}
\fi
% \end{macrocode}
+% \end{macro}
%
% Et ici se termine l'extension \texttt{tdsfrmath}.
%
@@ -2862,11 +2963,19 @@
% \end{center}
% Je tiens à remercier Maxime \textsc{Chupin} pour l'aide qu'il m'a
% apportée pour améliorer \Pkg{tdsfrmath}.
+%
+% Je remercie également Manuel \textsc{Pégourié-Gonnard} pour les
+% diverses réponses intelligentes et utiles à mes questions qui ne le
+% furent pas toujours et Christian \textsc{Tellechea} dont j'utilise
+% le \Pkg{xstring} et dont je n'oublie pas qu'il m'a envoyé du code
+% qui fera son apparition dans la prochaine version.
+%
% \vspace{2\baselineskip}
%
% \Finale \PrintChanges\PrintIndex
\endinput
%%% Local Variables:
%%% mode: doctex
+%%% coding: iso-8859-15
%%% fill-column: 70
%%% End: