texlive[64580] Master/texmf-dist: dijkstra (2oct22)

commits+karl at tug.org commits+karl at tug.org
Sun Oct 2 22:17:38 CEST 2022


Revision: 64580
          http://tug.org/svn/texlive?view=revision&revision=64580
Author:   karl
Date:     2022-10-02 22:17:38 +0200 (Sun, 02 Oct 2022)
Log Message:
-----------
dijkstra (2oct22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/dijkstra/README
    trunk/Master/texmf-dist/doc/latex/dijkstra/dijkstra-fr.pdf
    trunk/Master/texmf-dist/doc/latex/dijkstra/dijkstra-fr.tex
    trunk/Master/texmf-dist/tex/latex/dijkstra/dijkstra.sty

Modified: trunk/Master/texmf-dist/doc/latex/dijkstra/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/dijkstra/README	2022-10-02 20:17:27 UTC (rev 64579)
+++ trunk/Master/texmf-dist/doc/latex/dijkstra/README	2022-10-02 20:17:38 UTC (rev 64580)
@@ -3,9 +3,9 @@
              L'extension
                dijkstra
                
-                v0.12
+                v0.13
 
-            25 juin 2020
+          1er octobre 2022
 ___________________________________
 
 Authors   : Christian Tellechea

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

Modified: trunk/Master/texmf-dist/doc/latex/dijkstra/dijkstra-fr.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/dijkstra/dijkstra-fr.tex	2022-10-02 20:17:27 UTC (rev 64579)
+++ trunk/Master/texmf-dist/doc/latex/dijkstra/dijkstra-fr.tex	2022-10-02 20:17:38 UTC (rev 64580)
@@ -1,16 +1,14 @@
-% !TeX encoding = ISO-8859-1
+% !TeX TS-program = lualatex
+% !TeX encoding = UTF-8
 % Ceci est la documentation du package "dijkstra"
 %
-% Fichier compil\xE9 avec pdflatex
 \documentclass[french,a4paper,10pt]{article}
-\usepackage[latin1]{inputenc}
-\usepackage[T1]{fontenc}
 \usepackage[margin=1cm]{geometry}
 \usepackage[bottom]{footmisc}
-\usepackage{libertine,boites,tikz,enumitem,MnSymbol,babel,xspace,listings,dijkstra}
+\usepackage{libertine,boites,tikz,enumitem,babel,xspace,listings,dijkstra}
 \usetikzlibrary{arrows.meta}
-\usepackage[scaled=0.85]{luximono}
-\frenchbsetup{og=\xAB,fg=\xBB}
+\usepackage[scaled=0.8]{GoMono}
+\frenchbsetup{og=«,fg=»}
 \def\DIJK{\texttt{\dijkname}\xspace}
 \makeatletter
 \def\code{\expandafter\code at i\string}
@@ -101,7 +99,7 @@
 			\catcode`\<13 \catcode`\>13 \def<{\begingroup$\langle$\itshape}\def>{$\rangle$\endgroup}%
 			\@ifstar\@sverb\@verb}
 \endgroup
-\def\longfrdijkdate at i#1/#2/#3\@nil{\number#3\relax\space \ifcase#2 \or janvier\or f\xE9vrier\or mars\or avril\or mai\or juin\or juillet\or aout\or septembre\or octobre\or novembre\or d\xE9cembre\fi\space#1}
+\def\longfrdijkdate at i#1/#2/#3\@nil{\number#3\relax\space \ifcase#2 \or janvier\or février\or mars\or avril\or mai\or juin\or juillet\or aout\or septembre\or octobre\or novembre\or décembre\fi\space#1}
 \edef\longfrdijkdate{\expandafter\longfrdijkdate at i\dijkdate\@nil}
 \makeatother
 \begingroup
@@ -111,7 +109,7 @@
 		\hbox to .25\linewidth{%
 			\color{teal}\bfseries\ttfamily
 			\detokenize{#1}=$\langle$\detokenize{#2}$\rangle$\hss}\kern2.5em 
-		(\textit{D\xE9faut} : {\color{teal}\ttfamily
+		(\textit{Défaut} : {\color{teal}\ttfamily
 		\skv_eearg\skv_ifempty{\useKV[\dijkname]{#1}}
 			{$\langle$vide$\rangle$}
 			{"\detokenize\expandafter\expandafter\expandafter{\useKV[\dijkname]{#1}}"}})%
@@ -136,12 +134,12 @@
 	\endgroup
 	\vskip2cm
 	\leftskip=.2\linewidth \rightskip=.2\linewidth \small
-	Cette petite extension met en \oe uvre l'algorithme de Dijkstra pour des graphes pond\xE9r\xE9s, orient\xE9s ou non : le tableau de recherche du plus court chemin peut \xEAtre affich\xE9, la distance minimale entre deux sommets et le chemin correspondant sont stock\xE9s dans des macros.
+	Cette petite extension met en \oe uvre l'algorithme de Dijkstra pour des graphes pondérés, orientés ou non : le tableau de recherche du plus court chemin peut être affiché, la distance minimale entre deux sommets et le chemin correspondant sont stockés dans des macros.
 \end{titlepage}
 \parindent0pt
 
 \section{Un exemple}
-Dans le graphe \emph{non orient\xE9} suivant, quel est le plus court chemin pour aller de A \xE0 F ?
+Dans le graphe \emph{non orienté} suivant, quel est le plus court chemin pour aller de A à F ?
 
 \begin{center}
 	\begin{tikzpicture}[scale=1.75]
@@ -169,7 +167,7 @@
 \end{center}
 
 \paragraph{Lire le graphe}
-Pour trouver le plus court chemin pour aller de A \xE0 F, il faut d'abord lire le graphe. Comme il est fr\xE9quent que les graphes soient peu peupl\xE9s, j'ai pris le parti de d\xE9finir un graphe par une liste d'adjacence. Ainsi, la macro \verb|\readgraph|, qui va lire le graphe, admet comme argument obligatoire une liste d'adjacence :
+Pour trouver le plus court chemin pour aller de A à F, il faut d'abord lire le graphe. Comme il est fréquent que les graphes soient peu peuplés, j'ai pris le parti de définir un graphe par une liste d'adjacence. Ainsi, la macro \verb|\readgraph|, qui va lire le graphe, admet comme argument obligatoire une liste d'adjacence :
 
 \code/\readgraph{
 		A [B=7, D=15],
@@ -179,11 +177,11 @@
 		E [F=14]
 }/
 
-Les espaces sont ignor\xE9s de part et d'autre des noms des sommets, des crochets (ouvrants et fermants), des signes \xAB\verb/=/\xBB et des virgules. Ainsi, ce n'est que dans les noms des sommets que les espaces ne sont pas ignor\xE9s : par exemple, le sommet \xAB\verb|A 1|\xBB est distinct du sommet \xAB\verb*|A1|\xBB.
+Les espaces sont ignorés de part et d'autre des noms des sommets, des crochets (ouvrants et fermants), des signes «\verb/=/» et des virgules. Ainsi, ce n'est que dans les noms des sommets que les espaces ne sont pas ignorés : par exemple, le sommet «\verb|A 1|» est distinct du sommet «\verb*|A1|».
 
 \paragraph{Conditions sur les distances}
-Les distances entre sommets \emph{doivent} \xEAtre positives, c'est une limitation intrins\xE8que \xE0 l'algorithme de Dijkstra pour qu'il fonctionne sans erreur. La m\xE9thode de programmation utilis\xE9e dans cette extension exige de plus que ces distances soient des nombres \emph{entiers}.\medbreak
-Une fois que le graphe a \xE9t\xE9 lu, celui-ci est rendu \emph{non orient\xE9} en interne et donc en coulisses, la liste d'adjacence devient
+Les distances entre sommets \emph{doivent} être positives, c'est une limitation intrinsèque à l'algorithme de Dijkstra pour qu'il fonctionne sans erreur. La méthode de programmation utilisée dans cette extension exige de plus que ces distances soient des nombres \emph{entiers}.\medbreak
+Une fois que le graphe a été lu, celui-ci est rendu \emph{non orienté} en interne et donc en coulisses, la liste d'adjacence devient
 
 \code/A [B=7, D=15],
 B [A=7, C=12, E=4, F=16],
@@ -192,10 +190,10 @@
 E [D=2, B=4, F=14],
 F [B=16, C=3, E=14]/
 
-Par cons\xE9quent, la liste d'adjacence entr\xE9e par l'utilisateur ne doit pas contenir d'incoh\xE9rence. Si l'on sp\xE9cifie la distance entre un sommet A et un sommet B par \verb|A[B=<x>,...]| on peut s'\xE9conomiser la peine de sp\xE9cifier cette m\xEAme distance entre B et A puisque c'est fait par l'extension \DIJK automatiquement. En revanche, une erreur sera \xE9mise si dans la liste d'adjacence, on trouve \verb|A[B=<x>,...]| puis \verb|B[A=<y>,...]| o\xF9 \verb-<y>- et \verb-<x>- sont diff\xE9rents.
+Par conséquent, la liste d'adjacence entrée par l'utilisateur ne doit pas contenir d'incohérence. Si l'on spécifie la distance entre un sommet A et un sommet B par \verb|A[B=<x>,...]| on peut s'économiser la peine de spécifier cette même distance entre B et A puisque c'est fait par l'extension \DIJK automatiquement. En revanche, une erreur sera émise si dans la liste d'adjacence, on trouve \verb|A[B=<x>,...]| puis \verb|B[A=<y>,...]| où \verb-<y>- et \verb-<x>- sont différents.
 
 \paragraph{Lancer l'algorithme}
-Une fois que le graphe est lu par la macro \verb|\readgraph|, on lance l'algorithme avec \verb|\dijkstra{<A>}{<B>}| o\xF9 \verb-<A>- et \verb-<B>- sont deux sommets du graphe. La distance minimale entre ces deux sommets est stock\xE9e dans la macro \verb|\dijkdist| et le chemin correspondant dans \verb|\dijkpath|.
+Une fois que le graphe est lu par la macro \verb|\readgraph|, on lance l'algorithme avec \verb|\dijkstra{<A>}{<B>}| où \verb-<A>- et \verb-<B>- sont deux sommets du graphe. La distance minimale entre ces deux sommets est stockée dans la macro \verb|\dijkdist| et le chemin correspondant dans \verb|\dijkpath|.
 
 \exemple|\readgraph{
 	A [B=7, D=15],
@@ -207,10 +205,10 @@
 Distance A-F = \dijkdist\par
 Chemin = \dijkpath|
 
-Dans le tableau, les colonnes sont dispos\xE9es dans le \emph{m\xEAme ordre} que celui des sommets dans la liste d'adjacence lue par \verb|\readgraph|.
+Dans le tableau, les colonnes sont disposées dans le \emph{même ordre} que celui des sommets dans la liste d'adjacence lue par \verb|\readgraph|.
 
-\section{Graphe orient\xE9}
-Pour sp\xE9cifier \xE0 \verb|\readgraph| que la liste d'adjacence est celle d'un graphe \emph{orient\xE9}, la macro doit \xEAtre suivie d'une \xE9toile.
+\section{Graphe orienté}
+Pour spécifier à \verb|\readgraph| que la liste d'adjacence est celle d'un graphe \emph{orienté}, la macro doit être suivie d'une étoile.
 
 \begin{center}
 	\begin{tikzpicture}[scale=1.75]
@@ -258,46 +256,46 @@
 Distance A-H = \dijkdist\par
 Chemin = \dijkpath|
 
-\section{Param\xE8tres}
-\paragraph{Param\xE8tres de \texttt{\char`\\ dijkstra}}
-Des \verb|<param\xE8tres>| peuvent \xEAtre pass\xE9s \xE0 la macro \verb|\dijkstra| dans son argument optionnel qui prend la forme d'une liste de \verb|<cl\xE9>=<valeur>|.
+\section{Paramètres}
+\paragraph{Paramètres de \texttt{\char`\\ dijkstra}}
+Des \verb|<paramètres>| peuvent être passés à la macro \verb|\dijkstra| dans son argument optionnel qui prend la forme d'une liste de \verb|<clé>=<valeur>|.
 
-On peut \xE9galement r\xE9gler des \verb|<param\xE8tres>| pour toutes les ex\xE9cutions de la macro \verb|\dijkstra| \xE0 venir avec
+On peut également régler des \verb|<paramètres>| pour toutes les exécutions de la macro \verb|\dijkstra| à venir avec
 \begin{center}
-	\verb|\setdijk{<param\xE8tres>}|
+	\verb|\setdijk{<paramètres>}|
 \end{center}
-mais aussi modifier des \verb|<param\xE8tres>| \emph{par d\xE9faut} avec
+mais aussi modifier des \verb|<paramètres>| \emph{par défaut} avec
 \begin{center}
-	\verb|\setdijkdefault{<param\xE8tres>}|
+	\verb|\setdijkdefault{<paramètres>}|
 \end{center}
 
-Pour r\xE9initialiser toutes les \verb|<cl\xE9s>| \xE0 leur \verb|<valeur>| par d\xE9faut, il faut ex\xE9cuter la macro \verb|\initdijk|.\medbreak
+Pour réinitialiser toutes les \verb|<clés>| à leur \verb|<valeur>| par défaut, il faut exécuter la macro \verb|\initdijk|.\medbreak
 
-Voici toutes les \verb|<cl\xE9s>|, leur \verb|<valeur>| par d\xE9faut et leur description.
+Voici toutes les \verb|<clés>|, leur \verb|<valeur>| par défaut et leur description.
 
-\cleval{show-tab}{bool\xE9en}
-Lorsque cette \verb|<cl\xE9>| est \verb|true|, le tableau est affich\xE9 par la macro \verb|\dijkstra|. Il ne l'est pas dans le cas contraire.
+\cleval{show-tab}{booléen}
+Lorsque cette \verb|<clé>| est \verb|true|, le tableau est affiché par la macro \verb|\dijkstra|. Il ne l'est pas dans le cas contraire.
 
 \cleval{v-position}{texte}
-Ce param\xE8tre est plac\xE9 dans l'argument optionnel de \verb|\begin{tabular}[<v-position>]| pour sp\xE9cifier la position que doit avoir le tableau par rapport \xE0 la ligne de base.
+Ce paramètre est placé dans l'argument optionnel de \verb|\begin{tabular}[<v-position>]| pour spécifier la position que doit avoir le tableau par rapport à la ligne de base.
 
 \cleval{pre-tab}{code}
-Ce \verb|<code>| arbitraire est ex\xE9cut\xE9 juste avant le \verb|\begin{tabular}|.
+Ce \verb|<code>| arbitraire est exécuté juste avant le \verb|\begin{tabular}|.
 
 \cleval{post-tab}{code}
-Ce \verb|<code>| arbitraire est ex\xE9cut\xE9 juste apr\xE8s le \verb|\end{tabular}|.
+Ce \verb|<code>| arbitraire est exécuté juste après le \verb|\end{tabular}|.
 
 \cleval{col-type}{code}
 Ce \verb|<code>| est le descripteur des colonnes contenant les sommets.
 
 \cleval{infinity-code}{code}
-Ce \verb|<code>| est ex\xE9cut\xE9 pour exprimer une distance infinie dans le tableau et dans la macro \verb|\dijkdist|.
+Ce \verb|<code>| est exécuté pour exprimer une distance infinie dans le tableau et dans la macro \verb|\dijkdist|.
 
 \cleval{norevisit-code}{code}
-Ce \verb|<code>| est ex\xE9cut\xE9 dans le tableau pour exprimer qu'un sommet a d\xE9j\xE0 \xE9t\xE9 fix\xE9.
+Ce \verb|<code>| est exécuté dans le tableau pour exprimer qu'un sommet a déjà été fixé.
 
-\cleval{h-rules}{bool\xE9en}
-Lorsque ce bool\xE9en est \verb|true|, les r\xE9glures horizontales entre les \xE9tapes sont trac\xE9es dans le tableau.
+\cleval{h-rules}{booléen}
+Lorsque ce booléen est \verb|true|, les réglures horizontales entre les étapes sont tracées dans le tableau.
 
 \exemple|\readgraph{
 	A [B=7, D=15],
@@ -309,14 +307,14 @@
 \dijkstra[h-rules=true,
           v-position=b]{A}{F}|
 
-\cleval{show-lastcol}{bool\xE9en}
-Lorsque ce bool\xE9en est \verb|true|, une colonne suppl\xE9mentaire est affich\xE9e dans le tableau; cette colonne correspond au sommet fix\xE9.
+\cleval{show-lastcol}{booléen}
+Lorsque ce booléen est \verb|true|, une colonne supplémentaire est affichée dans le tableau; cette colonne correspond au sommet fixé.
 
 \cleval{lastcol-type}{code}
-Ce \verb|<code>| est le descripteur de la colonne correspondant au sommets fix\xE9s.
+Ce \verb|<code>| est le descripteur de la colonne correspondant au sommets fixés.
 
 \cleval{lastcol-label}{code}
-Ce \verb|<code>| contient le nom de la colonne correspondant aux sommets fix\xE9s.
+Ce \verb|<code>| contient le nom de la colonne correspondant aux sommets fixés.
 
 \exemple|\readgraph{
 	A [B=7, D=15],
@@ -328,7 +326,7 @@
 \dijkstra[show-lastcol]{A}{F}|
 
 \cleval{nopath-string}{code}
-Ce \verb|<code>| est plac\xE9 dans la macro \verb|\dijkpath| dans le cas o\xF9 aucun chemin n'a pu \xEAtre trouv\xE9, comme cela peut \xEAtre le cas si le graphe est non connexe.
+Ce \verb|<code>| est placé dans la macro \verb|\dijkpath| dans le cas où aucun chemin n'a pu être trouvé, comme cela peut être le cas si le graphe est non connexe.
 
 \exemple|\readgraph{
 	A [B=2],
@@ -339,10 +337,10 @@
 Distance A-E= \dijkdist|
 
 \cleval{path-sep}{code}
-Ce \verb|<code>| est ins\xE9r\xE9 entre chaque sommet dans la macro \verb|\dijkpath|.
+Ce \verb|<code>| est inséré entre chaque sommet dans la macro \verb|\dijkpath|.
 
 \paragraph{Formatage distance/sommet}
-Lorsqu'un sommet a un pr\xE9d\xE9cesseur, la macro \verb|\formatnodewithprev| se charge d'afficher la distance et le sommet. Cette macro prend deux arguments (la \verb|<distance>| et le \verb|<sommet>|) et sa d\xE9finition par d\xE9faut est
+Lorsqu'un sommet a un prédécesseur, la macro \verb|\formatnodewithprev| se charge d'afficher la distance et le sommet. Cette macro prend deux arguments (la \verb|<distance>| et le \verb|<sommet>|) et sa définition par défaut est
 
 \code|\newcommand*\formatnodewithprev[2]%
 {% #1=distance, #2=nom du noeud de provenance
@@ -349,7 +347,7 @@
 	$#1_{\mathrm{#2}}$%
 }|
 
-ce qui a pour effet de mettre le sommet de provenance en indice de la distance. On peut red\xE9finir cette macro pour choisir une autre mise en forme comme ci-dessous o\xF9 le sommet est plac\xE9 entre parenth\xE8ses.
+ce qui a pour effet de mettre le sommet de provenance en indice de la distance. On peut redéfinir cette macro pour choisir une autre mise en forme comme ci-dessous où le sommet est placé entre parenthèses.
 
 \exemple|\renewcommand*\formatnodewithprev[2]%
 {%
@@ -363,14 +361,14 @@
 	E [F=14]}
 Tableau : \dijkstra{A}{F}|
 
-\paragraph{Mise en \xE9vidence du sommet fix\xE9}
-Le premier sommet fix\xE9 est celui de d\xE9part et sa distance est toujours 0.
+\paragraph{Mise en évidence du sommet fixé}
+Le premier sommet fixé est celui de départ et sa distance est toujours 0.
 
-La macro \verb|\highlightfistnode| prend comme argument la distance (qui est 0) et le traite pour effectuer sa mise en forme. Sa d\xE9finition par d\xE9faut, qui compose cette distance en gras, est :
+La macro \verb|\highlightfistnode| prend comme argument la distance (qui est 0) et le traite pour effectuer sa mise en forme. Sa définition par défaut, qui compose cette distance en gras, est :
 
 \code|\newcommand*\highlightfirstnode[1]{$\mathbf{#1}$}|
 
-Les autres sommets, lorsqu'ils sont fix\xE9s, apparaissent dans le tableau avec leur distance et leur nom et sont trait\xE9s par la macro \verb|\highlightnode| qui rend deux arguments. Sa d\xE9finition permet une mise en forme similaire \xE0 ce que fait \verb|\formatnodewithprev|, sauf que la distance et le sommet sont en gras:
+Les autres sommets, lorsqu'ils sont fixés, apparaissent dans le tableau avec leur distance et leur nom et sont traités par la macro \verb|\highlightnode| qui rend deux arguments. Sa définition permet une mise en forme similaire à ce que fait \verb|\formatnodewithprev|, sauf que la distance et le sommet sont en gras:
 
 \code|\newcommand*\highlightnode[2]%
 {% #1=distance, #2=nom du noeud de provenance
@@ -377,7 +375,7 @@
 	$\mathbf{#1}_{\mathrm{\mathbf{#2}}}$%
 }|
 
-Pour obtenir d'autre effets, on peut red\xE9finir ces macros. L'exemple donn\xE9 n'est pas r\xE9aliste tant les effets sont incoh\xE9rents, c'est simplement un aper\xE7u de ce qu'il est possible de faire :
+Pour obtenir d'autre effets, on peut redéfinir ces macros. L'exemple donné n'est pas réaliste tant les effets sont incohérents, c'est simplement un aperçu de ce qu'il est possible de faire :
 
 \exemple|\renewcommand*\highlightfirstnode[1]%
 {%
@@ -417,7 +415,7 @@
 	numbers=left,
 	numberstyle=\tiny\ttfamily\color{black},
 	breaklines=true,
-	prebreak={\hbox{$\rhookswarrow$}},
+	prebreak={\hbox{$\hookleftarrow$}},
 	breakindent=3em,
 	breakautoindent=true,
 	xleftmargin=1em,

Modified: trunk/Master/texmf-dist/tex/latex/dijkstra/dijkstra.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/dijkstra/dijkstra.sty	2022-10-02 20:17:27 UTC (rev 64579)
+++ trunk/Master/texmf-dist/tex/latex/dijkstra/dijkstra.sty	2022-10-02 20:17:38 UTC (rev 64580)
@@ -1,12 +1,12 @@
-% !TeX encoding = ISO-8859-1
+% !TeX encoding = UTF-8
 % Ce fichier contient le code de l'extension "dijkstra"
 %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                                    %
 \def\dijkname                   {dijkstra}                           %
-\def\dijkver                      {0.12}                             %
+\def\dijkver                      {0.13}                             %
 %                                                                    %
-\def\dijkdate                  {2020/06/25}                          %
+\def\dijkdate                  {2022/10/01}                          %
 %                                                                    %
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %
@@ -24,14 +24,14 @@
 % This work has the LPPL maintenance status `maintained'.
 %
 % The Current Maintainer of this work is Christian Tellechea
-% Copyright : Christian Tellechea 2017-2020
+% Copyright : Christian Tellechea 2017-2022
 % email: unbonpetit at netc.fr
 %        Commentaires, suggestions et signalement de bugs bienvenus !
 %        Comments, bug reports and suggestions are welcome.
 % --------------------------------------------------------------------
-% L'extension dijkstra est compos\xE9e des 4 fichiers suivants :
+% L'extension dijkstra est composée des 4 fichiers suivants :
 %   - code               : dijkstra.sty
-%   - manuel en fran\xE7ais : dijkstra-fr.tex & dijkstra-fr.pdf
+%   - manuel en français : dijkstra-fr.tex & dijkstra-fr.pdf
 %   - fichier lisezmoi   : README
 % --------------------------------------------------------------------
 %
@@ -52,14 +52,23 @@
 \def\dijk_quark{\dijk_quark}
 \def\dijk_cscmd#1#2{\expandafter#1\csname#2\endcsname}
 \def\dijk_gobarg#1{}
+\long\def\dijk_first#1#2{#1}
+\long\def\dijk_second#1#2{#2}
+\long\def\dijk_earg#1#2{\expandafter\dijk_earg_i\expandafter{#2}{#1}}\let\dijk_exparg\dijk_earg
+\long\def\dijk_eearg#1#2{\expandafter\expandafter\expandafter\dijk_earg_i\expandafter\expandafter\expandafter{#2}{#1}}
+\long\def\dijk_earg_i#1#2{#2{#1}}
+\long\def\dijk_ifx#1{\ifx#1\expandafter\dijk_first\else\expandafter\dijk_second\fi}
+\long\def\dijk_ifempty#1{\dijk_ifempty_i#1\_nil\_nil\dijk_second\dijk_first\__nil}%
+\long\def\dijk_ifempty_i#1#2\_nil#3#4#5\__nil{#4}
+\def\dijk_ifcsname#1{\ifcsname#1\endcsname\expandafter\skv_first\else\expandafter\skv_second\fi}
 \def\dijk_addtomacro#1#2{\expandafter\def\expandafter#1\expandafter{#1#2}}
-\def\dijk_eaddtomacro#1#2{\skv_exparg{\dijk_addtomacro#1}{#2}}
-\def\dijk_eeaddtomacro#1#2{\skv_eearg{\dijk_addtomacro#1}{#2}}
-\long\def\dijk_exptwoargs#1#2#3{\skv_exparg{\skv_exparg{#1}{#2}}{#3}}
-\def\dijk_ifnum#1{\ifnum#1\expandafter\skv_first\else\expandafter\skv_second\fi}
+\def\dijk_eaddtomacro#1#2{\dijk_exparg{\dijk_addtomacro#1}{#2}}
+\def\dijk_eeaddtomacro#1#2{\dijk_eearg{\dijk_addtomacro#1}{#2}}
+\long\def\dijk_exptwoargs#1#2#3{\dijk_exparg{\dijk_exparg{#1}{#2}}{#3}}
+\def\dijk_ifnum#1{\ifnum#1\expandafter\dijk_first\else\expandafter\dijk_second\fi}
 \def\dijk_swapargs#1#2#3{#1{#3}{#2}}
-\def\dijk_ifstar#1#2{\def\dijk_ifstar_i{\skv_ifx{*\dijk_nxttok}{\skv_first{#1}}{#2}}\futurelet\dijk_nxttok\dijk_ifstar_i}
-\def\dijk_ifopt#1#2{\def\dijk_ifopt_i{\skv_ifx{[\dijk_nxttok}{#1}{#2}}\futurelet\dijk_nxttok\dijk_ifopt_i}
+\def\dijk_ifstar#1#2{\def\dijk_ifstar_i{\dijk_ifx{*\dijk_nxttok}{\dijk_first{#1}}{#2}}\futurelet\dijk_nxttok\dijk_ifstar_i}
+\def\dijk_ifopt#1#2{\def\dijk_ifopt_i{\dijk_ifx{[\dijk_nxttok}{#1}{#2}}\futurelet\dijk_nxttok\dijk_ifopt_i}
 \def\dijk_stripsp#1%
 {%
 	\long\def\dijk_stripsp##1{\expanded{\dijk_stripsp_i\_marksp##1\__nil\_marksp#1\_marksp\_nil}}%
@@ -69,7 +78,6 @@
 }
 \dijk_stripsp{ }
 
-
 \def\dijk_foreach#1\in#2#3%
 {%
 	\global\advance\dijk_nest1
@@ -82,11 +90,11 @@
 \def\dijk_foreach_i#1#2,%
 {%
 	\def#1{#2}%
-	\skv_ifx{\dijk_quark#1}
+	\dijk_ifx{\dijk_quark#1}
 	{%
 	}
 	{%
-		\skv_ifx{#1\empty}{}{\csname dijk_loopcode_\number\dijk_nest\endcsname}%
+		\dijk_ifx{#1\empty}{}{\csname dijk_loopcode_\number\dijk_nest\endcsname}%
 		\dijk_foreach_i#1%
 	}%
 }%
@@ -93,7 +101,7 @@
 
 \def\dijk_ifinst#1#2%
 {% #2 est-il dans #1 ?
-	\def\dijk_ifinst_i##1#2##2\_nil{\dijk_swapargs{\skv_ifempty{##2}}}%
+	\def\dijk_ifinst_i##1#2##2\_nil{\dijk_swapargs{\dijk_ifempty{##2}}}%
 	\dijk_ifinst_i#1#2\_nil
 }
 
@@ -105,8 +113,8 @@
 \def\readgraph_a#1%
 {%
 	\let\dijk_initlistofnodes\empty% liste des sommets
-	\let\dijk_graph\empty% argument #1 o\xF9 l'on va enlever les espaces
-	\dijk_sanitizegraph#1,\dijk_quark[],% enlever tous les espaces ind\xE9sirables et \xE9valuer les nombres dans l'argument #1
+	\let\dijk_graph\empty% argument #1 où l'on va enlever les espaces
+	\dijk_sanitizegraph#1,\dijk_quark[],% enlever tous les espaces indésirables et évaluer les nombres dans l'argument #1
 	\expandafter\readgraph_b\dijk_graph,\dijk_quark[],%
 }
 
@@ -117,12 +125,12 @@
 
 \def\dijk_sanitizegraph_i#1[#2],%
 {%
-	\skv_ifx{\dijk_quark#1}
+	\dijk_ifx{\dijk_quark#1}
 	{%
 		\dijk_removelastcommainmacro\dijk_graph
 	}
 	{%
-		\skv_eearg{\def\dijk_childnodes}{\dijk_stripsp{#1}[}%
+		\dijk_eearg{\def\dijk_childnodes}{\dijk_stripsp{#1}[}%
 		\dijk_foreach\dijk_temp\in{#2}{\expandafter\dijk_sanitizegraph_ii\dijk_temp\_nil}%
 		\dijk_removelastcommainmacro\dijk_childnodes
 		\dijk_eaddtomacro\dijk_graph{\dijk_childnodes],}%
@@ -148,11 +156,11 @@
 
 \def\readgraph_b#1#2[#3]#4,%
 {%
-	\skv_ifx{\dijk_quark#1}
+	\dijk_ifx{\dijk_quark#1}
 	{%
-		\skv_exparg{\dijk_foreach\dijk_tempnodename\in}{\dijk_initlistofnodes}
+		\dijk_exparg{\dijk_foreach\dijk_tempnodename\in}{\dijk_initlistofnodes}
 		{% pour chaque sommet
-			\skv_eearg{\dijk_foreach\dijk_tempnodechild\in}{\csname dijknode\dijk_tempnodename\endcsname}
+			\dijk_eearg{\dijk_foreach\dijk_tempnodechild\in}{\csname dijknode\dijk_tempnodename\endcsname}
 			{% pour chaque enfant
 				\expandafter\readgraph_c\dijk_tempnodechild\_nil\dijk_currentnodechildname\dijk_currentnodechilddist% capturer nom et distance de l'enfant
 				\dijk_exptwoargs\dijk_ifinst\dijk_initlistofnodes{\dijk_currentnodechildname,}% si l'enfant n'est pas dans la liste des sommets
@@ -162,11 +170,11 @@
 					\dijk_eaddtomacro\dijk_initlistofnodes{\dijk_currentnodechildname,}% l'y mettre
 					\dijk_cscmd\let{dijknode\dijk_currentnodechildname}\empty% et initialiser la liste de ses enfants
 				}%
-				\unless\ifdijk_oriented% si graphe non orient\xE9, ajouter les distances inverses
-					\skv_exparg{\skv_eearg\dijk_ifinst{\csname dijknode\dijk_currentnodechildname\endcsname}}{\dijk_tempnodename=}% si le parent est dans d\xE9j\xE0 un des enfants de l'enfant
+				\unless\ifdijk_oriented% si graphe non orienté, ajouter les distances inverses
+					\dijk_exparg{\dijk_eearg\dijk_ifinst{\csname dijknode\dijk_currentnodechildname\endcsname}}{\dijk_tempnodename=}% si le parent est dans déjà un des enfants de l'enfant
 					{%
 						\expandafter\def\expandafter\readgraph_d\expandafter########\expandafter1\dijk_tempnodename=########2,########3\_nil{%
-							\unless\ifnum########2=\dijk_currentnodechilddist\relax% si distance diff\xE9rente  : erreur, c'est pas normal
+							\unless\ifnum########2=\dijk_currentnodechilddist\relax% si distance différente  : erreur, c'est pas normal
 								\errmessage{Distance "\dijk_tempnodename=########2" incorrecte dans \dijk_currentnodechildname{} comprise comme "\dijk_tempnodename=\dijk_currentnodechilddist"}%
 								\dijk_cscmd\edef{dijknode\dijk_currentnodechildname}{########1\dijk_tempnodename=\dijk_currentnodechilddist,########3}%
 							\fi
@@ -180,11 +188,11 @@
 			}%
 		}%
 		\dijk_cnt0
-		\skv_exparg{\dijk_foreach\dijk_tempnodename\in}{\dijk_initlistofnodes}
+		\dijk_exparg{\dijk_foreach\dijk_tempnodename\in}{\dijk_initlistofnodes}
 		{% pour chaque sommet, construire la liste de ses enfants
 			\advance\dijk_cnt1
 			\dijk_cscmd\let{listofchilds_\dijk_tempnodename}\empty
-			\skv_eearg{\dijk_foreach\dijk_tempnodechild\in}{\csname dijknode\dijk_tempnodename\endcsname}
+			\dijk_eearg{\dijk_foreach\dijk_tempnodechild\in}{\csname dijknode\dijk_tempnodename\endcsname}
 			{%
 				\expandafter\readgraph_c\dijk_tempnodechild\_nil\dijk_currentnodechildname\dijk_currentnodechilddist
 				\expandafter\dijk_eaddtomacro\csname listofchilds_\dijk_tempnodename\endcsname{\dijk_currentnodechildname,}%
@@ -212,10 +220,10 @@
 }
 
 \def\dijk_removenode#1%
-{% enl\xE8ve le sommet #1 de la liste des sommets non vus
-	\skv_exparg{\dijk_ifinst}{\expandafter,\dijk_nodestoexplore}{,#1,}
+{% enlève le sommet #1 de la liste des sommets non vus
+	\dijk_exparg{\dijk_ifinst}{\expandafter,\dijk_nodestoexplore}{,#1,}
 	{%
-		\def\dijk_removenode_i##1,#1,##2\_nil{\skv_exparg{\def\dijk_nodestoexplore}{\dijk_gobarg##1,##2}}%
+		\def\dijk_removenode_i##1,#1,##2\_nil{\dijk_exparg{\def\dijk_nodestoexplore}{\dijk_gobarg##1,##2}}%
 		\expandafter\dijk_removenode_i\expandafter,\dijk_nodestoexplore\_nil
 	}
 	{%
@@ -227,14 +235,14 @@
 	\dijk_ifopt{\dijkstra_i}{\dijkstra_i[]}%
 }
 \def\dijkstra_i[#1]#2#3%
-{% #1=sommet d\xE9part   #2=sommet arriv\xE9e
+{% #1=sommet départ   #2=sommet arrivée
 	\begingroup
-		\skv_ifempty{#1}{}{\setdijk{#1}}%
+		\dijk_ifempty{#1}{}{\setdijk{#1}}%
 		\let\dijk_listofnodes\dijk_initlistofnodes
 		\let\dijk_nodestoexplore\dijk_initlistofnodes
 		\dijk_cnt0
-		\skv_eearg{\def\dijk_currentnode}{\dijk_stripsp{#2}}%
-		\skv_eearg{\def\dijk_endnode}{\dijk_stripsp{#3}}%
+		\dijk_eearg{\def\dijk_currentnode}{\dijk_stripsp{#2}}%
+		\dijk_eearg{\def\dijk_endnode}{\dijk_stripsp{#3}}%
 		\edef\dijk_tab
 		{%
 			\noexpand\dijk_pre_tab
@@ -247,11 +255,11 @@
 					\noexpand\hline
 		}%
 		\def\dijk_autoamp{\def\dijk_autoamp{\dijk_addtomacro\dijk_tab&}}%
-		\skv_exparg{\dijk_foreach\dijk_tempnodename\in}\dijk_listofnodes
+		\dijk_exparg{\dijk_foreach\dijk_tempnodename\in}\dijk_listofnodes
 		{% pour tous le sommets du graphe
-			\dijk_autoamp% ajouter "&", sauf la premi\xE8re fois
-			\dijk_cscmd\let{dist_\dijk_tempnodename}\dijk_maxint% toutes les distances \xE0 +inf
-			\dijk_cscmd\let{prev_\dijk_tempnodename}\dijk_quark% tous les pr\xE9decesseurs \xE0 <quark>
+			\dijk_autoamp% ajouter "&", sauf la première fois
+			\dijk_cscmd\let{dist_\dijk_tempnodename}\dijk_maxint% toutes les distances à +inf
+			\dijk_cscmd\let{prev_\dijk_tempnodename}\dijk_quark% tous les prédecesseurs à <quark>
 			\dijk_eaddtomacro\dijk_tab{\dijk_tempnodename}% peupler 1re ligne du tableau
 		}%
 		\ifboolKV[\dijkname]{show-lastcol}
@@ -258,12 +266,12 @@
 			{\dijk_eaddtomacro\dijk_tab{\expandafter&\dijk_lastcol_label}}
 			{}%
 		\dijk_addtomacro\dijk_tab{\\\hline}%
-		\dijk_cscmd\def{dist_\dijk_currentnode}{0}% distance sommet de d\xE9part = 0
+		\dijk_cscmd\def{dist_\dijk_currentnode}{0}% distance sommet de départ = 0
 		\dijk_whilenotempty\dijk_nodestoexplore
 		{%
 			\dijk_findmindist\dijk_currentnode% retourne \dijk_currentnode : le sommet enfant ayant la distance la plus faible
-			\skv_ifx{\dijk_quark\dijk_currentnode}
-			{% si le sommet n'est pas trouv\xE9 (graphe non connexe)
+			\dijk_ifx{\dijk_quark\dijk_currentnode}
+			{% si le sommet n'est pas trouvé (graphe non connexe)
 				\global\let\dijkdist\dijk_infinity_code
 				\let\dijk_nodestoexplore\empty% sortir de la boucle
 			}
@@ -272,13 +280,13 @@
 				\unless\ifx\dijk_nodestoexplore\empty
 					\dijk_addstep
 				\fi
-				\skv_ifx{\dijk_currentnode\dijk_endnode}
+				\dijk_ifx{\dijk_currentnode\dijk_endnode}
 				{% si le sommet de sortie est atteint
 					\let\dijk_nodestoexplore\empty% sortir de la boucle
 				}
 				{% sinon
-					\skv_exparg\dijk_removenode\dijk_currentnode% enlever ce sommet du graphe \xE0 explorer
-					\skv_eearg{\dijk_foreach\dijk_temp\in}{\csname listofchilds_\dijk_currentnode\endcsname}
+					\dijk_exparg\dijk_removenode\dijk_currentnode% enlever ce sommet du graphe à explorer
+					\dijk_eearg{\dijk_foreach\dijk_temp\in}{\csname listofchilds_\dijk_currentnode\endcsname}
 					{%
 						\dijk_exptwoargs\dijk_ifinst\dijk_nodestoexplore{\dijk_temp,}
 							{\dijk_exptwoargs\dijk_updatedist\dijk_currentnode\dijk_temp}%
@@ -293,9 +301,9 @@
 			{\dijk_addtomacro\dijk_tab\hline}%
 		\dijk_addtomacro\dijk_tab{\end{tabular}}%
 		\dijk_eaddtomacro\dijk_tab{\dijk_post_tab}%
-		\skv_ifx{\dijk_quark\dijk_currentnode}
+		\dijk_ifx{\dijk_quark\dijk_currentnode}
 			{\global\let\dijkpath\dijk_nopath_string}
-			{\skv_exparg\dijk_createpath\dijk_currentnode}% calculer le chemin sauf s'il est impossible \xE0 trouver
+			{\dijk_exparg\dijk_createpath\dijk_currentnode}% calculer le chemin sauf s'il est impossible à trouver
 		\ifboolKV[\dijkname]{show-tab}\dijk_tab{}% afficher le tableau
 	\endgroup
 }
@@ -307,21 +315,21 @@
 }
 \def\dijk_createpathi#1%
 {% #1=sommet en cours
-	\skv_eearg{\def\dijk_temp}{\csname prev_#1\endcsname}%
-	\skv_ifx{\dijk_quark\dijk_temp}
+	\dijk_eearg{\def\dijk_temp}{\csname prev_#1\endcsname}%
+	\dijk_ifx{\dijk_quark\dijk_temp}
 	{%
 	}
 	{%
 		\xdef\dijkpath{\dijk_temp\dijk_path_sep\dijkpath}%
-		\skv_exparg\dijk_createpathi\dijk_temp
+		\dijk_exparg\dijk_createpathi\dijk_temp
 	}%
 }
 
 \def\dijk_findmindist#1%
-{% trouve dans "sommets \xE0 explorer" celui ayant la distance mini
+{% trouve dans "sommets à explorer" celui ayant la distance mini
 	\let\dijk_mindist\dijk_maxint
 	\let#1\dijk_quark
-	\skv_exparg{\dijk_foreach\dijk_currentnodechildname\in}\dijk_nodestoexplore
+	\dijk_exparg{\dijk_foreach\dijk_currentnodechildname\in}\dijk_nodestoexplore
 	{%
 		\ifnum\csname dist_\dijk_currentnodechildname\endcsname<\dijk_mindist\relax
 			\expandafter\let\expandafter\dijk_mindist\csname dist_\dijk_currentnodechildname\endcsname
@@ -331,8 +339,8 @@
 }
 
 \def\dijk_whilenotempty#1#2%
-{% tant que la macro #1 n'est pas \ifx-vide, ex\xE9cuter #2
-	\skv_ifx{#1\empty}{}{#2\dijk_whilenotempty#1{#2}}%
+{% tant que la macro #1 n'est pas \ifx-vide, exécuter #2
+	\dijk_ifx{#1\empty}{}{#2\dijk_whilenotempty#1{#2}}%
 }
 
 \def\dijk_updatedist#1#2%
@@ -348,7 +356,7 @@
 \def\dijk_addstep
 {%
 	\def\dijk_autoamp{\def\dijk_autoamp{\dijk_addtomacro\dijk_tab&}}%
-	\skv_exparg{\dijk_foreach\dijk_temp\in}\dijk_listofnodes
+	\dijk_exparg{\dijk_foreach\dijk_temp\in}\dijk_listofnodes
 	{%
 		\dijk_autoamp
 		\dijk_exptwoargs\dijk_ifinst\dijk_nodestoexplore\dijk_temp
@@ -356,9 +364,9 @@
 			\ifnum\csname dist_\dijk_temp\endcsname=\dijk_maxint\relax
 				\dijk_eaddtomacro\dijk_tab{\dijk_infinity_code}%
 			\else
-				\skv_ifx{\dijk_temp\dijk_currentnode}% si c'est le sommet fix\xE9, le mettre en valeur
+				\dijk_ifx{\dijk_temp\dijk_currentnode}% si c'est le sommet fixé, le mettre en valeur
 				{%
-					\skv_ifcsname{distwithprev_\dijk_temp}
+					\dijk_ifcsname{distwithprev_\dijk_temp}
 					{%
 						\dijk_eeaddtomacro\dijk_tab{\expandafter\expandafter\expandafter\dijk_highlightnode
 							\csname distwithprev_\dijk_temp\endcsname}% forme \dijk_highlightnode\formatnodewithprev{<dist>}{<sommet>}
@@ -375,11 +383,11 @@
 			\fi
 		}%
 		{%
-			\dijk_eaddtomacro\dijk_tab{\dijk_no_revisit_code}% sommet d\xE9j\xE0 fix\xE9
+			\dijk_eaddtomacro\dijk_tab{\dijk_no_revisit_code}% sommet déjà fixé
 		}%
 	}%
 	\ifboolKV[\dijkname]{show-lastcol}
-		{\dijk_eaddtomacro\dijk_tab{\expandafter&\detokenize\expandafter{\dijk_currentnode}}}% ajout du sommet fix\xE9
+		{\dijk_eaddtomacro\dijk_tab{\expandafter&\detokenize\expandafter{\dijk_currentnode}}}% ajout du sommet fixé
 		{}%
 	\dijk_addtomacro\dijk_tab{\\}%
 	\ifboolKV[\dijkname]{h-rules}
@@ -406,10 +414,10 @@
 
 \def\initdijk{\restoreKV[\dijkname]}
 
-% Macros permettant de modifier les <valeurs> des <cl\xE9s>
+% Macros permettant de modifier les <valeurs> des <clés>
 \def\setdijk#{\setKV[\dijkname]}
 
-% ... ainsi que les <valeurs> par d\xE9faut
+% ... ainsi que les <valeurs> par défaut
 \def\setdijkdefault#{\setKVdefault[\dijkname]}
 
 \newcommand*\formatnodewithprev[2]%
@@ -431,16 +439,16 @@
 	show-tab       = true,% afficher le tableau
 	v-position     = c,% argument optionnel de \begin{tabular}[<arg>]
 	pre-tab        = {},% juste avant le \begin{tabular}
-	post-tab       = {},% juste apr\xE8s le \end{tabular}
+	post-tab       = {},% juste après le \end{tabular}
 	col-type       = c,% colonnes de type "c" pour les colonnes de distances
 	infinity-code  = $\infty$,% pour distance infinie
-	norevisit-code = ---,% pour les sommets pr\xE9alablement fix\xE9s
-	h-rules        = false,% pas de filets entre les lignes des \xE9tapes
-	show-lastcol   = false,% si vrai : mettre en plus la colonne "sommet fix\xE9"
-	lastcol-type   =  c|,% derni\xE8re colonne
+	norevisit-code = ---,% pour les sommets préalablement fixés
+	h-rules        = false,% pas de filets entre les lignes des étapes
+	show-lastcol   = false,% si vrai : mettre en plus la colonne "sommet fixé"
+	lastcol-type   =  c|,% dernière colonne
 	lastcol-label  = sommet fix\'e,
 	nopath-string  = Pas de chemin possible,% si chemin impossible
-	path-sep       = -,% s\xE9parateur entre sommets dans le chemin
+	path-sep       = -,% séparateur entre sommets dans le chemin
 }
 
 \endinput
@@ -449,14 +457,18 @@
  _____________________________________________________________________________
 | Version |    Date    | Changements                                          |
 |---------+------------+------------------------------------------------------|
-|   0.1   | 06/09/2017 | Premi\xE8re version                                     |
+|   0.1   | 06/09/2017 | Première version                                     |
 |---------+------------+------------------------------------------------------|
-|   0.11  | 09/09/2017 | - retrait d'un \show, laiss\xE9 par oubli apr\xE8s les     |
-|         |            |   phases de d\xE9bogage                                 |
+|   0.11  | 09/09/2017 | - retrait d'un \show, laissé par oubli après les     |
+|         |            |   phases de débogage                                 |
 |         |            | - petit nettoyage du code                            |
 |---------+------------+------------------------------------------------------|
 |   0.12  | 25/06/2020 | - bugfix : le package est rendu compatible avec la   |
 |         |            |   version 0.2 de simplekv                            |
-|         |            | - bugfix : mauvaise gestion est espaces dans la macro|
+|         |            | - bugfix : mauvaise gestion des espaces dans la macro|
 |         |            |   \dijk_sanitizegraph                                |
+|---------+------------+------------------------------------------------------|
+|   0.13  | 01/10/2022 | - le package est rendu compatible avec la version    |
+|         |            |   0.2a de simplekv                                   |
+|         |            | - code en UFT8                                       |
 |---------+------------+------------------------------------------------------|
\ No newline at end of file



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