diff options
author | Karl Berry <karl@freefriends.org> | 2018-11-06 20:49:23 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2018-11-06 20:49:23 +0000 |
commit | 15217e0f95304ba4d26add6b8b19323257481062 (patch) | |
tree | 66a9c39f7b18370883d89b484b2866f52e9c701a /Master/texmf-dist/tex/generic/autoaligne/autoaligne.tex | |
parent | 8331d77f4583d3cd265d7b495da63da3354b3974 (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.tex | 120 |
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 |