texlive[56966] Master/texmf-dist: autoaligne (19nov20)

commits+karl at tug.org commits+karl at tug.org
Thu Nov 19 23:14:11 CET 2020


Revision: 56966
          http://tug.org/svn/texlive?view=revision&revision=56966
Author:   karl
Date:     2020-11-19 23:14:11 +0100 (Thu, 19 Nov 2020)
Log Message:
-----------
autoaligne (19nov20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/generic/autoaligne/README
    trunk/Master/texmf-dist/doc/generic/autoaligne/autoaligne-fr.pdf
    trunk/Master/texmf-dist/tex/generic/autoaligne/autoaligne-fr.tex
    trunk/Master/texmf-dist/tex/generic/autoaligne/autoaligne.tex

Modified: trunk/Master/texmf-dist/doc/generic/autoaligne/README
===================================================================
--- trunk/Master/texmf-dist/doc/generic/autoaligne/README	2020-11-19 22:13:58 UTC (rev 56965)
+++ trunk/Master/texmf-dist/doc/generic/autoaligne/README	2020-11-19 22:14:11 UTC (rev 56966)
@@ -3,9 +3,9 @@
              L'extension
              autoaligne
                
-                v1.4
+                v1.5
 
-             05/11/2018
+             19/11/2020
 ___________________________________
 
 Auteur    : Christian Tellechea

Modified: trunk/Master/texmf-dist/doc/generic/autoaligne/autoaligne-fr.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/tex/generic/autoaligne/autoaligne-fr.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/autoaligne/autoaligne-fr.tex	2020-11-19 22:13:58 UTC (rev 56965)
+++ trunk/Master/texmf-dist/tex/generic/autoaligne/autoaligne-fr.tex	2020-11-19 22:14:11 UTC (rev 56966)
@@ -129,7 +129,10 @@
 Chaque ligne est séparée de sa voisine par \og\verb|\\|\fg. Dans chaque ligne, on peut trouver autant de membres que l'on souhaite, séparés les uns des autres par \og\verb|=|\fg. Dans ces membres peuvent se trouver autant de termes que nécessaire, chacun séparé de son voisin par \og\verb|+|\fg{} ou \og\verb|-|\fg. Pour choisir d'autres séparateurs, voir page~\pageref{choix.separateurs}.
 
 La macro \verb|\autoaligne| va bâtir un alignement de type \verb|\halign| dans lequel chaque terme et chaque signe est contenu dans une colonne. Toutes les colonnes sont composées en mode mathématique. Visuellement, le résultat se traduit par des termes et des signes alignés les uns au-dessous des autres comme on peut le constater dans cet exemple simple :
-\exemple|\autoaligne{x-3y+z=2-i\\5x+y-6z=1+5i\\-x+y-z=-3+i}|
+\exemple|\autoaligne{
+	x-3y+z=2-i\\
+	5x+y-6z=1+5i\\
+	-x+y-z=-3+i}|
 
 Lorsqu'un membre commence par \og\verb/-/\fg, le signe fait partie prenante du terme et n'est pas compris comme un séparateur entre termes. On peut le constater dans les deux membre de la dernière ligne.
 
@@ -136,7 +139,10 @@
 \paragraph{Termes vides}
 Les signes \og\verb|+|\fg{} doivent être utilisés pour insérer des termes vides. Il est déconseillé de se servir du signe \og\verb|-|\fg{}.
 
-\exemple/\autoaligne{x=a++c\\+y=+b-c\\++z=+-4c}/
+\exemple/\autoaligne{
+	x    =a++c\\
+	 +y  =+b-c\\
+	 + +z=+-4c}/
 
 On peut noter deux choses :
 \begin{enumerate}
@@ -146,24 +152,32 @@
 
 Lorsqu'un terme négatif doit apparaitre en deuxième position après un terme vide, il \emph{faut} meubler ce terme vide avec un contenu non affichable comme \og\verb|{}|\fg, \og\verb|\relax|\fg{} ou \og\verb|\null|\fg{}. C'est, je pense, la seule situation où \aa{} conserve une ambiguïté qui demande, pour être levée, un petit effort de la part de l'utilisateur :
 
-\exemple/\autoaligne{a-b={}-2i\\a+2b=1+i}/
+\exemple/\autoaligne{
+	a-b={}-2i\\
+	a+2b=1+i}/
 
 \paragraph{Composition des termes}
 Par défaut, chaque terme est composé au fer à droite comme on le constate sur cet exemple :
 
-\exemple/\autoaligne{a+\sqrt2b=0\\a+b=10\sqrt2}/
+\exemple/\autoaligne{
+	a+\sqrt2b=0\\
+	a+b=10\sqrt2}/
 
 L'argument optionnel de \verb|\autoaligne| permet de changer ce paramètre de composition. Si l'on souhaite spéficier ce paramètre globalement pour \emph{tous} les membres, il faut écrire \verb|*<lettre>| où la \verb|<lettre>| est \og\texttt c\fg{} pour centré, \og\texttt d\fg{} pour droite et \og\texttt g\fg{} pour gauche. Toute autre lettre provoquera un message d'erreur et \og\texttt d\fg{} sera alors prise par défaut.
 
 Voici l'exemple ci-dessus repris avec un paramètre optionnel global \og\verb|*g|\fg{} :
 
-\exemple/\autoaligne[*g]{a+\sqrt2b=0\\a+b=10\sqrt2}/
+\exemple/\autoaligne[*g]{
+	a+\sqrt2b=0\\
+	a+b=10\sqrt2}/
 
 Pour spécifier le paramètre pour chaque membre, il faut écrire dans l'argument optionnel autant de \verb|<lettres>| qu'il y a de membres dans l'alignement. Si l'on écrit plus de lettres qu'il y a de membres, les lettres en trop seront ignorées. S'il manque des lettres, un message d'erreur sera émis et la lettre \og\verb|d|\fg{} sera prise par défaut.
 
 Voici l'exemple avec, semble-t-il, le meilleur compromis ici, c'est-à-dire \og\verb|d|\fg{} pour le 1\ier{} membre et \og\verb|g|\fg{} pour le second :
 
-\exemple/\autoaligne[dg]{a+\sqrt2b=0\\a+b=10\sqrt2}/
+\exemple/\autoaligne[dg]{
+	a+\sqrt2b=0\\
+	a+b=10\sqrt2}/
 
 Pour contrarier l'alignement pour un seul terme dans une seule ligne, il est toujours possible de placer convenablement un (ou plusieurs) \verb|\hfill| dans ce terme.
 
@@ -170,12 +184,17 @@
 \paragraph{Échappement de \texttt+ et \texttt-}
 Pour écrire un signe \og\texttt+\fg{} ou \og\texttt-\fg{} sans qu'il ne soit interprété comme un délimiteur de terme, il faut employer les macros \verb|\+| ou  \verb|\-| :
 
-\exemple/\autoaligne{(1\+a)x+a^2y=a\\-2ax+(1\-a)y=2-a}/
+\exemple/\autoaligne{
+	(1\+a)x+a^2y=a\\
+	-2ax+(1\-a)y=2-a}/
 
 \paragraph{Combien de membres ?}
 Autant que l'on veut !
 
-\exemple/\autoaligne{a+b=1+2+3+4=++z=\alpha\\+x=++10==3\\=1=i+j-z}/
+\exemple/\autoaligne{
+	a+b=1+2+3+4= + +z=\alpha\\
+	 +x= + +10 =     =3\\
+	   =1      =i+j-z}/
 
 Si un membre est vide (comme celui précédant le 3), le signe d'égalité qui le précède n'est pas affiché par défaut. Pour changer ce comportement, il faut écrire \verb|\egaldevantmembrevide=<nombre>|. Si le \verb|<nombre>| (entier sur 8 bits positif ou nul) vaut autre chose que 0, le signe \verb|=| sera affiché devant un membre vide.
 
@@ -216,10 +235,11 @@
 
 \exemple/Un calcul :
 \definirseparateurs{\\}{+||-}{}
-\autoaligne[*c](h){15+2\times3-4\times5\\
-15+6-20\\
-21+-20\\
-1}/
+\autoaligne[*c](h){
+	15+2\times3-4\times5\\
+	15+6-20\\
+	21+-20\\
+	1}/
 
 \paragraph{Choix des espaces additionnels}
 Si l'on tente de créer une macro \verb|\determinant| qui affiche un déterminant de matrice dont les éléments sont séparés par \og\verb|\\|\fg{} et \og\verb*/ /\fg{}, on constate que le séparateur \og\verb*/ /\fg{}, composé en mode mathématique dans une colonne, est ignoré ce qui se traduit une colonne de largeur nulle conduisant à des espacement incorrects.

Modified: trunk/Master/texmf-dist/tex/generic/autoaligne/autoaligne.tex
===================================================================
--- trunk/Master/texmf-dist/tex/generic/autoaligne/autoaligne.tex	2020-11-19 22:13:58 UTC (rev 56965)
+++ trunk/Master/texmf-dist/tex/generic/autoaligne/autoaligne.tex	2020-11-19 22:14:11 UTC (rev 56966)
@@ -4,9 +4,9 @@
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                    %
 \def\aanom                   {autoaligne}                            %
-\def\aaversion                   {1.4}                               %
+\def\aaversion                   {1.5}                               %
 %                                                                    %
-\def\aadate                  {2018/11/05}                            %
+\def\aadate                  {2020/11/19}                            %
 %                                                                    %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
@@ -23,7 +23,7 @@
 %
 % Le mainteneur actuel de cet ensemble est Christian Tellechea
 % email      : unbonpetit at netc.fr
-% Copyright  : Christian Tellechea 2016-2018
+% Copyright  : Christian Tellechea 2016-2020
 % Suivi bugs : https://framagit.org/unbonpetit/autoaligne/issues
 % D\xE9p\xF4t      : https://framagit.org/unbonpetit/autoaligne/tree/master
 % CTAN URL   : https://ctan.org/pkg/autoaligne
@@ -56,7 +56,12 @@
 	\aa_erreur{\loiname\space est en version v\loiver\space et \aanom\space requiert la v\aa_listofitems_version_mini\space ou plus}%
 	\expandafter\aa_restaure_catcode\expandafter\endinput
 \fi
-
+\def\aa_enleve_espace#1{%
+\long\def\aa_enleve_espace##1##2{\expanded{\aa_enleve_espace_i\_marque_espace##2\__nil\_marque_espace#1\_marque_espace\_nil{##1}}}%
+\long\def\aa_enleve_espace_i##1\_marque_espace#1##2\_marque_espace##3\_nil{\aa_enleve_espace_ii##3##1##2\__nil#1\__nil\_nil}%
+\long\def\aa_enleve_espace_ii##1#1\__nil##2\_nil{\aa_enleve_espace_iii##1##2\_nil}%
+\long\def\aa_enleve_espace_iii##1##2\__nil##3\_nil##4{\unexpanded{##4{##2}}}%
+}\aa_enleve_espace{ }
 \def\aa_erreur#1{\errmessage{Package \aanom\space Error: #1^^J}}
 \let\aa_sep_terme_vide\relax
 \let\aa_sep_membre_vide\relax
@@ -198,7 +203,7 @@
 \let\aa_corrige_baselineskip\relax
 \def\autoaligne_iii#1{% #1=tableau
 	\reademptyitems
-	\readlist\aa_termes{#1}%
+	\readlist*\aa_termes{#1}% Bugfix 1.5: version \xE9toil\xE9e
 	\let\aa_nombre_de_lignes\aa_termeslen% nombre de lignes
 	\def\aa_nombre_de_membres{0}%
 	\loi_fornum\aa_ligne_index=1to\aa_termeslen\do{% pour chaque ligne
@@ -246,13 +251,15 @@
 			\loi_fornum\aa_terme_index=1to\csname aa_nbtermes_\aa_membre_index\endcsname\do{% et chaque terme
 				\aa_ajoute_si_existe{aa_termes[\aa_ligne_index,\aa_membre_index,\aa_terme_index]}% ajouter le terme
 				\ifcsname aa_termes[\aa_ligne_index,\aa_membre_index,\aa_terme_index]\endcsname% si le terme existe
-					\loi_argcsname\loi_exparg\loi_ifempty{aa_termes[\aa_ligne_index,\aa_membre_index,\aa_terme_index]}
+					\loi_argcsname\let\aa_terme_courant{aa_termes[\aa_ligne_index,\aa_membre_index,\aa_terme_index]}%
+					\loi_exparg{\aa_enleve_espace{\def\aa_terme_courant}}{\aa_terme_courant}%
+					\loi_exparg\loi_ifempty{\aa_terme_courant}
 						{}
 						{\def\aa_terme_non_vide_vu{1}}% et qu'il est non vide, s'en souvenir
 				\fi
 				\ifnum\aa_terme_index<\csname aa_nbtermes_\aa_membre_index\endcsname\relax% passer \xE0 l'ajout \xE9ventuel du signe + ou -
 					\aa_ajoute_au_toks&%
-					\loi_ifnum{% ins\xE9rer signe si index correct ET terme suivant non vide ET (un terme non vide a \xE9t\xE9 rencontr\xE9 OU signe="-"
+					\loi_ifnum{% ins\xE9rer signe si index correct ET terme suivant non vide ET (un terme non vide a \xE9t\xE9 rencontr\xE9 OU signe="-")
 						\numexpr1\loi_ifnum{\aa_terme_index<\csname aa_termeslen[\aa_ligne_index,\aa_membre_index,0]\endcsname\space}10%
 						\loi_exparg{\loi_exparg\loi_ifempty}{\csname aa_termes[\aa_ligne_index,\aa_membre_index,\number\numexpr\aa_terme_index+1]\endcsname}01%
 						+\aa_terme_non_vide_vu
@@ -325,4 +332,6 @@
     provoquait un bug
   - pour LaTeX seulement, lorsque \baselineskip est nul, on
     prend \normalbaselineskip
-  - nouveaux noms des macros priv\xE9es de listofitems pris en compte
\ No newline at end of file
+  - nouveaux noms des macros priv\xE9es de listofitems pris en compte
+v1.5  19/11/2020
+  - ignorer les termes constitu\xE9s d'espace
\ No newline at end of file



More information about the tex-live-commits mailing list.