summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-03-11 20:26:48 +0000
committerKarl Berry <karl@freefriends.org>2018-03-11 20:26:48 +0000
commitecd38b6aed911b2332d01f45bb01dee5d0a9bde7 (patch)
treefdcd5d4d96b0041ae1e02b4e80293d7051bbee2a
parent031e05223ac38bfc9129c658004d4222f4a26209 (diff)
adigraph (10mar18)
git-svn-id: svn://tug.org/texlive/trunk@46922 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/adigraph/adigraph_documentation.pdfbin0 -> 87660 bytes
-rw-r--r--Master/texmf-dist/doc/latex/adigraph/adigraph_documentation.tex (renamed from Master/texmf-dist/doc/latex/adigraph/documentation.tex)174
-rw-r--r--Master/texmf-dist/doc/latex/adigraph/adigraph_working_test.pdfbin0 -> 16456 bytes
-rw-r--r--Master/texmf-dist/doc/latex/adigraph/adigraph_working_test.tex (renamed from Master/texmf-dist/doc/latex/adigraph/test.tex)35
-rw-r--r--Master/texmf-dist/doc/latex/adigraph/documentation.pdfbin83820 -> 0 bytes
-rw-r--r--Master/texmf-dist/doc/latex/adigraph/test.pdfbin13329 -> 0 bytes
-rw-r--r--Master/texmf-dist/tex/latex/adigraph/adigraph.sty214
-rwxr-xr-xMaster/tlpkg/libexec/ctan2tds1
8 files changed, 332 insertions, 92 deletions
diff --git a/Master/texmf-dist/doc/latex/adigraph/adigraph_documentation.pdf b/Master/texmf-dist/doc/latex/adigraph/adigraph_documentation.pdf
new file mode 100644
index 00000000000..4123dc6ead7
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/adigraph/adigraph_documentation.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/adigraph/documentation.tex b/Master/texmf-dist/doc/latex/adigraph/adigraph_documentation.tex
index d572758fe75..5ec01003f68 100644
--- a/Master/texmf-dist/doc/latex/adigraph/documentation.tex
+++ b/Master/texmf-dist/doc/latex/adigraph/adigraph_documentation.tex
@@ -1,6 +1,6 @@
\documentclass{report}
-\title{Adigraph, V1.2}
+\title{Adigraph, V1.3}
\author{Luca Cappelletti}
\date{March 2018}
@@ -118,8 +118,21 @@ Here we create a new Adigraph object, called \textit{myAdigraph}.
}
\end{minted}
+\section{Changing an existing graph}
+You can renovate an older graph by calling \textbackslash RenewAdigraph
+
+\begin{minted}{latex}
+\RenewAdigraph{myAdigraph}{
+ <nodes here, separated by semicolon>
+}{
+ <edges here, separated by semicolon>
+}{
+ <cuts here, separated by semicolon>
+}
+\end{minted}
+
\section{Adding nodes}
-We set its nodes with the following syntax: \textit{<node name: \(x\) coordinate, \(y\) coordinate, color: label>}.
+We set its nodes with the following syntax: \textit{<node name, color: \(x\) coordinate, \(y\) coordinate: label>}.
\begin{figure}
\begin{subfigure}{0.49\textwidth}
@@ -140,24 +153,23 @@ We set its nodes with the following syntax: \textit{<node name: \(x\) coordinate
\end{subfigure}
\end{figure}
-
\subsection{Custom node colors}
-To color a node you can use the following syntax: \textit{<node name: \(x\) coordinate, \(y\) coordinate, textual color>}. For example, to draw s in red and t in blue we would write:
+To color a node you can use the following syntax: \textit{<node name, textual color: \(x\) coordinate, \(y\) coordinate>}. For example, to draw s in red and t in blue we would write:
\begin{figure}
\begin{subfigure}{0.49\textwidth}
\begin{minted}{latex}
\NewAdigraph{myAdigraph}{
- s:0,0,red;
- t:4,0,blue;
+ s,red:0,0;
+ t,blue:4,0;
}
\myAdigraph{}
\end{minted}
\end{subfigure}
\begin{subfigure}{0.49\textwidth}
\NewAdigraph{myAdigraph}{
- s:0,0,red;
- t:4,0,blue;
+ s,red:0,0;
+ t,blue:4,0;
}
\myAdigraph{}
\end{subfigure}
@@ -166,13 +178,13 @@ To color a node you can use the following syntax: \textit{<node name: \(x\) coor
Tested available colors are: red, blue, black, green. You may extend the possible colors with LaTex libraries such as xcolor.
\subsection{Custom node labels}
-To add a custom label you can use the following syntax: either \textit{<node name: \(x\) coordinate, \(y\) coordinate: node label>} or \textit{<node name: \(x\) coordinate, \(y\) coordinate, textual color: node label>} will work:
+To add a custom label you can use the following syntax: either \textit{<node name: \(x\) coordinate, \(y\) coordinate: node label>} or \textit{<node name,textual color: \(x\) coordinate, \(y\) coordinate: node label>} will work:
\begin{figure}
\begin{subfigure}{0.49\textwidth}
\begin{minted}{latex}
\NewAdigraph{myAdigraph}{
- s:0,0,red:start;
+ s,red:0,0:start;
t:4,0:end;
}
\myAdigraph{}
@@ -180,13 +192,81 @@ To add a custom label you can use the following syntax: either \textit{<node nam
\end{subfigure}
\begin{subfigure}{0.49\textwidth}
\NewAdigraph{myAdigraph}{
- s:0,0,red:start;
+ s,red:0,0:start;
t:4,0:end;
}
\myAdigraph{}
\end{subfigure}
\end{figure}
+\section{Automatically position nodes}
+When no coordinates are given or you just don't have time to think abount where to put those nodes, just choose a radius and Adigraph will position them on the circle of that radius.
+
+\begin{figure}
+ \begin{subfigure}{0.49\textwidth}
+ \begin{minted}{latex}
+\NewAdigraph{myAdigraph}{
+ 1:0,0;
+ 2:2;
+ 3:2;
+ 4:2;
+ 5:2;
+ 6:2;
+ 7:2;
+ 8:2;
+}
+\myAdigraph{}
+\end{minted}
+ \end{subfigure}
+ \begin{subfigure}{0.49\textwidth}
+ \NewAdigraph{myAdigraph}{
+ 1:0,0;
+ 2:2;
+ 3:2;
+ 4:2;
+ 5:2;
+ 6:2;
+ 7:2;
+ 8:2;
+ }
+ \myAdigraph{}
+ \end{subfigure}
+\end{figure}
+
+\subsection{Colored automatically positioned nodes}
+
+\begin{figure}
+ \begin{subfigure}{0.49\textwidth}
+ \begin{minted}{latex}
+\NewAdigraph{myAdigraph}{
+ 1:0,0;
+ 2,purple:2;
+ 3,brown:2;
+ 4,gray:2;
+ 5,blue:2;
+ 6,red:2;
+ 7,green:2;
+ 8,pink:2;
+}
+\myAdigraph{}
+\end{minted}
+ \end{subfigure}
+ \begin{subfigure}{0.49\textwidth}
+ \NewAdigraph{myAdigraph}{
+ 1:0,0;
+ 2,purple:2;
+ 3,brown:2;
+ 4,gray:2;
+ 5,blue:2;
+ 6,red:2;
+ 7,green:2;
+ 8,pink:2;
+ }
+ \myAdigraph{}
+ \end{subfigure}
+\end{figure}
+
+
\section{Adding edges}
We set its nodes with the following syntax: \textit{<node name: \(x\) coordinate, \(y\) coordinate, color : label>}.
@@ -620,50 +700,46 @@ If you'd like to color the cuts you just have to add the color as follows: \text
\end{subfigure}
\end{figure}
+
\chapter{Warnings}
\section{Reserved words}
I reserve to use for the package the following tokens:
\begin{multicols}{2}
\begin{enumerate}
- \item Adigraph
- \item AdigraphAugmentingPaths
- \item AdigraphBuildEdge
- \item AdigraphBuildEdgeWrapper
- \item AdigraphBuildNode
- \item AdigraphBuildPath
- \item AdigraphCalculateOrientation
- \item AdigraphCounter
- \item AdigraphCountPaths
- \item AdigraphCurrentPathNumber
- \item AdigraphCutBuilder
- \item AdigraphDrawEdge
- \item AdigraphDrawNode
- \item AdigraphEdgeBuilder
- \item AdigraphEdgeDrawer
- \item AdigraphEdgeList
- \item AdigraphEdgeName
- \item AdigraphElaboratePath
- \item AdigraphElaboratePath
- \item AdigraphExecuteCutBuilder
- \item AdigraphFirstNode
- \item AdigraphMemorizeEdge
- \item AdigraphMemorizeNode
- \item AdigraphNodeBuilder
- \item AdigraphNodeList
- \item AdigraphNodeName
- \item AdigraphNumberOfPaths
- \item AdigraphPathBuilder
- \item AdigraphProcessAugmentingPaths
- \item AdigraphProcessCuts
- \item AdigraphProcessEdges
- \item AdigraphProcessNodes
- \item AdigraphProcessPaths
- \item AdigraphRom
- \item AdigraphSecondNode
- \item AdigraphSimpleSum
- \item AdigraphTwinEdgeWeight
- \item NewAdigraph
+ \item \textbackslash Adigraph
+ \item \textbackslash AdigraphBuildEdge
+ \item \textbackslash AdigraphBuildEdgeWrapper
+ \item \textbackslash AdigraphBuildNode
+ \item \textbackslash AdigraphBuildNodeWrapper
+ \item \textbackslash AdigraphBuildPath
+ \item \textbackslash AdigraphCalculateOrientation
+ \item \textbackslash AdigraphCountPaths
+ \item \textbackslash AdigraphCutBuilder
+ \item \textbackslash AdigraphDrawEdge
+ \item \textbackslash AdigraphDrawNode
+ \item \textbackslash AdigraphEdgeBuilder
+ \item \textbackslash AdigraphEdgeDrawer
+ \item \textbackslash AdigraphElaboratePath
+ \item \textbackslash AdigraphExecuteCutBuilder
+ \item \textbackslash AdigraphGenerateNodeName
+ \item \textbackslash AdigraphMemorizeEdge
+ \item \textbackslash AdigraphMemorizeNode
+ \item \textbackslash AdigraphNodeBuilder
+ \item \textbackslash AdigraphNodeCounter
+ \item \textbackslash AdigraphNodeCounterSecondWrapper
+ \item \textbackslash AdigraphNodeCounterWrapper
+ \item \textbackslash AdigraphNodesCounter
+ \item \textbackslash AdigraphPathBuilder
+ \item \textbackslash AdigraphProcessAugmentingPaths
+ \item \textbackslash AdigraphProcessAugmentingPathsList
+ \item \textbackslash AdigraphProcessCuts
+ \item \textbackslash AdigraphProcessEdges
+ \item \textbackslash AdigraphProcessNodes
+ \item \textbackslash AdigraphProcessPaths
+ \item \textbackslash AdigraphSimpleSum
+ \item \textbackslash NewAdigraph
+ \item \textbackslash RenewAdigraph
\end{enumerate}
\end{multicols}
diff --git a/Master/texmf-dist/doc/latex/adigraph/adigraph_working_test.pdf b/Master/texmf-dist/doc/latex/adigraph/adigraph_working_test.pdf
new file mode 100644
index 00000000000..f9d1eb94f6e
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/adigraph/adigraph_working_test.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/adigraph/test.tex b/Master/texmf-dist/doc/latex/adigraph/adigraph_working_test.tex
index ba12098a92a..ac4c40406e9 100644
--- a/Master/texmf-dist/doc/latex/adigraph/test.tex
+++ b/Master/texmf-dist/doc/latex/adigraph/adigraph_working_test.tex
@@ -2,7 +2,7 @@
\usepackage{adigraph}
-\title{Adigraph, V1.2, small working test}
+\title{Adigraph, V1.3, small working test}
\author{Luca Cappelletti}
\date{March 2018}
@@ -39,4 +39,37 @@
2,t,red;
3,4,blue;
}
+
+\NewAdigraph{mySecondAdigraph}{
+ s:3;
+ 1:3;
+ 3:3;
+ 2:3;
+ 4:3;
+ t:3;
+}{
+ s,1:25;
+ s,3:25;
+ 3,4:25;
+ 1,2:35;
+ 2,t:20;
+ 4,t:30;
+ 3,1:10;
+ 4,2:10;
+ 2,3:15::near start;
+ 4,1:5::near start;
+}
+
+\mySecondAdigraph{}
+
+
+\mySecondAdigraph{
+ s,3,4,2,t:5;
+}
+
+\mySecondAdigraph{}{
+ 2,t,red;
+ 3,4,blue;
+}
+
\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/adigraph/documentation.pdf b/Master/texmf-dist/doc/latex/adigraph/documentation.pdf
deleted file mode 100644
index 911e38550ad..00000000000
--- a/Master/texmf-dist/doc/latex/adigraph/documentation.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/adigraph/test.pdf b/Master/texmf-dist/doc/latex/adigraph/test.pdf
deleted file mode 100644
index bd969940ca7..00000000000
--- a/Master/texmf-dist/doc/latex/adigraph/test.pdf
+++ /dev/null
Binary files differ
diff --git a/Master/texmf-dist/tex/latex/adigraph/adigraph.sty b/Master/texmf-dist/tex/latex/adigraph/adigraph.sty
index 5d8ad435831..9e0f6c43215 100644
--- a/Master/texmf-dist/tex/latex/adigraph/adigraph.sty
+++ b/Master/texmf-dist/tex/latex/adigraph/adigraph.sty
@@ -9,7 +9,7 @@
%
\NeedsTeXFormat{LaTeX2e}[1994/06/01]
\ProvidesPackage{adigraph}
-[2018/03/09 v1.2 LaTeX package for creating augmenting directed graphs]
+[2018/03/10 v1.3 LaTeX package for creating augmenting directed graphs]
\RequirePackage{etoolbox}
\RequirePackage{fp}
@@ -22,11 +22,10 @@
\newcommand*{\AdigraphRom}[1]{\expandafter\@slowromancap\romannumeral #1@}
\makeatother
+\newcounter{AdigraphTotalNodeCounter}
+\newcounter{AdigraphCurrentNodeCounter}
\newcounter{AdigraphNumberOfPaths}
-\setcounter{AdigraphNumberOfPaths}{0}
-
\newcounter{AdigraphCurrentPathNumber}
-\setcounter{AdigraphCurrentPathNumber}{0}
\NewDocumentCommand{\AdigraphDrawNode}{m}{%
%
@@ -53,11 +52,32 @@
\letcs{\secondX}{adigraphNode#2X}
\letcs{\secondY}{adigraphNode#2Y}
- \ifnumgreater{\secondX-\firstX}{0}{%
+ \providebool{equalX}
+ \FPifeq{\firstX}{\secondX}
+ \booltrue{equalX}
+ \else
+ \boolfalse{equalX}
+ \fi
+
+ \providebool{ltX}
+ \FPiflt{\firstX}{\secondX}
+ \booltrue{ltX}
+ \else
+ \boolfalse{ltX}
+ \fi
+
+ \providebool{ltY}
+ \FPiflt{\firstY}{\secondY}
+ \booltrue{ltY}
+ \else
+ \boolfalse{ltY}
+ \fi
+
+ \ifbool{ltX}{%
\def\AdigraphLabelPosition{above}
}{%
- \ifnumequal{\secondX-\firstX}{0}{%
- \ifnumgreater{\secondY-\firstY}{0}{%
+ \ifbool{equalX}{%
+ \ifbool{ltY}{%
\def\AdigraphLabelPosition{left}
}{%
\def\AdigraphLabelPosition{right}
@@ -96,32 +116,56 @@
}
}
+\NewDocumentCommand{\AdigraphGenerateNodeName}{m m G{black}}{}
\NewDocumentCommand{\AdigraphMemorizeNode}{m m G{black}}{}
-\NewDocumentCommand{\AdigraphBuildNode}{m > { \SplitArgument{ 2 } {,} } m G{#1}}{%
+\NewDocumentCommand{\AdigraphBuildNode}{> { \SplitArgument{ 1 } {,} } m > { \SplitArgument{ 1 } {,} } m m}{%
%
% #1 -> given node name, not normalized
% #2 -> list of coordinates and color
% #3 -> optional label
%
- \ifblank{#1}{%
- %Do nothing, this is the tail of the list
- }{%
- \IfInteger{#1}{%
- \def\AdigraphNodeName{\AdigraphRom{#1}}%
- \listgadd{\AdigraphNodeList}{\AdigraphRom{#1}}
+ \RenewDocumentCommand{\AdigraphGenerateNodeName}{m G{black}}{%
+ \IfInteger{##1}{%
+ \def\AdigraphNodeName{\AdigraphRom{##1}}%
+ \listgadd{\AdigraphNodeList}{\AdigraphRom{##1}}
}{%
- \def\AdigraphNodeName{#1}%
- \listgadd{\AdigraphNodeList}{#1}
+ \def\AdigraphNodeName{##1}%
+ \listgadd{\AdigraphNodeList}{##1}
}%
- \RenewDocumentCommand{\AdigraphMemorizeNode}{m m G{black}}{%
+ \csdef{adigraphNode\AdigraphNodeName Color}{##2}%
+ \ifblank{#3}{
+ \csdef{adigraphNode\AdigraphNodeName Label}{##1}%
+ }{
\csdef{adigraphNode\AdigraphNodeName Label}{#3}%
+ }
+ }
+ \RenewDocumentCommand{\AdigraphMemorizeNode}{m G{}}{%
+ \ifblank{##2}{
+ \newcount\radius
+ \newcount\myi
+ \newcount\myn
+ \newcount\mydpi
+ \radius ##1\relax
+ \myi \value{AdigraphCurrentNodeCounter}\relax
+ \myn \value{AdigraphTotalNodeCounter}\relax
+ \FPset{\mydpi}{6.283185307179586476}
+ \FPmul{\numerator}{\the\myi}{\mydpi}
+ \FPdiv{\anomaly}{\numerator}{\the\myn}
+ \FPcos{\nodeX}{\anomaly}
+ \FPsin{\nodeY}{\anomaly}
+ \FPmul{\nodeX}{\nodeX}{\the\radius}
+ \FPmul{\nodeY}{\nodeY}{\the\radius}
+ \csedef{adigraphNode\AdigraphNodeName X}{\nodeX}%
+ \csedef{adigraphNode\AdigraphNodeName Y}{\nodeY}%
+ \stepcounter{AdigraphCurrentNodeCounter}
+ }{
\csdef{adigraphNode\AdigraphNodeName X}{##1}%
\csdef{adigraphNode\AdigraphNodeName Y}{##2}%
- \csdef{adigraphNode\AdigraphNodeName Color}{##3}%
- }%
- \AdigraphMemorizeNode#2
- }
+ }
+ }%
+ \AdigraphGenerateNodeName#1
+ \AdigraphMemorizeNode#2
}
\NewDocumentCommand{\AdigraphMemorizeEdge}{m m G{black}}{}
@@ -187,15 +231,15 @@
\NewDocumentCommand{\AdigraphElaboratePath}{m m G{black}}{}
-\newcount\AdigraphCounter
\NewDocumentCommand{\AdigraphSimpleSum}{m m m}{%
%
% #1 -> First addendum
% #2 -> Second addendum
% #3 -> Variable to store sum
%
+ \newcount\AdigraphCounter
\AdigraphCounter #1\relax
- \advance\AdigraphCounter +#2\relax
+ \advance\AdigraphCounter #2\relax
\FPset{#3}{\the\AdigraphCounter}
}
@@ -273,8 +317,16 @@
\undef{\AdigraphLastParsedNode}
}
+\NewDocumentCommand{\AdigraphBuildNodeWrapper}{m m G{}}{
+ \ifblank{#1}{
+ %end of list
+ }{
+ \AdigraphBuildNode{#1}{#2}{#3}
+ }
+}
+
\NewDocumentCommand{\AdigraphNodeBuilder}{ > { \SplitArgument{ 2 } {:} } m }{%
- \AdigraphBuildNode#1
+ \AdigraphBuildNodeWrapper#1
}
\NewDocumentCommand{\AdigraphEdgeBuilder}{ > { \SplitArgument{ 3 } {:} } m }{%
@@ -285,6 +337,26 @@
\AdigraphDrawEdge#1
}
+\NewDocumentCommand{\AdigraphNodeCounter}{m G{}}{%
+ \ifblank{#2}{
+ \stepcounter{AdigraphTotalNodeCounter}
+ }{}
+}
+
+\NewDocumentCommand{\AdigraphNodeCounterWrapper}{m > { \SplitArgument{ 1 } {,} } m m m }{%
+ \ifblank{#1}{}{
+ \AdigraphNodeCounter#2
+ }
+}
+
+\NewDocumentCommand{\AdigraphNodeCounterSecondWrapper}{ > { \SplitArgument{ 3 } {:} } m }{%
+ \AdigraphNodeCounterWrapper#1
+}
+
+\NewDocumentCommand{\AdigraphNodesCounter}{> { \SplitList{;} } m}{%
+ \ProcessList{#1}{\AdigraphNodeCounterSecondWrapper}
+}
+
\NewDocumentCommand{\AdigraphProcessNodes}{> { \SplitList{;} } m}{%
\ProcessList{#1}{\AdigraphNodeBuilder}
\forlistloop{\AdigraphDrawNode}{\AdigraphNodeList}
@@ -309,6 +381,13 @@
\letcs{\secondX}{adigraphNode#3X}
\letcs{\secondY}{adigraphNode#3Y}
+ \providebool{equalX}
+ \FPifeq{\firstX}{\secondX}
+ \booltrue{equalX}
+ \else
+ \boolfalse{equalX}
+ \fi
+
\ifnumequal{\secondX-\firstX}{0}{%
\FPset{#1}{90}
}{%
@@ -368,6 +447,7 @@
\ifblank{#1}{%
% List is empty
}{%
+ \AdigraphNodesCounter{#1}
\AdigraphProcessNodes{#1}
}
@@ -394,37 +474,87 @@
\forlistloop{\AdigraphEdgeDrawer}{\AdigraphEdgeList}
}
- %cuts
- \ifblank{#4}{%
- % List is empty
- }{%
- \AdigraphProcessCuts{#4}
- }
+ % %cuts
+ % \ifblank{#4}{%
+ % % List is empty
+ % }{%
+ % \AdigraphProcessCuts{#4}
+ % }
\end{tikzpicture}
}
+\NewDocumentCommand{\AdigraphProcessAugmentingPaths}{m}{}
+\NewDocumentCommand{\AdigraphProcessAugmentingPathsList}{m}{}
+
\NewDocumentCommand{\NewAdigraph}{m m G{}}{%
%
% #1 -> Variable to assign to as command
% #2 -> Nodes
% #3 -> Edges
%
- \csdef{Adigraph#1AugmentingPaths}{}%
- \expandafter\NewDocumentCommand{\AdigraphProcessAugmentingPaths}{m}{%
- \listcsgadd{Adigraph#1AugmentingPaths}{##1}
+ \ifcsdef{#1}{
+ \PackageError{adigraph}{%
+ You have already define an adigraph called #1.
+ }{%
+ Identify the duplicate and change its name, e.g. Second#1
+ }
+ }{
+ \csdef{Adigraph#1AugmentingPaths}{}%
+ \expandafter\RenewDocumentCommand{\AdigraphProcessAugmentingPaths}{m}{%
+ \listcsgadd{Adigraph#1AugmentingPaths}{##1}
+ }
+ \expandafter\RenewDocumentCommand{\AdigraphProcessAugmentingPathsList}{> { \SplitList{;} } m}{%
+ \AdigraphProcessAugmentingPaths##1
+ }
+ \expandafter\NewDocumentCommand\expandafter{\csname #1\endcsname}{m G{}}{%
+ %
+ % ##1 -> Augmenting path
+ %
+ \setcounter{AdigraphCurrentNodeCounter}{0}
+ \setcounter{AdigraphTotalNodeCounter}{0}
+ \setcounter{AdigraphNumberOfPaths}{0}
+ \setcounter{AdigraphCurrentPathNumber}{0}
+ \AdigraphProcessAugmentingPathsList{##1}
+ \Adigraph{#2}{#3}{Adigraph#1AugmentingPaths}{##2}{##1}
+ }%
}
- \expandafter\NewDocumentCommand{\AdigraphProcessAugmentingPathsList}{> { \SplitList{;} } m}{%
- \AdigraphProcessAugmentingPaths##1
+}
+
+\NewDocumentCommand{\RenewAdigraph}{m m G{}}{%
+ %
+ % #1 -> Variable to assign to as command
+ % #2 -> Nodes
+ % #3 -> Edges
+ %
+ \ifcsdef{#1}{
+ \csdef{Adigraph#1AugmentingPaths}{}%
+ \expandafter\RenewDocumentCommand{\AdigraphProcessAugmentingPaths}{m}{%
+ \listcsgadd{Adigraph#1AugmentingPaths}{##1}
+ }
+ \expandafter\RenewDocumentCommand{\AdigraphProcessAugmentingPathsList}{> { \SplitList{;} } m}{%
+ \AdigraphProcessAugmentingPaths##1
+ }
+ \expandafter\RenewDocumentCommand\expandafter{\csname #1\endcsname}{m G{}}{%
+ %
+ % ##1 -> Augmenting path
+ %
+ \setcounter{AdigraphCurrentNodeCounter}{0}
+ \setcounter{AdigraphTotalNodeCounter}{0}
+ \setcounter{AdigraphNumberOfPaths}{0}
+ \setcounter{AdigraphCurrentPathNumber}{0}
+ \AdigraphProcessAugmentingPathsList{##1}
+ \Adigraph{#2}{#3}{Adigraph#1AugmentingPaths}{##2}{##1}
+ }%
+ }{
+ \PackageError{adigraph}{%
+ You cannot renew a graph called #1 without having it defined first.
+ }{%
+ Create the first graph using \textbackslash NewAdigraph
+ }
}
- \expandafter\NewDocumentCommand\expandafter{\csname #1\endcsname}{m G{}}{%
- %
- % ##1 -> Augmenting path
- %
- \AdigraphProcessAugmentingPathsList{##1}
- \Adigraph{#2}{#3}{Adigraph#1AugmentingPaths}{##2}{##1}
- }%
}
+
\endinput
%%
%% End of file `adigraph.sty'. \ No newline at end of file
diff --git a/Master/tlpkg/libexec/ctan2tds b/Master/tlpkg/libexec/ctan2tds
index 3b5b5e6a3c7..bd796c78912 100755
--- a/Master/tlpkg/libexec/ctan2tds
+++ b/Master/tlpkg/libexec/ctan2tds
@@ -766,6 +766,7 @@ chomp ($Build = `cd $Master/../Build/source && pwd`);
'mol2chemfig', "die 'skipping, python dependencies'",
'montex', "&MAKEflatten",
'morehelp', "die 'skipping, nonfree license'",
+ 'morisawa', "die 'skipping, nonfree font support'",
'morse', "die 'skipping, nosell license'",
'mp3d', "&MAKEflatten",
'mpcolornames',"&MAKEcopy",