texlive[71405] Master/texmf-dist: pmdraw (2jun24)

commits+karl at tug.org commits+karl at tug.org
Sun Jun 2 22:22:45 CEST 2024


Revision: 71405
          https://tug.org/svn/texlive?view=revision&revision=71405
Author:   karl
Date:     2024-06-02 22:22:45 +0200 (Sun, 02 Jun 2024)
Log Message:
-----------
pmdraw (2jun24)

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

Modified: trunk/Master/texmf-dist/doc/latex/pmdraw/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pmdraw/README.md	2024-06-01 23:45:38 UTC (rev 71404)
+++ trunk/Master/texmf-dist/doc/latex/pmdraw/README.md	2024-06-02 20:22:45 UTC (rev 71405)
@@ -1,12 +1,12 @@
 pmdraw
 ======
 
-*README V1.3 2024-04-09*
+*README V1.4 2024-06-02*
 
 <!--
 
 *------------------------------*
-|0````````````````````````````8|
+|6````````````````````````````5|
 |`````____````____`````````````|
 |````|MFMF\  /MFMF|````````````|
 |````|MF|MF\/MF|MF|````````````|
@@ -18,7 +18,7 @@
 |``````````````|MF|````````````|
 |``````````````|MF|````````````|
 |``````````````|MF|````````````|
-|1````````````````````````````3|
+|4````````````````````````````1|
 *------------------------------*
 -->
 

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

Modified: trunk/Master/texmf-dist/doc/latex/pmdraw/pmdraw.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/pmdraw/pmdraw.tex	2024-06-01 23:45:38 UTC (rev 71404)
+++ trunk/Master/texmf-dist/doc/latex/pmdraw/pmdraw.tex	2024-06-02 20:22:45 UTC (rev 71405)
@@ -1,7 +1,7 @@
 \documentclass{ltxdoc}
 
 % *------------------------------*
-% |7````````````````````````````6|
+% |6````````````````````````````2|
 % |`````____````____`````````````|
 % |````|MFMF\  /MFMF|````````````|
 % |````|MF|MF\/MF|MF|````````````|
@@ -13,7 +13,7 @@
 % |``````````````|MF|````````````|
 % |``````````````|MF|````````````|
 % |``````````````|MF|````````````|
-% |8````````````````````````````4|
+% |3````````````````````````````0|
 % *------------------------------*
 
 \usepackage{pmdraw}
@@ -26,7 +26,7 @@
 \hypersetup{colorlinks, linkcolor=blue, urlcolor=blue}
 
 \title{The \textsf{pmdraw} package\thanks{This document
-  corresponds to \textsf{pmdraw}~v1.3, 2024-04-09.}}
+  corresponds to \textsf{pmdraw}~v1.4, 2024-06-02.}}
 \author{Matthias Fresacher \\ \texttt{matthias.ypg37 at slmail.me}}
 
 \maketitle
@@ -773,6 +773,63 @@
     \end{minipage}%
 \end{center}
 
+\DescribeMacro{no vertex bottom 1}
+\DescribeMacro{ \vdots}
+\DescribeMacro{no vertex bottom 9}
+\DescribeMacro{no vertex top 1}
+\DescribeMacro{ \vdots}
+\DescribeMacro{no vertex top 9}
+specifies a vertex that is not drawn. Any of the nine available keys can be used in any order. It can be used to draw single vertices that are different to the others. If more than nine vertices need to be excluded, simply draw multiple bricks next to each other. The default is no argument.
+\begin{center}
+    \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+        \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+    degree=5,
+    no vertex top 1=2,
+    no vertex top 2=3,
+    no vertex bottom 1=4,
+    decorate after={
+        \fill[red] (4,0) circle (.1);
+    }
+]{ % Upper non-transversal edges
+    {1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    {1}{2}
+    {3}{4}
+}{ % Transversal edges
+    {1}{1}
+    {3}{4}
+}
+\end{verbatim}
+        \end{minipage}
+        \hfill
+        \begin{minipage}[c]{0.4\linewidth}
+        \end{minipage}
+    \end{minipage}%
+\end{center}
+\begin{center}
+\pmdBrick[ % Options
+    degree=5,
+    no vertex top 1=2,
+    no vertex top 2=3,
+    no vertex bottom 1=4,
+    decorate after={
+        \fill[red] (4,0) circle (.1);
+    }
+]{ % Upper non-transversal edges
+    {1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    {1}{2}
+    {3}{4}
+}{ % Transversal edges
+    {1}{1}
+    {3}{4}
+}
+\end{center}
+
 \DescribeMacro{vertices options}
 allows for the redefinition of the command that draws the vertices. It has two arguments, the \( x \) and \( y \)-position of the vertex. The default is
 \begin{verbatim}
@@ -907,6 +964,65 @@
     \end{minipage}%
 \end{center}
 
+\DescribeMacro{no labels bottom 1}
+\DescribeMacro{ \vdots}
+\DescribeMacro{no labels bottom 9}
+\DescribeMacro{no labels top 1}
+\DescribeMacro{ \vdots}
+\DescribeMacro{no labels top 9}
+specifies a vertex for which no label is drawn. Any of the nine available keys can be used in any order. It can be used to insert single unique labels that are different to the others. If more than nine labels need to be excluded, simply draw multiple bricks next to each other. The default is no argument.
+\begin{center}
+    \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+        \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+    degree=5,
+    labels,
+    no label top 1=2,
+    no label top 2=3,
+    no label bottom 1=4,
+    decorate after={
+        \draw (3,2) node[above=6pt,red] {\(x\)};
+    }
+]{ % Upper non-transversal edges
+    {1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    {1}{2}
+    {3}{4}
+}{ % Transversal edges
+    {1}{1}
+    {3}{4}
+}
+\end{verbatim}
+        \end{minipage}
+        \hfill
+        \begin{minipage}[c]{0.4\linewidth}
+        \end{minipage}
+    \end{minipage}%
+\end{center}
+\begin{center}
+\pmdBrick[ % Options
+    degree=5,
+    labels,
+    no label top 1=2,
+    no label top 2=3,
+    no label bottom 1=4,
+    decorate after={
+        \draw (3,2) node[above=6pt,red] {\(x\)};
+    }
+]{ % Upper non-transversal edges
+    {1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    {1}{2}
+    {3}{4}
+}{ % Transversal edges
+    {1}{1}
+    {3}{4}
+}
+\end{center}
+
 \DescribeMacro{labels top draw}\DescribeMacro{labels top node}\DescribeMacro{labels bottom draw}\DescribeMacro{labels bottom node}
 passes through options to the \verb`\draw` and \verb`node` command of the labels of vertices. The default is no argument.
 \begin{center}
@@ -1164,6 +1280,89 @@
 }
 \end{center}
 
+\DescribeMacro{vertices top phantom}\DescribeMacro{vertices bottom phantom}
+These flags allow for all of the top or bottom vertices to be hidden using the \texttt{phantom} command. Simply wraps the vertex drawing macros with a \texttt{phantom} command. This hiding will also apply to the labels of that row (top or bottom) of vertices. To only hide a selected number of vertices, use seperate bricks. The default is false.
+\begin{center}
+    \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+        \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+    degree=5,
+    vertices top phantom,
+]{ % Upper non-transversal edges
+    {1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    {1}{2}
+    {3}{4}
+}{ % Transversal edges
+    {1}{1}
+    {3}{4}
+}
+\end{verbatim}
+        \end{minipage}
+        \hfill
+        \begin{minipage}[c]{0.4\linewidth}
+\pmdBrick[ % Options
+    degree=5,
+    vertices top phantom
+]{ % Upper non-transversal edges
+    {1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    {1}{2}
+    {3}{4}
+}{ % Transversal edges
+    {1}{1}
+    {3}{4}
+}
+        \end{minipage}
+    \end{minipage}%
+\end{center}
+
+\DescribeMacro{vertices top uncover}\DescribeMacro{vertices bottom uncover}
+allows for all of the top or bottom vertices to be uncovered in a \texttt{beamer} presentation using the command \verb`\uncover<n->{text}`. Simply passes the slide uncover information \verb`<n->` to the embedded \texttt{uncover} command within the vertex drawing macros. This uncover will also apply to the labels of that row (top or bottom) of vertices. To only uncover a selected number of vertices, use seperate bricks. The default is~\texttt{1-}.
+\begin{center}
+    \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+        \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+    degree=5,
+    vertices top uncover={2,4-7,9-},
+    vertices bottom uncover={3-}
+]{ % Upper non-transversal edges
+    {1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    {1}{2}
+    {3}{4}
+}{ % Transversal edges
+    {1}{1}
+    {3}{4}
+}
+\end{verbatim}
+        \end{minipage}
+        \hfill
+        \begin{minipage}[c]{0.4\linewidth}
+\pmdBrick[ % Options
+    degree=5,
+    vertices top uncover={2,4-7,9-},
+    vertices bottom uncover={3-}
+]{ % Upper non-transversal edges
+    {1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    {1}{2}
+    {3}{4}
+}{ % Transversal edges
+    {1}{1}
+    {3}{4}
+}
+        \end{minipage}
+    \end{minipage}%
+\end{center}
+
+
 \subsubsection{Edge options}
 
 These options should be read in conjunction with Section~\ref{sec: edge/options}.
@@ -1472,6 +1671,86 @@
     \end{minipage}%
 \end{center}
 
+\DescribeMacro{edges phantom}
+This flag allows for all edges to be hidden using the \texttt{phantom} command. Simply wraps the edge drawing macros with a \texttt{phantom} command. The default is false.
+\begin{center}
+    \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+        \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+    degree=5,
+    edges phantom
+]{ % Upper non-transversal edges
+    {1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    {1}{2}
+    {3}{4}
+}{ % Transversal edges
+    {1}{1}
+    {3}{4}
+}
+\end{verbatim}
+        \end{minipage}
+        \hfill
+        \begin{minipage}[c]{0.4\linewidth}
+\pmdBrick[ % Options
+    degree=5,
+    edges phantom
+]{ % Upper non-transversal edges
+    {1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    {1}{2}
+    {3}{4}
+}{ % Transversal edges
+    {1}{1}
+    {3}{4}
+}
+        \end{minipage}
+    \end{minipage}%
+\end{center}
+
+\DescribeMacro{edges uncover}
+allows for all edges to be uncovered in a \texttt{beamer} presentation using the command \verb`\uncover<n->{text}`. Simply passes the slide uncover information \verb`<n->` to the embedded \texttt{uncover} command within the edge drawing macros. The default is~\texttt{1-}.
+\begin{center}
+    \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+        \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+    degree=5,
+    edges uncover={2,4-7,9-}
+]{ % Upper non-transversal edges
+    {1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    {1}{2}
+    {3}{4}
+}{ % Transversal edges
+    {1}{1}
+    {3}{4}
+}
+\end{verbatim}
+        \end{minipage}
+        \hfill
+        \begin{minipage}[c]{0.4\linewidth}
+\pmdBrick[ % Options
+    degree=5,
+    edges uncover={2,4-7,9-}
+]{ % Upper non-transversal edges
+    {1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    {1}{2}
+    {3}{4}
+}{ % Transversal edges
+    {1}{1}
+    {3}{4}
+}
+        \end{minipage}
+    \end{minipage}%
+\end{center}
+
 \subsubsection{Brace}
 
 \DescribeMacro{brace}
@@ -1893,16 +2172,33 @@
 \DescribeMacro{options}
 allows for the redefinition of the command that draws the non-transversal edge. It has two arguments, the start and end \( x \)-position of the edge. The default for an upper non-transversal is
 \begin{verbatim}
-    \draw[apply style/.expand once=\pmdraw at drawUedgesDrawOptions,apply style/.expand once=\pmdraw at drawEdgeDrawOptions] (#1,\pmdraw at rowSep) arc (180:270:\pmdraw{edgeHeight});% Draw left arch
-    \draw[apply style/.expand once=\pmdraw at drawUedgesDrawOptions,apply style/.expand once=\pmdraw at drawEdgeDrawOptions] (#1+\pmdraw{edgeHeight},\pmdraw at rowSep-\pmdraw{edgeHeight}) -- (#2-\pmdraw{edgeHeight},\pmdraw at rowSep-\pmdraw{edgeHeight});% Draw straight line
-    \draw[apply style/.expand once=\pmdraw at drawUedgesDrawOptions,apply style/.expand once=\pmdraw at drawEdgeDrawOptions] (#2-\pmdraw{edgeHeight},\pmdraw at rowSep-\pmdraw{edgeHeight}) arc (270:360:\pmdraw{edgeHeight});% Draw right arc
+    \draw[apply style/.expand once=\pmdraw at drawUedgesDrawOptions,
+        apply style/.expand once=\pmdraw at drawEdgeDrawOptions] 
+        (#1,\pmdraw at rowSep) arc (180:270:\pmdraw{edgeHeight});% Draw left arch
+    \draw[apply style/.expand once=\pmdraw at drawUedgesDrawOptions,
+        apply style/.expand once=\pmdraw at drawEdgeDrawOptions] 
+        (#1+\pmdraw{edgeHeight},\pmdraw at rowSep-\pmdraw{edgeHeight}) 
+            -- (#2-\pmdraw{edgeHeight},\pmdraw at rowSep-\pmdraw{edgeHeight});
+            % Draw straight line
+    \draw[apply style/.expand once=\pmdraw at drawUedgesDrawOptions,
+        apply style/.expand once=\pmdraw at drawEdgeDrawOptions] 
+        (#2-\pmdraw{edgeHeight},\pmdraw at rowSep-\pmdraw{edgeHeight}) 
+            arc (270:360:\pmdraw{edgeHeight});% Draw right arc
     \renewcommand{\pmdraw at drawEdgeDrawOptions}{}% Reset draw options for edge
 \end{verbatim}
 and for a lower non-transversal
 \begin{verbatim}
-    \draw[apply style/.expand once=\pmdraw at drawLedgesDrawOptions,apply style/.expand once=\pmdraw at drawEdgeDrawOptions] (#1,0) arc (180:90:\pmdraw{edgeHeight});% Draw left arch
-    \draw[apply style/.expand once=\pmdraw at drawLedgesDrawOptions,apply style/.expand once=\pmdraw at drawEdgeDrawOptions] (#1+\pmdraw{edgeHeight},\pmdraw{edgeHeight}) -- (#2-\pmdraw{edgeHeight},\pmdraw{edgeHeight});% Draw straight line
-    \draw[apply style/.expand once=\pmdraw at drawLedgesDrawOptions,apply style/.expand once=\pmdraw at drawEdgeDrawOptions] (#2-\pmdraw{edgeHeight},\pmdraw{edgeHeight}) arc (90:0:\pmdraw{edgeHeight});% Draw right arc
+    \draw[apply style/.expand once=\pmdraw at drawLedgesDrawOptions,
+        apply style/.expand once=\pmdraw at drawEdgeDrawOptions] 
+        (#1,0) arc (180:90:\pmdraw{edgeHeight});% Draw left arch
+    \draw[apply style/.expand once=\pmdraw at drawLedgesDrawOptions,
+        apply style/.expand once=\pmdraw at drawEdgeDrawOptions] 
+        (#1+\pmdraw{edgeHeight},\pmdraw{edgeHeight}) 
+            -- (#2-\pmdraw{edgeHeight},\pmdraw{edgeHeight});% Draw straight line
+    \draw[apply style/.expand once=\pmdraw at drawLedgesDrawOptions,
+        apply style/.expand once=\pmdraw at drawEdgeDrawOptions] 
+        (#2-\pmdraw{edgeHeight},\pmdraw{edgeHeight}) 
+            arc (90:0:\pmdraw{edgeHeight});% Draw right arc
     \renewcommand{\pmdraw at drawEdgeDrawOptions}{}% Reset draw options for edge
 \end{verbatim}
 An example use is
@@ -1948,6 +2244,82 @@
 }
 \end{center}
 
+\DescribeMacro{phantom}
+This flag allows for the edge to be hidden using the \texttt{phantom} command. Simply wraps the edge drawing macros with a \texttt{phantom} command. The default is false.
+\begin{center}
+    \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+        \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+    degree=5
+]{ % Upper non-transversal edges
+    [phantom]{1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    [phantom]{1}{2}
+    {3}{4}
+}{ % Transversal edges
+    {1}{1}
+    {3}{4}
+}
+\end{verbatim}
+        \end{minipage}
+        \hfill
+        \begin{minipage}[c]{0.4\linewidth}
+\pmdBrick[ % Options
+    degree=5
+]{ % Upper non-transversal edges
+    [phantom]{1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    [phantom]{1}{2}
+    {3}{4}
+}{ % Transversal edges
+    {1}{1}
+    {3}{4}
+}
+        \end{minipage}
+    \end{minipage}%
+\end{center}
+
+\DescribeMacro{uncover}
+allows for that edge to be uncovered in a \texttt{beamer} presentation using the command \verb`\uncover<n->{text}`. Simply passes the slide uncover information \verb`<n->` to the embedded \texttt{uncover} command within the edge drawing macros. This uncover is nested inside the \texttt{edges uncover} and hence the limitations of nested uncovers are present here. For example, an individual edge will not uncover until the \texttt{edges uncover} has been uncovered. In such instances only use individual uncovers for each edge. The default is~\texttt{1-}.
+\begin{center}
+    \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+        \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+    degree=5
+]{ % Upper non-transversal edges
+    [uncover={2,4-7,9-}]{1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    [uncover={3-}]{1}{2}
+    {3}{4}
+}{ % Transversal edges
+    {1}{1}
+    {3}{4}
+}
+\end{verbatim}
+        \end{minipage}
+        \hfill
+        \begin{minipage}[c]{0.4\linewidth}
+\pmdBrick[ % Options
+    degree=5
+]{ % Upper non-transversal edges
+    [uncover={2,4-7,9-}]{1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    [uncover={3-}]{1}{2}
+    {3}{4}
+}{ % Transversal edges
+    {1}{1}
+    {3}{4}
+}
+        \end{minipage}
+    \end{minipage}%
+\end{center}
+
 \subsubsection{Transversal edge options} \label{sec: T edge/options}
 
 \DescribeMacro{height}
@@ -2178,7 +2550,82 @@
 }
 \end{center}
 
+\DescribeMacro{phantom}
+This flag allows for the edge to be hidden using the \texttt{phantom} command. Simply wraps the edge drawing macros with a \texttt{phantom} command. The default is false.
+\begin{center}
+    \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+        \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+    degree=5
+]{ % Upper non-transversal edges
+    {1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    {1}{2}
+    {3}{4}
+}{ % Transversal edges
+    [phantom]{1}{1}
+    {3}{4}
+}
+\end{verbatim}
+        \end{minipage}
+        \hfill
+        \begin{minipage}[c]{0.4\linewidth}
+\pmdBrick[ % Options
+    degree=5
+]{ % Upper non-transversal edges
+    {1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    {1}{2}
+    {3}{4}
+}{ % Transversal edges
+    [phantom]{1}{1}
+    {3}{4}
+}
+        \end{minipage}
+    \end{minipage}%
+\end{center}
 
+\DescribeMacro{uncover}
+allows for that edge to be uncovered in a \texttt{beamer} presentation using the command \verb`\uncover<n->{text}`. Simply passes the slide uncover information \verb`<n->` to the embedded \texttt{uncover} command within the edge drawing macros. This uncover is nested inside the \texttt{edges uncover} and hence the limitations of nested uncovers are present here. For example, an individual edge will not uncover until the \texttt{edges uncover} has been uncovered. In such instances only use individual uncovers for each edge. The default is~\texttt{1-}.
+\begin{center}
+    \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+        \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdBrick[ % Options
+    degree=5
+]{ % Upper non-transversal edges
+    {1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    {1}{2}
+    {3}{4}
+}{ % Transversal edges
+    [uncover={2,4-7,9-}]{1}{1}
+    {3}{4}
+}
+\end{verbatim}
+        \end{minipage}
+        \hfill
+        \begin{minipage}[c]{0.4\linewidth}
+\pmdBrick[ % Options
+    degree=5
+]{ % Upper non-transversal edges
+    {1}{2}
+    {2}{5}
+}{ % Lower non-transversal edges
+    {1}{2}
+    {3}{4}
+}{ % Transversal edges
+    [uncover={2,4-7,9-}]{1}{1}
+    {3}{4}
+}
+        \end{minipage}
+    \end{minipage}%
+\end{center}
+
 \subsection{Brace} \label{sec: brace}
 
 \DescribeMacro{brick/brace}
@@ -3020,6 +3467,178 @@
 }
 \end{center}
 
+\DescribeMacro{edges added phantom}
+This flag allows for the added edges to be hidden using the \texttt{phantom} command. Simply wraps the edge drawing macros with a \texttt{phantom} command. The default is false.
+\begin{center}
+    \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+        \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdProduct[ % Options
+    edges added phantom
+]{ % Added edges
+    {1}{5}
+}{ % Top diagram
+    { % Brick 1
+        [ % Options
+            degree=5
+        ]{ % Upper non-transversal edges
+            \pmdEmpty
+        }{ % Lower non-transversal edges
+            \pmdEmpty
+        }{ % Transversal edges
+            {1}{1}
+            {2}{2}
+            {3}{3}
+            {4}{4}
+            {5}{5}
+        }
+    }
+}{ % Bottom diagram
+    { % Brick 1
+        [ % Options
+            degree=5
+        ]{ % Upper non-transversal edges
+            {2}{3}
+            {4}{5}
+        }{ % Lower non-transversal edges
+            {2}{3}
+            {4}{5}
+        }{ % Transversal edges
+            {1}{1}
+        }
+    }
+}
+\end{verbatim}
+        \end{minipage}
+        \hfill
+        \begin{minipage}[c]{0.4\linewidth}
+        \end{minipage}
+    \end{minipage}%
+\end{center}
+\begin{center}
+\pmdProduct[ % Options
+    edges added phantom
+]{ % Added edges
+    {1}{5}
+}{ % Top diagram
+    { % Brick 1
+        [ % Options
+            degree=5
+        ]{ % Upper non-transversal edges
+            \pmdEmpty
+        }{ % Lower non-transversal edges
+            \pmdEmpty
+        }{ % Transversal edges
+            {1}{1}
+            {2}{2}
+            {3}{3}
+            {4}{4}
+            {5}{5}
+        }
+    }
+}{ % Bottom diagram
+    { % Brick 1
+        [ % Options
+            degree=5
+        ]{ % Upper non-transversal edges
+            {2}{3}
+            {4}{5}
+        }{ % Lower non-transversal edges
+            {2}{3}
+            {4}{5}
+        }{ % Transversal edges
+            {1}{1}
+        }
+    }
+}
+\end{center}
+
+\DescribeMacro{edges added uncover}
+allows for the added edges to be uncovered in a \texttt{beamer} presentation using the command \verb`\uncover<n->{text}`. Simply passes the slide uncover information \verb`<n->` to the embedded \texttt{uncover} command within the added edge drawing macros. The default is~\texttt{1-}.
+\begin{center}
+    \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+        \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdProduct[ % Options
+    edges added uncover={2,4-7,9-}
+]{ % Added edges
+    {1}{5}
+}{ % Top diagram
+    { % Brick 1
+        [ % Options
+            degree=5
+        ]{ % Upper non-transversal edges
+            \pmdEmpty
+        }{ % Lower non-transversal edges
+            \pmdEmpty
+        }{ % Transversal edges
+            {1}{1}
+            {2}{2}
+            {3}{3}
+            {4}{4}
+            {5}{5}
+        }
+    }
+}{ % Bottom diagram
+    { % Brick 1
+        [ % Options
+            degree=5
+        ]{ % Upper non-transversal edges
+            {2}{3}
+            {4}{5}
+        }{ % Lower non-transversal edges
+            {2}{3}
+            {4}{5}
+        }{ % Transversal edges
+            {1}{1}
+        }
+    }
+}
+\end{verbatim}
+        \end{minipage}
+        \hfill
+        \begin{minipage}[c]{0.4\linewidth}
+        \end{minipage}
+    \end{minipage}%
+\end{center}
+\begin{center}
+\pmdProduct[ % Options
+    edges added uncover={2,4-7,9-}
+]{ % Added edges
+    {1}{5}
+}{ % Top diagram
+    { % Brick 1
+        [ % Options
+            degree=5
+        ]{ % Upper non-transversal edges
+            \pmdEmpty
+        }{ % Lower non-transversal edges
+            \pmdEmpty
+        }{ % Transversal edges
+            {1}{1}
+            {2}{2}
+            {3}{3}
+            {4}{4}
+            {5}{5}
+        }
+    }
+}{ % Bottom diagram
+    { % Brick 1
+        [ % Options
+            degree=5
+        ]{ % Upper non-transversal edges
+            {2}{3}
+            {4}{5}
+        }{ % Lower non-transversal edges
+            {2}{3}
+            {4}{5}
+        }{ % Transversal edges
+            {1}{1}
+        }
+    }
+}
+\end{center}
+
 \section{Future features/work}
 
 I have attempted to make most use cases easy to use with dedicated functionality that does not require significant \LaTeX\ knowledge whilst at the same time provide more advanced interfaces to allow for hopefully almost complete customisability for those who put in the effort.
@@ -3032,7 +3651,8 @@
     \item Add warning and error messages to log.
     \item Allow all brick keys to work as diagram keys that apply to all bricks in a diagram. This will require setting up a flag for each key so that the diagram key sets the brick key but the brick key is not reset after drawing the first brick. This process also will need to be able to handle when a single brick has a custom special different key value and that this is reset to the digram key value and not the global default key value.
     \item Allow appropriate diagram keys to work as brick keys. Notably the \texttt{grid} key.
-    \item The creation of user profiles that allows for fast and efficient setting of default key values that are different to the package defaults. Hence within a diagram, there can be a number of different diagram styles that can be accessed with one command.
+    \item The creation of user profiles that allows for fast and efficient setting of default key values that are different to the package defaults. Hence within a diagram, there can be a number of different diagram styles that can be accessed with one command. That is, in the options for a diagram, have this profile key.
+    \item Have global settings so that all diagrams in a document have the specified options.
     \item Allow for adjusting the horizontal spacing of vertices. Need to think about making that a simple scale factor so that integer interface for edge positions is the same but then hooks will have very messy coordinates or keep it as absolute coordinates with messy edges. Alternatively, do both, allowing the user to choose which option to do and somehow distinguish between the two in the background.
     \item Create \texttt{pmdMirror} command that mirrors all upper non-transversals into lower non-transversals.
     \item Create \texttt{invert} key for bricks, diagrams and product diagrams that inverts everything. Probably easiest done with a \texttt{scope} environment around everything and \texttt{yscale=-1}.
@@ -3039,6 +3659,8 @@
     \item For product diagram, have interface where you input diagram instead of bricks so that you have access to diagram options.
     \item Create a transversal edge key \texttt{identity} so that all edges in between the two values are straight vertical edges. Thus eliminating the need to write out each edge manually.
     \item Create \texttt{shift} key for edges that shifts horizontal position.
+    \item Decouple the uncover of labels from \texttt{vertices top uncover}/\texttt{vertices bottom uncover}.
+    \item Decouple the phantom of labels from \texttt{vertices top phantom}/\texttt{vertices bottom phantom}.
 \end{enumerate}
 
 \section{Examples}

Modified: trunk/Master/texmf-dist/tex/latex/pmdraw/pmdraw.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/pmdraw/pmdraw.sty	2024-06-01 23:45:38 UTC (rev 71404)
+++ trunk/Master/texmf-dist/tex/latex/pmdraw/pmdraw.sty	2024-06-02 20:22:45 UTC (rev 71405)
@@ -1,8 +1,8 @@
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{pmdraw}[2024-04-09 v1.3 pmdraw]
+\ProvidesPackage{pmdraw}[2024-06-02 v1.4 pmdraw]
 
 % *------------------------------*
-% |2````````````````````````````3|
+% |7````````````````````````````4|
 % |`````____````____`````````````|
 % |````|MFMF\  /MFMF|````````````|
 % |````|MF|MF\/MF|MF|````````````|
@@ -14,7 +14,7 @@
 % |``````````````|MF|````````````|
 % |``````````````|MF|````````````|
 % |``````````````|MF|````````````|
-% |1````````````````````````````1|
+% |3````````````````````````````4|
 % *------------------------------*
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -42,8 +42,28 @@
 
 \newcommand{\pmdraw at drawAedgesOptions}{}% Draw options for added edges in product diagram
 \newcommand{\pmdraw at drawAedges}[2]{% Draws added edges in product diagram from #1 vertex to #2 vertex, assumes #1<#2
-    \foreach \x in {#1,...,#2} {% For each vertex in range
-        \draw[dotted,thick,apply style/.expand once=\pmdraw at drawAedgesOptions] (\x,0) -- (\x,-\pmdraw at diagSep);% Draw concatenation edge
+    \@ifclassloaded{beamer}{% If in beamer
+        \uncover<\pmdraw at edgesAddedUncover>{% Uncovers added edges
+            \foreach \x in {#1,...,#2} {% For each vertex in range
+                \ifnum\value{pmdraw at ifEdgesAdded}=0% If drawing added edges
+                    \draw[dotted,thick,apply style/.expand once=\pmdraw at drawAedgesOptions] (\x,0) -- (\x,-\pmdraw at diagSep);% Draw concatenation edge
+                \else% If hiding top vertices
+                    \phantom{%
+                        \draw[dotted,thick,apply style/.expand once=\pmdraw at drawAedgesOptions] (\x,0) -- (\x,-\pmdraw at diagSep);% Draw concatenation edge
+                    }%
+                \fi%
+            }%
+        }%
+    }{% If not in beamer
+        \foreach \x in {#1,...,#2} {% For each vertex in range
+            \ifnum\value{pmdraw at ifEdgesAdded}=0% If drawing added edges
+                \draw[dotted,thick,apply style/.expand once=\pmdraw at drawAedgesOptions] (\x,0) -- (\x,-\pmdraw at diagSep);% Draw concatenation edge
+            \else% If hiding top vertices
+                \phantom{%
+                    \draw[dotted,thick,apply style/.expand once=\pmdraw at drawAedgesOptions] (\x,0) -- (\x,-\pmdraw at diagSep);% Draw concatenation edge
+                }%
+            \fi%
+        }%
     }%
     \pmdraw at AedgesLoop% Restart for loop
 }
@@ -111,6 +131,44 @@
 }
 \let\pmdraw at drawLedgesDraw\pmdraw at drawLedgesDrawDefault% Draws lower non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2
 
+\newcommand{\pmdraw at drawNoLabelBa}{-1}% 1st vertex to skip label in bottom row
+\newcommand{\pmdraw at drawNoLabelBb}{-1}% 2nd vertex to skip label in bottom row
+\newcommand{\pmdraw at drawNoLabelBc}{-1}% 3rd vertex to skip label in bottom row
+\newcommand{\pmdraw at drawNoLabelBd}{-1}% 4th vertex to skip label in bottom row
+\newcommand{\pmdraw at drawNoLabelBe}{-1}% 5th vertex to skip label in bottom row
+\newcommand{\pmdraw at drawNoLabelBf}{-1}% 6th vertex to skip label in bottom row
+\newcommand{\pmdraw at drawNoLabelBg}{-1}% 7th vertex to skip label in bottom row
+\newcommand{\pmdraw at drawNoLabelBh}{-1}% 8th vertex to skip label in bottom row
+\newcommand{\pmdraw at drawNoLabelBi}{-1}% 9th vertex to skip label in bottom row
+\newcommand{\pmdraw at drawNoLabelTa}{-1}% 1st vertex to skip label in top row
+\newcommand{\pmdraw at drawNoLabelTb}{-1}% 2nd vertex to skip label in top row
+\newcommand{\pmdraw at drawNoLabelTc}{-1}% 3rd vertex to skip label in top row
+\newcommand{\pmdraw at drawNoLabelTd}{-1}% 4th vertex to skip label in top row
+\newcommand{\pmdraw at drawNoLabelTe}{-1}% 5th vertex to skip label in top row
+\newcommand{\pmdraw at drawNoLabelTf}{-1}% 6th vertex to skip label in top row
+\newcommand{\pmdraw at drawNoLabelTg}{-1}% 7th vertex to skip label in top row
+\newcommand{\pmdraw at drawNoLabelTh}{-1}% 8th vertex to skip label in top row
+\newcommand{\pmdraw at drawNoLabelTi}{-1}% 9th vertex to skip label in top row
+
+\newcommand{\pmdraw at drawNoVertexBa}{-1}% 1st vertex to skip in bottom row
+\newcommand{\pmdraw at drawNoVertexBb}{-1}% 2nd vertex to skip in bottom row
+\newcommand{\pmdraw at drawNoVertexBc}{-1}% 3rd vertex to skip in bottom row
+\newcommand{\pmdraw at drawNoVertexBd}{-1}% 4th vertex to skip in bottom row
+\newcommand{\pmdraw at drawNoVertexBe}{-1}% 5th vertex to skip in bottom row
+\newcommand{\pmdraw at drawNoVertexBf}{-1}% 6th vertex to skip in bottom row
+\newcommand{\pmdraw at drawNoVertexBg}{-1}% 7th vertex to skip in bottom row
+\newcommand{\pmdraw at drawNoVertexBh}{-1}% 8th vertex to skip in bottom row
+\newcommand{\pmdraw at drawNoVertexBi}{-1}% 9th vertex to skip in bottom row
+\newcommand{\pmdraw at drawNoVertexTa}{-1}% 1st vertex to skip in top row
+\newcommand{\pmdraw at drawNoVertexTb}{-1}% 2nd vertex to skip in top row
+\newcommand{\pmdraw at drawNoVertexTc}{-1}% 3rd vertex to skip in top row
+\newcommand{\pmdraw at drawNoVertexTd}{-1}% 4th vertex to skip in top row
+\newcommand{\pmdraw at drawNoVertexTe}{-1}% 5th vertex to skip in top row
+\newcommand{\pmdraw at drawNoVertexTf}{-1}% 6th vertex to skip in top row
+\newcommand{\pmdraw at drawNoVertexTg}{-1}% 7th vertex to skip in top row
+\newcommand{\pmdraw at drawNoVertexTh}{-1}% 8th vertex to skip in top row
+\newcommand{\pmdraw at drawNoVertexTi}{-1}% 9th vertex to skip in top row
+
 \newcommand{\pmdraw at drawTedgesDrawOptions}{}% Draw options for transversal edges
 \newcommand{\pmdraw at drawTedgesDrawDefault}[2]{% Draws transversal edge from #1 vertex in top row to #2 vertex in bottom row - DEFAULT
     \ifnum\pmdraw at ifTedgeHorizontal=0% If drawing a straight line edge
@@ -145,6 +203,10 @@
     \fill[apply style/.expand once=\pmdraw at drawVertexOptions] (#1,#2) circle (.17);%
 }
 
+\newcommand{\pmdraw at edgeUncover}{1-}% Sets the uncover options of edge
+\newcommand{\pmdraw at edgesAddedUncover}{1-}% Sets the uncover options of added edges
+\newcommand{\pmdraw at edgesUncover}{1-}% Sets the uncover options of edges
+
 \newcommand{\pmdraw at hookAfterBrick}{}% Hook after drawing a brick
 \newcommand{\pmdraw at hookAfterDiagram}{}% Hook after drawing a diagram
 \newcommand{\pmdraw at hookBeforeBrick}{}% Hook before drawing a brick
@@ -165,6 +227,7 @@
     \renewcommand{\pmdraw at diagSep}{1}% Resets vertical space between product diagrams
     \renewcommand{\pmdraw at drawAedgesOptions}{}% Resets draw options for added edges in product diagram
     \let\pmdraw at drawDots\pmdraw at drawDotsDefault% Resets drawing of dots between bricks
+    \renewcommand{\pmdraw at edgesAddedUncover}{1-}% Resets the uncover options of added edges
     \renewcommand{\pmdraw at hookAfterDiagram}{}% Clears hook after drawing a diagram
     \renewcommand{\pmdraw at hookBeforeDiagram}{}% Clears hook before drawing a diagram
     \renewcommand{\pmdraw at ifGrid}{0}% Hides grid
@@ -177,6 +240,7 @@
     \setcounter{pmdraw at bottomShift}{0}% Resets shift on right end of bottom row of brick
     \setcounter{pmdraw at topShift}{0}% Resets shift on right end of top row of brick
     \setcounter{pmdraw at ifDiagWDotsFirst}{1}% Reset if drawing first brick of diagram
+    \setcounter{pmdraw at ifEdgesAdded}{0}% Resets boolean if hiding added edges
 }
 
 \newcommand{\pmdraw at rowSep}{2}% Vertical separation between rows of vertices in brick
@@ -183,6 +247,9 @@
 
 \newcommand{\pmdraw at tikz}{}% Tikz options
 
+\newcommand{\pmdraw at verticesBottomUncover}{1-}% Sets the uncover options of bottom vertices
+\newcommand{\pmdraw at verticesTopUncover}{1-}% Sets the uncover options of top vertices
+
 \newcommand{\pmdraw at vertexSep}{0}% Vertical separation between bottom row of top diagram and top row of bottom diagram in product diagram not for added edges
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -210,6 +277,18 @@
 \newcounter{pmdraw at ifDiagWDotsFirst}% In drawing with dots, boolean if drawing first brick of diagram
 \setcounter{pmdraw at ifDiagWDotsFirst}{1}
 
+\newcounter{pmdraw at ifEdge}% Boolean if hiding edge
+\setcounter{pmdraw at ifEdge}{0}
+\newcounter{pmdraw at ifEdgesAdded}% Boolean if hiding added edges
+\setcounter{pmdraw at ifEdgesAdded}{0}
+\newcounter{pmdraw at ifEdges}% Boolean if hiding edges
+\setcounter{pmdraw at ifEdges}{0}
+
+\newcounter{pmdraw at ifVerticesBottom}% Boolean if hiding bottom row of vertices
+\setcounter{pmdraw at ifVerticesBottom}{0}
+\newcounter{pmdraw at ifVerticesTop}% Boolean if hiding top row of vertices
+\setcounter{pmdraw at ifVerticesTop}{0}
+
 \newcounter{pmdraw at labelStartB}% Starting value of labels of vertices in bottom row
 \setcounter{pmdraw at labelStartB}{1}
 \newcounter{pmdraw at labelStartT}% Starting value of labels of vertices in top row
@@ -257,6 +336,61 @@
 \define at key{pmdraw at brick}{vertices}{% Sets the draw options of vertices
     \renewcommand{\pmdraw at drawVertexOptions}{#1}%
 }
+\define at key{pmdraw at brick}{no vertex bottom 1}{% Sets 1st vertex to skip in bottom row
+    \renewcommand{\pmdraw at drawNoVertexBa}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex bottom 2}{% Sets 2nd vertex to skip in bottom row
+    \renewcommand{\pmdraw at drawNoVertexBb}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex bottom 3}{% Sets 3rd vertex to skip in bottom row
+    \renewcommand{\pmdraw at drawNoVertexBc}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex bottom 4}{% Sets 4th vertex to skip in bottom row
+    \renewcommand{\pmdraw at drawNoVertexBd}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex bottom 5}{% Sets 5th vertex to skip in bottom row
+    \renewcommand{\pmdraw at drawNoVertexBe}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex bottom 6}{% Sets 6th vertex to skip in bottom row
+    \renewcommand{\pmdraw at drawNoVertexBf}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex bottom 7}{% Sets 7th vertex to skip in bottom row
+    \renewcommand{\pmdraw at drawNoVertexBg}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex bottom 8}{% Sets 8th vertex to skip in bottom row
+    \renewcommand{\pmdraw at drawNoVertexBh}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex bottom 9}{% Sets 9th vertex to skip in bottom row
+    \renewcommand{\pmdraw at drawNoVertexBi}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex top 1}{% Sets 1st vertex to skip in top row
+    \renewcommand{\pmdraw at drawNoVertexTa}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex top 2}{% Sets 2nd vertex to skip in top row
+    \renewcommand{\pmdraw at drawNoVertexTb}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex top 3}{% Sets 3rd vertex to skip in top row
+    \renewcommand{\pmdraw at drawNoVertexTc}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex top 4}{% Sets 4th vertex to skip in top row
+    \renewcommand{\pmdraw at drawNoVertexTd}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex top 5}{% Sets 5th vertex to skip in top row
+    \renewcommand{\pmdraw at drawNoVertexTe}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex top 6}{% Sets 6th vertex to skip in top row
+    \renewcommand{\pmdraw at drawNoVertexTf}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex top 7}{% Sets 7th vertex to skip in top row
+    \renewcommand{\pmdraw at drawNoVertexTg}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex top 8}{% Sets 8th vertex to skip in top row
+    \renewcommand{\pmdraw at drawNoVertexTh}{#1}%
+}
+\define at key{pmdraw at brick}{no vertex top 9}{% Sets 9th vertex to skip in top row
+    \renewcommand{\pmdraw at drawNoVertexTi}{#1}%
+}
+
 \define at key{pmdraw at brick}{vertices options}{% Sets the draw command of vertices
     \renewcommand{\pmdraw at drawVertex}[2]{#1}%
 }
@@ -283,6 +417,61 @@
     \setcounter{pmdraw at labelStartT}{#1}%
 }
 
+\define at key{pmdraw at brick}{no label bottom 1}{% Sets 1st label to skip in bottom row
+    \renewcommand{\pmdraw at drawNoLabelBa}{#1}%
+}
+\define at key{pmdraw at brick}{no label bottom 2}{% Sets 2nd label to skip in bottom row
+    \renewcommand{\pmdraw at drawNoLabelBb}{#1}%
+}
+\define at key{pmdraw at brick}{no label bottom 3}{% Sets 3rd label to skip in bottom row
+    \renewcommand{\pmdraw at drawNoLabelBc}{#1}%
+}
+\define at key{pmdraw at brick}{no label bottom 4}{% Sets 4th label to skip in bottom row
+    \renewcommand{\pmdraw at drawNoLabelBd}{#1}%
+}
+\define at key{pmdraw at brick}{no label bottom 5}{% Sets 5th label to skip in bottom row
+    \renewcommand{\pmdraw at drawNoLabelBe}{#1}%
+}
+\define at key{pmdraw at brick}{no label bottom 6}{% Sets 6th label to skip in bottom row
+    \renewcommand{\pmdraw at drawNoLabelBf}{#1}%
+}
+\define at key{pmdraw at brick}{no label bottom 7}{% Sets 7th label to skip in bottom row
+    \renewcommand{\pmdraw at drawNoLabelBg}{#1}%
+}
+\define at key{pmdraw at brick}{no label bottom 8}{% Sets 8th label to skip in bottom row
+    \renewcommand{\pmdraw at drawNoLabelBh}{#1}%
+}
+\define at key{pmdraw at brick}{no label bottom 9}{% Sets 9th label to skip in bottom row
+    \renewcommand{\pmdraw at drawNoLabelBi}{#1}%
+}
+\define at key{pmdraw at brick}{no label top 1}{% Sets 1st label to skip in top row
+    \renewcommand{\pmdraw at drawNoLabelTa}{#1}%
+}
+\define at key{pmdraw at brick}{no label top 2}{% Sets 2nd label to skip in top row
+    \renewcommand{\pmdraw at drawNoLabelTb}{#1}%
+}
+\define at key{pmdraw at brick}{no label top 3}{% Sets 3rd label to skip in top row
+    \renewcommand{\pmdraw at drawNoLabelTc}{#1}%
+}
+\define at key{pmdraw at brick}{no label top 4}{% Sets 4th label to skip in top row
+    \renewcommand{\pmdraw at drawNoLabelTd}{#1}%
+}
+\define at key{pmdraw at brick}{no label top 5}{% Sets 5th label to skip in top row
+    \renewcommand{\pmdraw at drawNoLabelTe}{#1}%
+}
+\define at key{pmdraw at brick}{no label top 6}{% Sets 6th label to skip in top row
+    \renewcommand{\pmdraw at drawNoLabelTf}{#1}%
+}
+\define at key{pmdraw at brick}{no label top 7}{% Sets 7th label to skip in top row
+    \renewcommand{\pmdraw at drawNoLabelTg}{#1}%
+}
+\define at key{pmdraw at brick}{no label top 8}{% Sets 8th label to skip in top row
+    \renewcommand{\pmdraw at drawNoLabelTh}{#1}%
+}
+\define at key{pmdraw at brick}{no label top 9}{% Sets 9th label to skip in top row
+    \renewcommand{\pmdraw at drawNoLabelTi}{#1}%
+}
+
 \define at key{pmdraw at brick}{labels bottom draw}{% Sets the draw options for labels of bottom vertices
     \renewcommand{\pmdraw at drawLabelBDrawOptions}{#1}%
 }
@@ -299,7 +488,7 @@
 \define at key{pmdraw at brick}{labels bottom options}{% Sets the draw command of labels of bottom vertices
     \renewcommand{\pmdraw at drawLabelBottom}[3]{#1}%
 }
-\define at key{pmdraw at brick}{labels top options}{% Sets the draw command of labels of bottom vertices
+\define at key{pmdraw at brick}{labels top options}{% Sets the draw command of labels of top vertices
     \renewcommand{\pmdraw at drawLabelTop}[3]{#1}%
 }
 
@@ -314,6 +503,20 @@
     \renewcommand{\pmdraw at drawDotsNodeOptions}{#1}%
 }
 
+\define at key{pmdraw at brick}{vertices bottom phantom}[]{% Does not draw bottom vertices
+    \setcounter{pmdraw at ifVerticesBottom}{1}%
+}
+\define at key{pmdraw at brick}{vertices top phantom}[]{% Does not draw top vertices
+    \setcounter{pmdraw at ifVerticesTop}{1}%
+}
+
+\define at key{pmdraw at brick}{vertices bottom uncover}{% Sets the uncover options of bottom vertices
+    \renewcommand{\pmdraw at verticesBottomUncover}{#1}%
+}
+\define at key{pmdraw at brick}{vertices top uncover}{% Sets the uncover options of top vertices
+    \renewcommand{\pmdraw at verticesTopUncover}{#1}%
+}
+
 \define at key{pmdraw at brick}{levels}[1]{% Sets number of horizontal levels for non-transversal edges and evenly spaces them
     \tikzmath{%
         \pmdraw{edgeSepU} = (0.5*\pmdraw at rowSep)/(#1 + 1);% Calculates vertical separation between each edge
@@ -374,6 +577,14 @@
     \renewcommand{\pmdraw at ifTedgesFirst}{1}%
 }
 
+\define at key{pmdraw at brick}{edges phantom}[]{% Does not draw edges
+    \setcounter{pmdraw at ifEdges}{1}%
+}
+
+\define at key{pmdraw at brick}{edges uncover}{% Sets the uncover options of edges
+    \renewcommand{\pmdraw at edgesUncover}{#1}%
+}
+
 \define at key{pmdraw at brick}{brace}{% Draws a brace
     \setkeys{pmdraw at brace}{#1}% Processes details of brace
     \pmdraw at drawBrace{\value{pmdraw at braceL}}{\value{pmdraw at braceR}}{\pmdraw at braceLabel}% Draws brace
@@ -414,6 +625,12 @@
     \renewcommand{\pmdraw at drawUedgesDraw}[2]{#1}%
     \renewcommand{\pmdraw at drawLedgesDraw}[2]{#1}%
 }
+\define at key{pmdraw at NTedges}{phantom}[]{% Does not draw edge
+    \setcounter{pmdraw at ifEdge}{1}%
+}
+\define at key{pmdraw at NTedges}{uncover}{% Sets the uncover options of edge
+    \renewcommand{\pmdraw at edgeUncover}{#1}%
+}
 \define at key{pmdraw at Tedges}{height}{% Sets manual height of transversal edge
     \tikzmath{%
         \pmdraw{Tlevel} = #1;%
@@ -426,6 +643,12 @@
 \define at key{pmdraw at Tedges}{options}{% Sets the draw command of transversal edge
     \renewcommand{\pmdraw at drawTedgesDraw}[2]{#1}%
 }
+\define at key{pmdraw at Tedges}{phantom}[]{% Does not draw edge
+    \setcounter{pmdraw at ifEdge}{1}%
+}
+\define at key{pmdraw at Tedges}{uncover}{% Sets the uncover options of edge
+    \renewcommand{\pmdraw at edgeUncover}{#1}%
+}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                        %
@@ -485,6 +708,12 @@
 \define at key{pmdraw at diagram}{edges added}{% Sets the draw options for drawing of added edges in product diagram
     \renewcommand{\pmdraw at drawAedgesOptions}{#1}%
 }
+\define at key{pmdraw at diagram}{edges added phantom}[]{% Does not draw added edges
+    \setcounter{pmdraw at ifEdgesAdded}{1}%
+}
+\define at key{pmdraw at diagram}{edges added uncover}{% Sets the uncover options of added edges
+    \renewcommand{\pmdraw at edgesAddedUncover}{#1}%
+}
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %                                                        %
@@ -684,11 +913,47 @@
         \fi%
     \fi%
     \foreach \x in {1,...,\value{pmdraw at degreeB}} {% For each vertex in row
-        \pmdraw at drawVertex{\x + \value{pmdraw at blankB}}{0}% Draw lower vertex
-        \ifnum\pmdraw at ifLabelsB=1% If drawing labels
-            \pmdraw at drawLabelBottom{\x + \value{pmdraw at blankT}}{0}{\thepmdraw at labelStartB}% Draw label
-            \stepcounter{pmdraw at labelStartB}% Update label counter
+        \ifnum\pmdraw at drawNoVertexBa=\x\else% If not skipping vertex
+            \ifnum\pmdraw at drawNoVertexBb=\x\else% If not skipping vertex
+                \ifnum\pmdraw at drawNoVertexBc=\x\else% If not skipping vertex
+                    \ifnum\pmdraw at drawNoVertexBd=\x\else% If not skipping vertex
+                        \ifnum\pmdraw at drawNoVertexBe=\x\else% If not skipping vertex
+                            \ifnum\pmdraw at drawNoVertexBf=\x\else% If not skipping vertex
+                                \ifnum\pmdraw at drawNoVertexBg=\x\else% If not skipping vertex
+                                    \ifnum\pmdraw at drawNoVertexBh=\x\else% If not skipping vertex
+                                        \ifnum\pmdraw at drawNoVertexBi=\x\else% If not skipping vertex
+                                            \pmdraw at drawVertex{\x + \value{pmdraw at blankB}}{0}% Draw lower vertex
+                                        \fi%
+                                    \fi%
+                                \fi%
+                            \fi%
+                        \fi%
+                    \fi%
+                \fi%
+            \fi%
         \fi%
+        \ifnum\pmdraw at drawNoLabelBa=\x\else% If not skipping label
+            \ifnum\pmdraw at drawNoLabelBb=\x\else% If not skipping label
+                \ifnum\pmdraw at drawNoLabelBc=\x\else% If not skipping label
+                    \ifnum\pmdraw at drawNoLabelBd=\x\else% If not skipping label
+                        \ifnum\pmdraw at drawNoLabelBe=\x\else% If not skipping label
+                            \ifnum\pmdraw at drawNoLabelBf=\x\else% If not skipping label
+                                \ifnum\pmdraw at drawNoLabelBg=\x\else% If not skipping label
+                                    \ifnum\pmdraw at drawNoLabelBh=\x\else% If not skipping label
+                                        \ifnum\pmdraw at drawNoLabelBi=\x\else% If not skipping label
+                                            \ifnum\pmdraw at ifLabelsB=1% If drawing labels
+                                                \pmdraw at drawLabelBottom{\x + \value{pmdraw at blankT}}{0}{\thepmdraw at labelStartB}% Draw label
+                                            \fi%
+                                        \fi%
+                                    \fi%
+                                \fi%
+                            \fi%
+                        \fi%
+                    \fi%
+                \fi%
+            \fi%
+        \fi%
+        \stepcounter{pmdraw at labelStartB}% Update label counter
     }%
 }
 \newcommand{\pmdraw at drawBrickInit}[1]{% Initialises the drawing of a brick
@@ -708,53 +973,269 @@
     \setkeys{pmdraw at brick}{levels,#1}% Processes options and set default levels
     \pmdraw at hookBeforeBrick% Hook before drawing brick
     \ifnum\pmdraw at ifEdgesFirst=0% If drawing vertices first
-        \pmdraw at drawTopVertices% Draw base diagram
-        \pmdraw at drawBottomVertices% Draw base diagram
-        \ifnum\pmdraw at ifTedgesFirst=0% If drawing non-transversals first
-            \pmdraw at UedgesLoop% Draws upper edges
-            #2%
-            \pmdEmpty%
-            \pmdraw at LedgesLoop% Draws lower edges
-            #3%
-            \pmdEmpty%
-            \pmdraw at TedgesLoop% Draws transversals
-            #4%
-            \pmdEmpty%
-        \else% If drawing transversal first
-            \pmdraw at TedgesLoop% Draws transversals
-            #4%
-            \pmdEmpty%
-            \pmdraw at UedgesLoop% Draws upper edges
-            #2%
-            \pmdEmpty%
-            \pmdraw at LedgesLoop% Draws lower edges
-            #3%
-            \pmdEmpty%
-        \fi%
+        \@ifclassloaded{beamer}{% If in beamer
+            \uncover<\pmdraw at verticesTopUncover>{% Uncovers top vertices
+                \ifnum\value{pmdraw at ifVerticesTop}=0% If drawing top vertices
+                    \pmdraw at drawTopVertices% Draw base diagram
+                \else% If hiding top vertices
+                    \phantom{%
+                        \pmdraw at drawTopVertices% Draw base diagram
+                    }%
+                \fi%
+            }%
+            \uncover<\pmdraw at verticesBottomUncover>{% Uncovers bottom vertices
+                \ifnum\value{pmdraw at ifVerticesBottom}=0% If drawing bottom vertices
+                    \pmdraw at drawBottomVertices% Draw base diagram
+                \else% If hiding top vertices
+                    \phantom{%
+                        \pmdraw at drawBottomVertices% Draw base diagram
+                    }%
+                \fi%
+            }%
+            \uncover<\pmdraw at edgesUncover>{% Uncovers edges
+                \ifnum\value{pmdraw at ifEdges}=0% If drawing edges
+                    \ifnum\pmdraw at ifTedgesFirst=0% If drawing non-transversals first
+                        \pmdraw at UedgesLoop% Draws upper edges
+                        #2%
+                        \pmdEmpty%
+                        \pmdraw at LedgesLoop% Draws lower edges
+                        #3%
+                        \pmdEmpty%
+                        \pmdraw at TedgesLoop% Draws transversals
+                        #4%
+                        \pmdEmpty%
+                    \else% If drawing transversal first
+                        \pmdraw at TedgesLoop% Draws transversals
+                        #4%
+                        \pmdEmpty%
+                        \pmdraw at UedgesLoop% Draws upper edges
+                        #2%
+                        \pmdEmpty%
+                        \pmdraw at LedgesLoop% Draws lower edges
+                        #3%
+                        \pmdEmpty%
+                    \fi%
+                \else% If hiding edges
+                    \phantom{%
+                        \ifnum\pmdraw at ifTedgesFirst=0% If drawing non-transversals first
+                            \pmdraw at UedgesLoop% Draws upper edges
+                            #2%
+                            \pmdEmpty%
+                            \pmdraw at LedgesLoop% Draws lower edges
+                            #3%
+                            \pmdEmpty%
+                            \pmdraw at TedgesLoop% Draws transversals
+                            #4%
+                            \pmdEmpty%
+                        \else% If drawing transversal first
+                            \pmdraw at TedgesLoop% Draws transversals
+                            #4%
+                            \pmdEmpty%
+                            \pmdraw at UedgesLoop% Draws upper edges
+                            #2%
+                            \pmdEmpty%
+                            \pmdraw at LedgesLoop% Draws lower edges
+                            #3%
+                            \pmdEmpty%
+                        \fi%
+                    }%
+                \fi%
+            }%
+        }{% If not in beamer
+            \ifnum\value{pmdraw at ifVerticesTop}=0% If drawing top vertices
+                \pmdraw at drawTopVertices% Draw base diagram
+            \else% If hiding top vertices
+                \phantom{%
+                    \pmdraw at drawTopVertices% Draw base diagram
+                }%
+            \fi%
+            \ifnum\value{pmdraw at ifVerticesBottom}=0% If drawing bottom vertices
+                \pmdraw at drawBottomVertices% Draw base diagram
+            \else% If hiding top vertices
+                \phantom{%
+                    \pmdraw at drawBottomVertices% Draw base diagram
+                }%
+            \fi%
+            \ifnum\value{pmdraw at ifEdges}=0% If drawing edges
+                \ifnum\pmdraw at ifTedgesFirst=0% If drawing non-transversals first
+                    \pmdraw at UedgesLoop% Draws upper edges
+                    #2%
+                    \pmdEmpty%
+                    \pmdraw at LedgesLoop% Draws lower edges
+                    #3%
+                    \pmdEmpty%
+                    \pmdraw at TedgesLoop% Draws transversals
+                    #4%
+                    \pmdEmpty%
+                \else% If drawing transversal first
+                    \pmdraw at TedgesLoop% Draws transversals
+                    #4%
+                    \pmdEmpty%
+                    \pmdraw at UedgesLoop% Draws upper edges
+                    #2%
+                    \pmdEmpty%
+                    \pmdraw at LedgesLoop% Draws lower edges
+                    #3%
+                    \pmdEmpty%
+                \fi%
+            \else% If hiding edges
+                \phantom{%
+                    \ifnum\pmdraw at ifTedgesFirst=0% If drawing non-transversals first
+                        \pmdraw at UedgesLoop% Draws upper edges
+                        #2%
+                        \pmdEmpty%
+                        \pmdraw at LedgesLoop% Draws lower edges
+                        #3%
+                        \pmdEmpty%
+                        \pmdraw at TedgesLoop% Draws transversals
+                        #4%
+                        \pmdEmpty%
+                    \else% If drawing transversal first
+                        \pmdraw at TedgesLoop% Draws transversals
+                        #4%
+                        \pmdEmpty%
+                        \pmdraw at UedgesLoop% Draws upper edges
+                        #2%
+                        \pmdEmpty%
+                        \pmdraw at LedgesLoop% Draws lower edges
+                        #3%
+                        \pmdEmpty%
+                    \fi%
+                }%
+            \fi%
+        }%
     \else% If drawing edges first
-        \ifnum\pmdraw at ifTedgesFirst=0% If drawing non-transversals first
-            \pmdraw at UedgesLoop% Draws upper edges
-            #2%
-            \pmdEmpty%
-            \pmdraw at LedgesLoop% Draws lower edges
-            #3%
-            \pmdEmpty%
-            \pmdraw at TedgesLoop% Draws transversals
-            #4%
-            \pmdEmpty%
-        \else% If drawing transversal first
-            \pmdraw at TedgesLoop% Draws transversals
-            #4%
-            \pmdEmpty%
-            \pmdraw at UedgesLoop% Draws upper edges
-            #2%
-            \pmdEmpty%
-            \pmdraw at LedgesLoop% Draws lower edges
-            #3%
-            \pmdEmpty%
-        \fi%
-        \pmdraw at drawTopVertices% Draw base diagram
-        \pmdraw at drawBottomVertices% Draw base diagram
+        \@ifclassloaded{beamer}{% If in beamer
+            \uncover<\pmdraw at edgesUncover>{% Uncovers edges
+                \ifnum\value{pmdraw at ifEdges}=0% If drawing edges
+                    \ifnum\pmdraw at ifTedgesFirst=0% If drawing non-transversals first
+                        \pmdraw at UedgesLoop% Draws upper edges
+                        #2%
+                        \pmdEmpty%
+                        \pmdraw at LedgesLoop% Draws lower edges
+                        #3%
+                        \pmdEmpty%
+                        \pmdraw at TedgesLoop% Draws transversals
+                        #4%
+                        \pmdEmpty%
+                    \else% If drawing transversal first
+                        \pmdraw at TedgesLoop% Draws transversals
+                        #4%
+                        \pmdEmpty%
+                        \pmdraw at UedgesLoop% Draws upper edges
+                        #2%
+                        \pmdEmpty%
+                        \pmdraw at LedgesLoop% Draws lower edges
+                        #3%
+                        \pmdEmpty%
+                    \fi%
+                \else% If hiding edges
+                    \phantom{%
+                        \ifnum\pmdraw at ifTedgesFirst=0% If drawing non-transversals first
+                            \pmdraw at UedgesLoop% Draws upper edges
+                            #2%
+                            \pmdEmpty%
+                            \pmdraw at LedgesLoop% Draws lower edges
+                            #3%
+                            \pmdEmpty%
+                            \pmdraw at TedgesLoop% Draws transversals
+                            #4%
+                            \pmdEmpty%
+                        \else% If drawing transversal first
+                            \pmdraw at TedgesLoop% Draws transversals
+                            #4%
+                            \pmdEmpty%
+                            \pmdraw at UedgesLoop% Draws upper edges
+                            #2%
+                            \pmdEmpty%
+                            \pmdraw at LedgesLoop% Draws lower edges
+                            #3%
+                            \pmdEmpty%
+                        \fi%
+                    }%
+                \fi%
+            }%
+            \uncover<\pmdraw at verticesTopUncover>{% Uncovers top vertices
+                \ifnum\value{pmdraw at ifVerticesTop}=0% If drawing top vertices
+                    \pmdraw at drawTopVertices% Draw base diagram
+                \else% If hiding top vertices
+                    \phantom{%
+                        \pmdraw at drawTopVertices% Draw base diagram
+                    }%
+                \fi%
+            }%
+            \uncover<\pmdraw at verticesBottomUncover>{% Uncovers bottm vertices
+                \ifnum\value{pmdraw at ifVerticesBottom}=0% If drawing bottom vertices
+                    \pmdraw at drawBottomVertices% Draw base diagram
+                \else% If hiding top vertices
+                    \phantom{%
+                        \pmdraw at drawBottomVertices% Draw base diagram
+                    }%
+                \fi%
+            }%
+        }{% If not in beamer
+            \ifnum\value{pmdraw at ifEdges}=0% If drawing edges
+                \ifnum\pmdraw at ifTedgesFirst=0% If drawing non-transversals first
+                    \pmdraw at UedgesLoop% Draws upper edges
+                    #2%
+                    \pmdEmpty%
+                    \pmdraw at LedgesLoop% Draws lower edges
+                    #3%
+                    \pmdEmpty%
+                    \pmdraw at TedgesLoop% Draws transversals
+                    #4%
+                    \pmdEmpty%
+                \else% If drawing transversal first
+                    \pmdraw at TedgesLoop% Draws transversals
+                    #4%
+                    \pmdEmpty%
+                    \pmdraw at UedgesLoop% Draws upper edges
+                    #2%
+                    \pmdEmpty%
+                    \pmdraw at LedgesLoop% Draws lower edges
+                    #3%
+                    \pmdEmpty%
+                \fi%
+            \else% If hiding edges
+                \phantom{%
+                    \ifnum\pmdraw at ifTedgesFirst=0% If drawing non-transversals first
+                        \pmdraw at UedgesLoop% Draws upper edges
+                        #2%
+                        \pmdEmpty%
+                        \pmdraw at LedgesLoop% Draws lower edges
+                        #3%
+                        \pmdEmpty%
+                        \pmdraw at TedgesLoop% Draws transversals
+                        #4%
+                        \pmdEmpty%
+                    \else% If drawing transversal first
+                        \pmdraw at TedgesLoop% Draws transversals
+                        #4%
+                        \pmdEmpty%
+                        \pmdraw at UedgesLoop% Draws upper edges
+                        #2%
+                        \pmdEmpty%
+                        \pmdraw at LedgesLoop% Draws lower edges
+                        #3%
+                        \pmdEmpty%
+                    \fi%
+                }%
+            \fi%
+            \ifnum\value{pmdraw at ifVerticesTop}=0% If drawing top vertices
+                \pmdraw at drawTopVertices% Draw base diagram
+            \else% If hiding top vertices
+                \phantom{%
+                    \pmdraw at drawTopVertices% Draw base diagram
+                }%
+            \fi%
+            \ifnum\value{pmdraw at ifVerticesBottom}=0% If drawing bottom vertices
+                \pmdraw at drawBottomVertices% Draw base diagram
+            \else% If hiding top vertices
+                \phantom{%
+                    \pmdraw at drawBottomVertices% Draw base diagram
+                }%
+            \fi%
+        }%
     \fi%
     \pmdraw at hookAfterBrick% Hook after drawing brick
     % Resets user keys and other flags to default values
@@ -767,6 +1248,42 @@
     \renewcommand{\pmdraw at drawLabelTDrawOptions}{}%
     \renewcommand{\pmdraw at drawLabelTNodeOptions}{}%
     \renewcommand{\pmdraw at drawLedgesDrawOptions}{}%
+    \renewcommand{\pmdraw at drawNoLabelBa}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelBb}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelBc}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelBd}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelBe}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelBf}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelBg}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelBh}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelBi}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelTa}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelTb}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelTc}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelTd}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelTe}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelTf}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelTg}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelTh}{-1}%
+    \renewcommand{\pmdraw at drawNoLabelTi}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexBa}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexBb}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexBc}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexBd}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexBe}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexBf}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexBg}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexBh}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexBi}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexTa}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexTb}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexTc}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexTd}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexTe}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexTf}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexTg}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexTh}{-1}%
+    \renewcommand{\pmdraw at drawNoVertexTi}{-1}%
     \renewcommand{\pmdraw at drawTedgesDrawOptions}{}%
     \renewcommand{\pmdraw at drawUedgesDrawOptions}{}%
     \renewcommand{\pmdraw at drawVertexOptions}{}%
@@ -776,6 +1293,9 @@
     \renewcommand{\pmdraw at ifLabelsB}{0}%
     \renewcommand{\pmdraw at ifLabelsT}{0}%
     \renewcommand{\pmdraw at ifTedgesFirst}{0}%
+    \renewcommand{\pmdraw at edgesUncover}{1-}%
+    \renewcommand{\pmdraw at verticesBottomUncover}{1-}%
+    \renewcommand{\pmdraw at verticesTopUncover}{1-}%
     \let\pmdraw at drawLabelBottom\pmdraw at drawLabelBottomDefault%
     \let\pmdraw at drawLabelTop\pmdraw at drawLabelTopDefault%
     \let\pmdraw at drawLabelBottom\pmdraw at drawLabelBottomDefault%
@@ -783,6 +1303,9 @@
     \setcounter{pmdraw at blankT}{0}%
     \setcounter{pmdraw at labelStartB}{1}%
     \setcounter{pmdraw at labelStartT}{1}%
+    \setcounter{pmdraw at ifEdges}{0}%
+    \setcounter{pmdraw at ifVerticesBottom}{0}%
+    \setcounter{pmdraw at ifVerticesTop}{0}%
 }
 \newcommand{\pmdraw at drawLedges}[3][]{% Draws lower non-transversal edge, #1 options, #2 L vertex, #3 R vertex
     \setcounter{pmdraw at NTlevel}{1}% Store default level of edge
@@ -796,28 +1319,105 @@
             \pmdraw{edgeHeight}=\pmdraw at NTedgesHeight;% Set manual height
         }%
     \fi%
-    \pmdraw at drawLedgesDraw{#2}{#3}% Draw edge
+    \@ifclassloaded{beamer}{% If in beamer
+        \uncover<\pmdraw at edgeUncover>{% Uncovers edge
+            \ifnum\value{pmdraw at ifEdge}=0% If drawing edge
+                \pmdraw at drawLedgesDraw{#2}{#3}% Draw edge
+            \else% If hiding edge
+                \phantom{%
+                    \pmdraw at drawLedgesDraw{#2}{#3}% Draw edge
+                }%
+            \fi%
+        }%
+    }{% If not in beamer
+        \ifnum\value{pmdraw at ifEdge}=0% If drawing edge
+            \pmdraw at drawLedgesDraw{#2}{#3}% Draw edge
+        \else% If hiding edge
+            \phantom{%
+                \pmdraw at drawLedgesDraw{#2}{#3}% Draw edge
+            }%
+        \fi%
+    }%
     % Resets user keys and other flags to default values
     \renewcommand{\pmdraw at NTedgesHeight}{-1000}%
+    \renewcommand{\pmdraw at edgeUncover}{1-}%
+    \setcounter{pmdraw at ifEdge}{0}%
     \let\pmdraw at drawLedgesDraw\pmdraw at drawLedgesDrawDefault%
     \pmdraw at LedgesLoop% Restart for loop
 }
 \newcommand{\pmdraw at drawTedges}[3][]{% Draws transversal edge, #1 options, #2 upper vertex, #3 lower vertex
    \setkeys{pmdraw at Tedges}{#1}% Processes options
-   \pmdraw at drawTedgesDraw{#2}{#3}% Draw edge
-   \let\pmdraw at drawTedgesDraw\pmdraw at drawTedgesDrawDefault% Resets user keys and other flags to default values
+   \@ifclassloaded{beamer}{% If in beamer
+       \uncover<\pmdraw at edgeUncover>{% Uncovers edge
+           \ifnum\value{pmdraw at ifEdge}=0% If drawing edge
+               \pmdraw at drawTedgesDraw{#2}{#3}% Draw edge
+           \else% If hiding edge
+               \phantom{%
+                   \pmdraw at drawTedgesDraw{#2}{#3}% Draw edge
+               }%
+           \fi%
+       }%
+   }{% If not in beamer
+       \ifnum\value{pmdraw at ifEdge}=0% If drawing edge
+           \pmdraw at drawTedgesDraw{#2}{#3}% Draw edge
+       \else% If hiding edge
+           \phantom{%
+               \pmdraw at drawTedgesDraw{#2}{#3}% Draw edge
+           }%
+       \fi%
+   }%
+   % Resets user keys and other flags to default values
+   \renewcommand{\pmdraw at edgeUncover}{1-}%
+   \setcounter{pmdraw at ifEdge}{0}%
+   \let\pmdraw at drawTedgesDraw\pmdraw at drawTedgesDrawDefault%
    \pmdraw at TedgesLoop% Restart for loop
 }
 \newcommand{\pmdraw at drawTopVertices}{% Draws top row of vertices
-  \setcounter{pmdraw at topTotal}{\value{pmdraw at blankT}}% Store size of top row of vertices
-  \addtocounter{pmdraw at topTotal}{\value{pmdraw at degreeT}}% Store size of top row of vertices
-  \foreach \x in {1,...,\value{pmdraw at degreeT}} {% For each vertex in row
-      \pmdraw at drawVertex{\x + \value{pmdraw at blankT}}{\pmdraw at rowSep}% Draw upper vertex
-      \ifnum\pmdraw at ifLabelsT=1% If drawing labels
-          \pmdraw at drawLabelTop{\x + \value{pmdraw at blankT}}{\pmdraw at rowSep}{\thepmdraw at labelStartT}% Draw label
-          \stepcounter{pmdraw at labelStartT}% Update label counter
-      \fi%
-  }%
+    \setcounter{pmdraw at topTotal}{\value{pmdraw at blankT}}% Store size of top row of vertices
+    \addtocounter{pmdraw at topTotal}{\value{pmdraw at degreeT}}% Store size of top row of vertices
+    \foreach \x in {1,...,\value{pmdraw at degreeT}} {% For each vertex in row
+        \ifnum\pmdraw at drawNoVertexTa=\x\else% If not skipping vertex
+            \ifnum\pmdraw at drawNoVertexTb=\x\else% If not skipping vertex
+                \ifnum\pmdraw at drawNoVertexTc=\x\else% If not skipping vertex
+                    \ifnum\pmdraw at drawNoVertexTd=\x\else% If not skipping vertex
+                        \ifnum\pmdraw at drawNoVertexTe=\x\else% If not skipping vertex
+                            \ifnum\pmdraw at drawNoVertexTf=\x\else% If not skipping vertex
+                                \ifnum\pmdraw at drawNoVertexTg=\x\else% If not skipping vertex
+                                    \ifnum\pmdraw at drawNoVertexTh=\x\else% If not skipping vertex
+                                        \ifnum\pmdraw at drawNoVertexTi=\x\else% If not skipping vertex
+                                            \pmdraw at drawVertex{\x + \value{pmdraw at blankT}}{\pmdraw at rowSep}% Draw upper vertex
+                                        \fi%
+                                    \fi%
+                                \fi%
+                            \fi%
+                        \fi%
+                    \fi%
+                \fi%
+            \fi%
+        \fi%
+        \ifnum\pmdraw at drawNoLabelTa=\x\else% If not skipping label
+            \ifnum\pmdraw at drawNoLabelTb=\x\else% If not skipping label
+                \ifnum\pmdraw at drawNoLabelTc=\x\else% If not skipping label
+                    \ifnum\pmdraw at drawNoLabelTd=\x\else% If not skipping label
+                        \ifnum\pmdraw at drawNoLabelTe=\x\else% If not skipping label
+                            \ifnum\pmdraw at drawNoLabelTf=\x\else% If not skipping label
+                                \ifnum\pmdraw at drawNoLabelTg=\x\else% If not skipping label
+                                    \ifnum\pmdraw at drawNoLabelTh=\x\else% If not skipping label
+                                        \ifnum\pmdraw at drawNoLabelTi=\x\else% If not skipping label
+                                            \ifnum\pmdraw at ifLabelsT=1% If drawing labels
+                                                \pmdraw at drawLabelTop{\x + \value{pmdraw at blankT}}{\pmdraw at rowSep}{\thepmdraw at labelStartT}% Draw label
+                                            \fi%
+                                        \fi%
+                                    \fi%
+                                \fi%
+                            \fi%
+                        \fi%
+                    \fi%
+                \fi%
+            \fi%
+        \fi%
+        \stepcounter{pmdraw at labelStartT}% Update label counter
+    }%
 }
 \newcommand{\pmdraw at drawUedges}[3][]{% Draws upper non-transversal edge, #1 options, #2 L vertex, #3 R vertex
     \setcounter{pmdraw at NTlevel}{1}% Store default level of edge
@@ -831,9 +1431,29 @@
             \pmdraw{edgeHeight}=\pmdraw at rowSep-\pmdraw at NTedgesHeight;% Set manual height
         }%
     \fi%
-    \pmdraw at drawUedgesDraw{#2}{#3}% Draw edge
+    \@ifclassloaded{beamer}{% If in beamer
+        \uncover<\pmdraw at edgeUncover>{% Uncovers edge
+            \ifnum\value{pmdraw at ifEdge}=0% If drawing edge
+                \pmdraw at drawUedgesDraw{#2}{#3}% Draw edge
+            \else% If hiding edge
+                \phantom{%
+                    \pmdraw at drawUedgesDraw{#2}{#3}% Draw edge
+                }%
+            \fi%
+        }%
+    }{% If not in beamer
+        \ifnum\value{pmdraw at ifEdge}=0% If drawing edge
+            \pmdraw at drawUedgesDraw{#2}{#3}% Draw edge
+        \else% If hiding edge
+            \phantom{%
+                \pmdraw at drawUedgesDraw{#2}{#3}% Draw edge
+            }%
+        \fi%
+    }%
     % Resets user keys and other flags to default values
     \renewcommand{\pmdraw at NTedgesHeight}{-1000}%
+    \renewcommand{\pmdraw at edgeUncover}{1-}%
+    \setcounter{pmdraw at ifEdge}{0}%
     \let\pmdraw at drawLedgesDraw\pmdraw at drawLedgesDrawDefault%
     \let\pmdraw at drawUedgesDraw\pmdraw at drawUedgesDrawDefault%
     \pmdraw at UedgesLoop% Restart for loop



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