summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/autoaligne/autoaligne.tex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-11-06 20:49:23 +0000
committerKarl Berry <karl@freefriends.org>2018-11-06 20:49:23 +0000
commit15217e0f95304ba4d26add6b8b19323257481062 (patch)
tree66a9c39f7b18370883d89b484b2866f52e9c701a /Master/texmf-dist/tex/generic/autoaligne/autoaligne.tex
parent8331d77f4583d3cd265d7b495da63da3354b3974 (diff)
autoaligne (6nov18)
git-svn-id: svn://tug.org/texlive/trunk@49092 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/autoaligne/autoaligne.tex')
-rw-r--r--Master/texmf-dist/tex/generic/autoaligne/autoaligne.tex120
1 files changed, 63 insertions, 57 deletions
diff --git a/Master/texmf-dist/tex/generic/autoaligne/autoaligne.tex b/Master/texmf-dist/tex/generic/autoaligne/autoaligne.tex
index 5d0b3607f81..286cb7be89c 100644
--- a/Master/texmf-dist/tex/generic/autoaligne/autoaligne.tex
+++ b/Master/texmf-dist/tex/generic/autoaligne/autoaligne.tex
@@ -1,34 +1,36 @@
+% !TeX encoding = ISO-8859-1
% Ce fichier contient le code TeX de l'extension "autoaligne"
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
\def\aanom {autoaligne} %
-\def\aaversion {1.3} %
+\def\aaversion {1.4} %
% %
-\def\aadate {2017/02/11} %
+\def\aadate {2018/11/05} %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% --------------------------------------------------------------------
-% This work may be distributed and/or modified under the
-% conditions of the LaTeX Project Public License, either version 1.3
-% of this license or (at your option) any later version.
-% The latest version of this license is in
+% Cet ensemble peut être distribué et/ou modifié selon les
+% conditions de la licence « LaTeX Project Public License », en version
+% 1.3c ou toute autre version ultérieure.
+% La dernière version de cette licence est disponible à
%
-% % http://www.latex-project.org/lppl.txt
+% http://www.latex-project.org/lppl.txt
%
-% and version 1.3 or later is part of all distributions of LaTeX
-% version 2005/12/01 or later.
% --------------------------------------------------------------------
-% This work has the LPPL maintenance status `maintained'.
+% Cet ensemble a le statut de maintenance LPPL « maintenu ».
%
-% The Current Maintainer of this work is Christian Tellechea
-% email: unbonpetit@openmailbox.org
-% Commentaires, suggestions et signalement de bugs bienvenus !
+% Le mainteneur actuel de cet ensemble est Christian Tellechea
+% email : unbonpetit@netc.fr
+% Copyright : Christian Tellechea 2016-2018
+% Suivi bugs : https://framagit.org/unbonpetit/autoaligne/issues
+% Dépôt : https://framagit.org/unbonpetit/autoaligne/tree/master
+% CTAN URL : https://ctan.org/pkg/autoaligne
% --------------------------------------------------------------------
-% L'extension autoaligne est compos\'ee des 5 fichiers suivants :
-% - code : listofitems (.tex et .sty)
-% - manuel en francais : listofitems-fr (.tex et .pdf)
+% L'extension autoaligne est composée des 5 fichiers suivants :
+% - code : autoaligne (.tex et .sty)
+% - manuel en francais : autoaligne-fr (.tex et .pdf)
% - fichier lisezmoi : README
% --------------------------------------------------------------------
@@ -36,12 +38,6 @@
\catcode`\_11
\def\aa_listofitems_version_mini{1.1}
-\ifdefined\PackageError
- \def\aa_erreur#1{\PackageError\aanom{#1}{Read the manual}}% pour LaTeX
-\else
- \def\aa_erreur#1{\errmessage{Package \aanom\space Error: #1^^J}}% pour TeX
-\fi
-
\begingroup
\edef\__tempa{\meaning\eTeXversion}\edef\__tempb{\string\eTeXversion}%
\ifx\__tempa\__tempb\endgroup
@@ -50,14 +46,18 @@
\expandafter\aa_restaure_catcode\expandafter\endinput
\fi
+\begingroup
\unless\ifdefined\loiname
- \input listofitems.tex
+ \def\__tempa{\endgroup\input listofitems.tex\relax}%
+ \expandafter\__tempa
\fi
+
\ifdim\loiver pt<\aa_listofitems_version_mini pt
\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_erreur#1{\errmessage{Package \aanom\space Error: #1^^J}}
\let\aa_sep_terme_vide\relax
\let\aa_sep_membre_vide\relax
\def\aa_compose_en_mode_math#1{$\relax#1$}
@@ -102,15 +102,15 @@
}%
}%
}
-\definirseparateurs{\\}{=}{+||-}% s\'eparateurs par d\'efaut
+\definirseparateurs{\\}{=}{+||-}% séparateurs par défaut
\def\definirespacements{\aa_si_prochain_tok_est[\definirespacements_i{\definirespacements_i[,]}}
-\def\definirespacements_i[#1,#2]#3#4{% #3=espace avant & apr\`es s\'eparateurs 2 #4=espace avant & apr\`es s\'eparateurs 3
+\def\definirespacements_i[#1,#2]#3#4{% #3=espace avant & après séparateurs 2 #4=espace avant & après séparateurs 3
\edef\aa_insere_espacement_avant{\aa_devdev_arg\loi_ifempty{\loi_removeextremespaces{#1}}{}{\hskip\glueexpr#1\relax}}%
\edef\aa_insere_espacement_apres{\aa_devdev_arg\loi_ifempty{\loi_removeextremespaces{#2}}{}{\hskip\glueexpr#2\relax}}%
\edef\aa_espacement_signe{\dimexpr\loi_ifempty{#3}{0pt}{#3}\relax}%
\edef\aa_espacement_terme{\dimexpr\loi_ifempty{#4}{0pt}{#4}\relax}%
}
-\definirespacements[,]{0pt}{0pt}% espacements par d\'efaut
+\definirespacements[,]{0pt}{0pt}% espacements par défaut
\def\aa_si_contient_moins#1{\aa_si_contient_moins_i||#1||||-||\_nil}% "||-||" est-il dans #1 ?
\def\aa_si_contient_moins_i#1||-||#2\_nil{\loi_ifempty{#2}\loi_second\loi_first}
\def\aa_trouver_moins_dans_separateur_de_termes{\expandafter\aa_trouver_moins_dans_separateur_de_termes_i\aa_liste_separateurs\_nil}
@@ -157,6 +157,17 @@
\def\aa_consigne_alignement_general{1}%
}%
{}%
+ \edef\aa_numero_separateur_contenant_signe_moins{\aa_trouver_moins_dans_separateur_de_termes}%
+ \def\readlist_d##1||##2\_nil##3{% redéfinir \readlist_e pour que
+ \loi_ifnum{\loi_nestcnt=\aa_numero_separateur_contenant_signe_moins\relax}% si la profondeur est celle où il a y a un "-"
+ {\aa_si_commence_par{##30}{-}% et que la liste restant à examiner commence par "-" alors
+ {\loi_exparg{\readlist_e1}{\expandafter\-\loi_gobarg##3##1}}% remplacer ce "-" par \-
+ {\readlist_e1{##3##1}}%
+ }
+ {\readlist_e1{##3##1}}%
+ }%
+ \expandafter\def\csname+\endcsname{+}\expandafter\def\csname-\endcsname{-}% redéfinir \+ et \-
+ \loi_exparg{\setsepchar[_]}{\aa_liste_separateurs}%
\autoaligne_iii
}%
}
@@ -184,29 +195,19 @@
\if\string #2\expandafter\loi_firsttonil\detokenize{#4x}\_nil2\else
\if\string #3\expandafter\loi_firsttonil\detokenize{#4x}\_nil3\fi\fi\fi
}
+\let\aa_corrige_baselineskip\relax
\def\autoaligne_iii#1{% #1=tableau
- \def\-{-}\def\+{+}%
- \loi_exparg{\setsepchar[_]}{\aa_liste_separateurs}%
- \edef\aa_numero_separateur_contenant_signe_moins{\aa_trouver_moins_dans_separateur_de_termes}%
- \def\readlist_iii##1||##2\_nil##3{% red\'efinir \readlist_iii pour que
- \loi_ifnum{\loi_nestcnt=\aa_numero_separateur_contenant_signe_moins\relax}% si la profondeur est celle o\`u il a y a un "-"
- {\aa_si_commence_par{##30}{-}% et que la liste restant \`a examiner commence par "-" alors
- {\loi_exparg{\readlist_iv1}{\expandafter\-\loi_gobarg##3##1}}% remplacer ce "-" par \-
- {\readlist_iv1{##3##1}}%
- }
- {\readlist_iv1{##3##1}}%
- }%
\reademptyitems
\readlist\aa_termes{#1}%
\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
\ifnum\csname aa_termeslen[\aa_ligne_index,0]\endcsname>\aa_nombre_de_membres
- \loi_argcsname\let\aa_nombre_de_membres{aa_termeslen[\aa_ligne_index,0]}% mettre \`a jour le nombre max de membres
+ \loi_argcsname\let\aa_nombre_de_membres{aa_termeslen[\aa_ligne_index,0]}% mettre à jour le nombre max de membres
\fi
\loi_fornum\aa_membre_index=1to\csname aa_termeslen[\aa_ligne_index,0]\endcsname\do{% pour chaque membre
\loi_argcsname\let\aa_nombre_de_termes_courant{aa_termeslen[\aa_ligne_index,\aa_membre_index,0]}%
- \ifcsname aa_nbtermes_\aa_membre_index\endcsname% mettre \`a jour le nombre max de termes dans ce membre
+ \ifcsname aa_nbtermes_\aa_membre_index\endcsname% mettre à jour le nombre max de termes dans ce membre
\ifnum\aa_nombre_de_termes_courant>\csname aa_nbtermes_\aa_membre_index\endcsname\relax
\loi_argcsname\let{aa_nbtermes_\aa_membre_index}\aa_nombre_de_termes_courant
\fi
@@ -216,7 +217,7 @@
}%
}%
\aa_liste_tokens{}%
- % construction du pr\'eambule de l'alignement
+ % construction du préambule de l'alignement
\loi_fornum\aa_membre_index=1to\aa_nombre_de_membres\do{%
\loi_fornum\aa_terme_index=1to\csname aa_nbtermes_\aa_membre_index\endcsname\do{%
\ifx\aa_consigne_alignement_general\empty
@@ -234,11 +235,11 @@
\fi
}%
\ifnum\aa_membre_index<\aa_nombre_de_membres\relax
- \aa_developpe_et_ajoute_au_toks{\expandafter&\aa_alignement_signe&}% \'egalit\'e
+ \aa_developpe_et_ajoute_au_toks{\expandafter&\aa_alignement_signe&}% égalité
\fi
}%
\aa_ajoute_au_toks\cr
- % fin du pr\'eambule, construction du corps de l'alignement
+ % fin du préambule, construction du corps de l'alignement
\loi_fornum\aa_ligne_index=1to\aa_termeslen\do{% pour chaque ligne,
\loi_fornum\aa_membre_index=1to\aa_nombre_de_membres\do{% chaque membre
\def\aa_terme_non_vide_vu{0}%
@@ -249,13 +250,13 @@
{}
{\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 \`a l'ajout \'eventuel du signe + ou -
+ \ifnum\aa_terme_index<\csname aa_nbtermes_\aa_membre_index\endcsname\relax% passer à l'ajout éventuel du signe + ou -
\aa_ajoute_au_toks&%
- \loi_ifnum{% ins\'erer signe si index correct ET terme suivant non vide ET (un terme non vide a \'et\'e rencontr\'e OU signe="-"
+ \loi_ifnum{% insérer signe si index correct ET terme suivant non vide ET (un terme non vide a été rencontré 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
- +\if\string-\expandafter\loi_firsttonil\detokenize\expandafter\expandafter\expandafter{\csname aa_termessep[\aa_ligne_index,\aa_membre_index,\aa_terme_index]\endcsname}\_nil1\else0\fi>111 }
+ +\if\string-\expandafter\loi_firsttonil\detokenize\expandafter\expandafter\expandafter{\csname aa_termessep[\aa_ligne_index,\aa_membre_index,\aa_terme_index]\endcsname+}\_nil1\else0\fi>111 }
{\aa_ajoute_si_existe{aa_termessep[\aa_ligne_index,\aa_membre_index,\aa_terme_index]}}%
{\aa_ajoute_au_toks{\hphantom{\hbox{${}+{}$}}}}% sinon, encombrement horizontal
\aa_ajoute_au_toks&%
@@ -291,32 +292,37 @@
\expandafter\loi_identity
\fi
{\aa_boite_externe{%
- \lineskiplimit0pt
- \lineskip0pt
+ \aa_corrige_baselineskip
\baselineskip\aa_v_coeff\baselineskip
\halign\expandafter{\the\aa_liste_tokens}%
}%
}%
\aa_insere_espacement_apres
\endgroup
- \ifnum`{=0\fi\iffalse}\fi% cette ligne manquait, voir http://tex.stackexchange.com/questions/353258/gather-and-autoaligne-errors
+ \ifnum`{=0\fi\iffalse}\fi
}
-\aavcoeff{1}% par d\'efaut
+\aavcoeff{1}% par défaut
\aa_restaure_catcode
\endinput
v1.0 01/09/2016
- - premi\`ere version publique
+ - première version publique
v1.1 06/10/2016
- correction d'un bug dans \autoaligne_iii qui mangeait le
\endgroup final
v1.2 22/10/2016
- - possibilit\'e de d\'efinir les s\'eparateurs
- - possibilit\'e de d\'efinir les espaces additionnelles
- autour des s\'eparateurs
- - possibilit\'e de d\'efinir les espaces ins\'er\'ees avant et
- apr\`es l'alignement
+ - possibilité de définir les séparateurs
+ - possibilité de définir les espaces additionnelles
+ autour des séparateurs
+ - possibilité de définir les espaces insérées avant et
+ après l'alignement
v1.3 11/02/2017
- le \iffalse{\fi\ifnum0=`}\fi n'\'est pas \'equilibr\'e par
+ - le \iffalse{\fi\ifnum0=`}\fi n'est pas équilibré par
\ifnum`{=0\fi\iffalse}\fi ce qui provoque un bug lorsque
- \autoaligne est appel\'e dans un alignement \ No newline at end of file
+ \autoaligne est appelé dans un alignement
+v1.4 05/11/2018
+ - \+ et \- sont \outer pour plain-TeX et les redéfinir
+ provoquait un bug
+ - pour LaTeX seulement, lorsque \baselineskip est nul, on
+ prend \normalbaselineskip
+ - nouveaux noms des macros privées de listofitems pris en compte \ No newline at end of file