summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/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
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')
-rw-r--r--Master/texmf-dist/tex/generic/autoaligne/autoaligne-fr.tex14
-rw-r--r--Master/texmf-dist/tex/generic/autoaligne/autoaligne.sty6
-rw-r--r--Master/texmf-dist/tex/generic/autoaligne/autoaligne.tex120
3 files changed, 75 insertions, 65 deletions
diff --git a/Master/texmf-dist/tex/generic/autoaligne/autoaligne-fr.tex b/Master/texmf-dist/tex/generic/autoaligne/autoaligne-fr.tex
index 8cd91eac6fe..9c9370075ad 100644
--- a/Master/texmf-dist/tex/generic/autoaligne/autoaligne-fr.tex
+++ b/Master/texmf-dist/tex/generic/autoaligne/autoaligne-fr.tex
@@ -1,7 +1,7 @@
% Ceci est la documentation du package "autoaligne"
%
% Fichier compilé avec pdflatex
-\documentclass[frenchb,a4paper]{article}
+\documentclass[french,a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{libertine}\usepackage[italic]{mathastext}
@@ -98,7 +98,7 @@
\smallbreak
\longfraadate
\vskip1.5cm
- {Christian \bsc{Tellechea}\footnote{\href{mailto:unbonpetit@openmailbox.org}{unbonpetit@openmailbox.org}}}
+ {Christian \bsc{Tellechea}\footnote{\href{mailto:unbonpetit@netc.fr}{unbonpetit@netc.fr}}}
\par
\endgroup
\vskip2cm
@@ -109,9 +109,9 @@
\def\listofitems{\textsf\loiname}
\def\aa{\textsf\aanom}
\section{Avant propos}
-C'est à force de voir, aussi bien sur \href{http://tex.stackexchange.com/}{\texttt{tex.stackexchange}} que dans ma boite \href{mailto:unbonpetit@openmailbox.org}{email}, des questions concernant l'extension \href{https://www.ctan.org/pkg/systeme}{\texttt{systeme}} que j'ai décidé d'écrire une extension à la fois plus générale et plus simple que ne l'est \texttt{systeme}. En effet trop de ces questions ont pour but de faire réaliser à \texttt{systeme} des choses pour lesquelles elle n'est pas conçue !
+C'est à force de voir, aussi bien sur \href{http://tex.stackexchange.com/}{\texttt{tex.stackexchange}} que dans ma boite \href{mailto:unbonpetit@netc.fr}{email}, des questions concernant l'extension \href{https://www.ctan.org/pkg/systeme}{\texttt{systeme}} que j'ai décidé d'écrire une extension à la fois plus générale et plus simple que ne l'est \texttt{systeme}. En effet trop de ces questions ont pour but de faire réaliser à \texttt{systeme} des choses pour lesquelles elle n'est pas conçue !
-À l'aide de la récente extension \href{https://www.ctan.org/pkg/listofitems}{\listofitems}, coder \aa{} deviendrait (presque) une formalité tant les choses tendent à devenir plus simples.
+À l'aide de l'extension \href{https://www.ctan.org/pkg/listofitems}{\listofitems}, coder \aa{} deviendrait (presque) une formalité tant les choses tendent à devenir plus simples.
Ayant constaté que beaucoup de non francophones ne semblent en rien gênés que le manuel de \texttt{systeme} soit rédigé uniquement en français, détestant pour ma part traduire le français vers l'anglais ce qui s'apparente à un calvaire et enfin, voulant à tout prix défendre l'existence du français face au globbish dans la sphère \TeX/\LaTeX{} et ailleurs, j'ai voulu que cette extension soit 100\% en français et qu'elle le reste ! Même dans le code, les noms des macros sont en français ce qui, une fois l'habitude prise, est fort agréable.
\bigbreak
@@ -128,10 +128,10 @@ Cette macro attend un argument obligatoire entre accolades contenant les lignes
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 desous 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}|
+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}|
-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 le second membre de la dernière ligne.
+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.
\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{}.
diff --git a/Master/texmf-dist/tex/generic/autoaligne/autoaligne.sty b/Master/texmf-dist/tex/generic/autoaligne/autoaligne.sty
index b7c278ae250..891aed5515c 100644
--- a/Master/texmf-dist/tex/generic/autoaligne/autoaligne.sty
+++ b/Master/texmf-dist/tex/generic/autoaligne/autoaligne.sty
@@ -1,3 +1,7 @@
\input autoaligne.tex\relax
-\ProvidesPackage\aanom[\aadate\space v\aaversion\space Aligne les termes sur plusieurs lignes]
+\expandafter\def\csname aa_corrige_baselineskip\endcsname{% si \autoaligne est appelé dans un tabular où \baselineskip est nul :
+ \ifdim\baselineskip=0pt \baselineskip\normalbaselineskip\fi
+}
+\expandafter\def\csname aa_erreur\endcsname#1{\PackageError\aanom{#1}{Read the manual}}% pour LaTeX
+\ProvidesPackage\aanom[\aadate\space v\aaversion\space Aligne les termes sur plusieurs lignes (CT)]
\endinput \ No newline at end of file
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