summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2025-01-25 03:03:52 +0000
committerNorbert Preining <norbert@preining.info>2025-01-25 03:03:52 +0000
commit6c421a84662eebd5be3272d632b32789b0fa3017 (patch)
tree40bc275a812d8b2efe5a7bf5577981a4a8c14208 /graphics
parent67734e1eec2942aa74cab9e12e69bf4e1fb3f0e9 (diff)
CTAN sync 202501250303
Diffstat (limited to 'graphics')
-rw-r--r--graphics/pgf/contrib/atableau/LICENSE86
-rw-r--r--graphics/pgf/contrib/atableau/README.md17
-rw-r--r--graphics/pgf/contrib/atableau/atableau.ini4
-rw-r--r--graphics/pgf/contrib/atableau/atableau.pdfbin840926 -> 846663 bytes
-rw-r--r--graphics/pgf/contrib/atableau/atableau.sty101
-rw-r--r--graphics/pgf/contrib/atableau/atableau.tex250
-rw-r--r--graphics/pgf/contrib/pmdraw/README.md6
-rw-r--r--graphics/pgf/contrib/pmdraw/pmdraw.pdfbin420095 -> 428396 bytes
-rw-r--r--graphics/pgf/contrib/pmdraw/pmdraw.sty901
-rw-r--r--graphics/pgf/contrib/pmdraw/pmdraw.tex125
-rw-r--r--graphics/pgf/contrib/tikzdotncross/README.md4
-rw-r--r--graphics/pgf/contrib/tikzdotncross/doc/tikzdotncross.pdfbin244699 -> 244545 bytes
-rw-r--r--graphics/pgf/contrib/tikzdotncross/doc/tikzdotncross.tex2
-rw-r--r--graphics/pgf/contrib/tikzdotncross/latex/tikzdotncross.sty7
14 files changed, 1302 insertions, 201 deletions
diff --git a/graphics/pgf/contrib/atableau/LICENSE b/graphics/pgf/contrib/atableau/LICENSE
index f79de3285a..329bcef402 100644
--- a/graphics/pgf/contrib/atableau/LICENSE
+++ b/graphics/pgf/contrib/atableau/LICENSE
@@ -1,9 +1,9 @@
The LaTeX Project Public License
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-LPPL Version 1.3 2003-12-01
+LPPL Version 1.3c 2008-05-04
-Copyright 1999 2002-03 LaTeX3 Project
+Copyright 1999 2002-2008 LaTeX3 Project
Everyone is allowed to distribute verbatim copies of this
license document, but modification of it is not allowed.
@@ -17,8 +17,8 @@ which the LaTeX kernel and the base LaTeX packages are distributed.
You may use this license for any work of which you hold the copyright
and which you wish to distribute. This license may be particularly
suitable if your work is TeX-related (such as a LaTeX package), but
-you may use it with small modifications even if your work is unrelated
-to TeX.
+it is written in such a way that you can use it even if your work is
+unrelated to TeX.
The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
below, gives instructions, examples, and recommendations for authors
@@ -82,12 +82,14 @@ In this license document the following terms are used:
`Base Interpreter'
A program or process that is normally needed for running or
interpreting a part or the whole of the Work.
+
A Base Interpreter may depend on external components but these
are not considered part of the Base Interpreter provided that each
external component clearly identifies itself whenever it is used
interactively. Unless explicitly specified when applying the
license to the Work, the only applicable Base Interpreter is a
- "LaTeX-Format".
+ `LaTeX-Format' or in the case of files belonging to the
+ `LaTeX-format' a program implementing the `TeX language'.
@@ -162,8 +164,8 @@ to a component of the Work.
condition, even though third parties are not compelled to
copy the Work along with the modified component;
- 2. Information that is sufficient to obtain a complete, unmodified
- copy of the Work.
+ 2. Information that is sufficient to obtain a complete,
+ unmodified copy of the Work.
7. If you are not the Current Maintainer of the Work, you may
distribute a Compiled Work generated from a Derived Work, as long as
@@ -171,9 +173,9 @@ the Derived Work is distributed to all recipients of the Compiled
Work, and as long as the conditions of Clause 6, above, are met with
regard to the Derived Work.
-8. The conditions above are not intended to prohibit, and hence do
-not apply to, the modification, by any method, of any component so that it
-becomes identical to an updated version of that component of the Work as
+8. The conditions above are not intended to prohibit, and hence do not
+apply to, the modification, by any method, of any component so that it
+becomes identical to an updated version of that component of the Work as
it is distributed by the Current Maintainer under Clause 4, above.
9. Distribution of the Work or any Derived Work in an alternative
@@ -187,7 +189,7 @@ applying that process.
Clause 6 above, in regard to the Work, though it does not have
to honor the rest of the conditions in this license.
- b. If a Derived Work is distributed under this license, that
+ b. If a Derived Work is distributed under a different license, that
Derived Work must provide sufficient documentation as part of
itself to allow each recipient of that Derived Work to honor the
restrictions in Clause 6 above, concerning changes from the Work.
@@ -206,19 +208,19 @@ NO WARRANTY
There is no warranty for the Work. Except when otherwise stated in
writing, the Copyright Holder provides the Work `as is', without
warranty of any kind, either expressed or implied, including, but not
-limited to, the implied warranties of merchantability and fitness for
-a particular purpose. The entire risk as to the quality and performance
-of the Work is with you. Should the Work prove defective, you
-assume the cost of all necessary servicing, repair, or correction.
-
-In no event unless agreed to in writing will the Copyright Holder, or
-any author named in the components of the Work, or any other party who
-may distribute and/or modify the Work as permitted above, be liable to
-you for damages, including any general, special, incidental or
-consequential damages arising out of any use of the Work or out of
-inability to use the Work (including, but not limited to, loss of
-data, data being rendered inaccurate, or losses sustained by anyone as
-a result of any failure of the Work to operate with any other
+limited to, the implied warranties of merchantability and fitness for a
+particular purpose. The entire risk as to the quality and performance
+of the Work is with you. Should the Work prove defective, you assume
+the cost of all necessary servicing, repair, or correction.
+
+In no event unless required by applicable law or agreed to in writing
+will The Copyright Holder, or any author named in the components of the
+Work, or any other party who may distribute and/or modify the Work as
+permitted above, be liable to you for damages, including any general,
+special, incidental or consequential damages arising out of any use of
+the Work or out of inability to use the Work (including, but not limited
+to, loss of data, data being rendered inaccurate, or losses sustained by
+anyone as a result of any failure of the Work to operate with any other
programs), even if the Copyright Holder or said author or said other
party has been advised of the possibility of such damages.
@@ -229,7 +231,7 @@ MAINTENANCE OF THE WORK
The Work has the status `author-maintained' if the Copyright Holder
explicitly and prominently states near the primary copyright notice in
the Work that the Work can only be maintained by the Copyright Holder
-or simply that is `author-maintained'.
+or simply that it is `author-maintained'.
The Work has the status `maintained' if there is a Current Maintainer
who has indicated in the Work that they are willing to receive error
@@ -350,19 +352,19 @@ component is constrained by the conditions in this license.
Here is an example of such a notice and statement:
%% pig.dtx
- %% Copyright 2003 M. Y. Name
+ %% Copyright 2008 M. Y. Name
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
% of this license or (at your option) any later version.
% The latest version of this license is in
- % http://www.latex-project.org/lppl.txt
- % and version 1.3 or later is part of all distributions of LaTeX
- % version 2003/12/01 or later.
+ % https://www.latex-project.org/lppl.txt
+ % and version 1.3c or later is part of all distributions of LaTeX
+ % version 2008 or later.
%
- % This work has the LPPL maintenance status "maintained".
+ % This work has the LPPL maintenance status `maintained'.
%
- % This Current Maintainer of this work is M. Y. Name.
+ % The Current Maintainer of this work is M. Y. Name.
%
% This work consists of the files pig.dtx and pig.ins
% and the derived file pig.sty.
@@ -371,12 +373,25 @@ Given such a notice and statement in a file, the conditions
given in this license document would apply, with the `Work' referring
to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
-referring to any "LaTeX-Format", and both `Copyright Holder' and
+referring to any `LaTeX-Format', and both `Copyright Holder' and
`Current Maintainer' referring to the person `M. Y. Name'.
-To prevent the Maintenance section of LPPL from allowing someone else
-to become the Current Maintainer without your agreement, you could
-change "maintained" above into "author-maintained".
+If you do not want the Maintenance section of LPPL to apply to your
+Work, change `maintained' above into `author-maintained'.
+However, we recommend that you use `maintained', as the Maintenance
+section was added in order to ensure that your Work remains useful to
+the community even when you can no longer maintain and support it
+yourself.
+
+Derived Works That Are Not Replacements
+---------------------------------------
+
+Several clauses of the LPPL specify means to provide reliability and
+stability for the user community. They therefore concern themselves
+with the case that a Derived Work is intended to be used as a
+(compatible or incompatible) replacement of the original Work. If
+this is not the case (e.g., if a few lines of code are reused for a
+completely different task), then clauses 6b and 6d shall not apply.
Important Recommendations
@@ -399,3 +414,4 @@ Important Recommendations
entitled to make reasonable conjectures as to which files comprise
the Work.
+
diff --git a/graphics/pgf/contrib/atableau/README.md b/graphics/pgf/contrib/atableau/README.md
index 67be172466..f659fb20ed 100644
--- a/graphics/pgf/contrib/atableau/README.md
+++ b/graphics/pgf/contrib/atableau/README.md
@@ -3,18 +3,17 @@
![LaTeX](https://img.shields.io/badge/LaTeX-008080?logo=latex&logoColor=fff&style=flat)
# aTableau
-1
A LaTeX package for symmetric group combinatorics, with commands for:
- - Young diagrams
- - tableaux
- - tabloids
- - skew tableaux
- - shifted tableaux
- - ribbon tableaux
- - multitableaux
- - abacuses
+ - Young diagrams
+ - tableaux
+ - tabloids
+ - skew tableaux
+ - shifted tableaux
+ - ribbon tableaux
+ - multitableaux
+ - abacuses
``` latex
\Tableau{12345,678,9{10},{11}}
diff --git a/graphics/pgf/contrib/atableau/atableau.ini b/graphics/pgf/contrib/atableau/atableau.ini
index d8d8246479..bd80bd3baa 100644
--- a/graphics/pgf/contrib/atableau/atableau.ini
+++ b/graphics/pgf/contrib/atableau/atableau.ini
@@ -9,5 +9,5 @@ name = Andrew Mathas
package = atableau
repository = github.com/AndrewMathas/aTableau/
requirements = LaTeX2e
-release date = 22 January 2025 AEDT
-version = 2.0.2
+release date = 24 January 2025 AEDT
+version = 2.1.0
diff --git a/graphics/pgf/contrib/atableau/atableau.pdf b/graphics/pgf/contrib/atableau/atableau.pdf
index d819e18d33..4ccc1130ef 100644
--- a/graphics/pgf/contrib/atableau/atableau.pdf
+++ b/graphics/pgf/contrib/atableau/atableau.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/atableau/atableau.sty b/graphics/pgf/contrib/atableau/atableau.sty
index 75904e3c64..05692c3550 100644
--- a/graphics/pgf/contrib/atableau/atableau.sty
+++ b/graphics/pgf/contrib/atableau/atableau.sty
@@ -17,19 +17,19 @@
% See http://www.latex-project.org/lppl.txt
% ---------------------------------------------------------------------------
+
% load TikZ early to avoid \ExplSyntaxOn...\ExplSyntaxOff wrappers
\RequirePackage{tikz}
\usetikzlibrary{shapes.geometric,matrix}
-
% Correct for negative signs in contents being too long to fit in a tableau
\RequirePackage{amsfonts} %% <- also included by amssymb
\DeclareMathSymbol{\shortminus}{\mathbin}{AMSa}{"39}
% ---------------------------------------------------------------------------
% package date and version
-\def\atableau@version{2.0.2}
-\def\atableau@release{2025-01-22}
+\def\atableau@version{2.1.0}
+\def\atableau@release{2025-01-24}
\providecommand\DeclareRelease[3]{}
\providecommand\DeclareCurrentRelease[2]{}
@@ -39,6 +39,20 @@
\ProvidesExplPackage{atableau} {\atableau@release} {\atableau@version}
{A latex package for symmetric group combinatorics }
+
+% Give a warning if the LaTeX installation is older than TeXLive 2024
+\IfFormatAtLeastTF { 2024-04-13 } {}
+{
+ \PackageWarning {aTableau}
+ {
+ The~aTableau~package~uses~many~recent~features~from~
+ ~LaTeX3.~Your~LaTeX ~installation~appears~to~be~quite~,
+ ~which~might~result~in~errors~from~the ~package.~You~
+ ~may~need~to~update~your~LaTeX~installation~to~at~
+ ~least~TeXLive~2024
+ }
+}
+
% ---------------------------------------------------------------------------
% package errors
@@ -127,6 +141,8 @@
\fp_new:N \l__atableau_box_wd_fp % width of a tableau box
\fp_new:N \l__atableau_rows_fp % number of rows in abacus/tableau
\fp_new:N \l__atableau_separation_fp % distance between multitableau
+\fp_new:N \l__atableau_script_fp % scaling when used as a subscript
+\fp_new:N \l__atableau_sscriptscript_fp % scaling when used as a subsubscript
\fp_new:N \l__atableau_tab_col_dx_fp % change in x-coordinate between columns in a tableau
\fp_new:N \l__atableau_tab_col_dy_fp % change in y-coordinate between columns in a tableau
\fp_new:N \l__atableau_tab_row_dx_fp % change in x-coordinate between rows in a tableau
@@ -454,6 +470,7 @@
\fp_set:Nn \l__atableau_box_wd_fp {\l__atableau_xscale_fp*0.5}
\tl_set:Nn \l__atableau_box_shape_tl {rectangle}
}
+
{tableau/french}
{
\fp_set:Nn \l__atableau_tab_col_dx_fp {1}
@@ -464,6 +481,7 @@
\fp_set:Nn \l__atableau_box_wd_fp {\l__atableau_xscale_fp*0.5}
\tl_set:Nn \l__atableau_box_shape_tl {rectangle}
}
+
{tableau/australian}
{
\fp_set:Nn \l__atableau_tab_col_dx_fp {0.5}
@@ -474,6 +492,7 @@
\fp_set:Nn \l__atableau_box_wd_fp {\l__atableau_xscale_fp*0.7012}
\tl_set:Nn \l__atableau_box_shape_tl {diamond}
}
+
{tableau/ukrainian}
{
\fp_set:Nn \l__atableau_tab_col_dx_fp {0.5}
@@ -484,10 +503,7 @@
\fp_set:Nn \l__atableau_box_wd_fp {\l__atableau_xscale_fp*0.7012}
\tl_set:Nn \l__atableau_box_shape_tl {diamond}
}
- {tableau/russian}
- {
- \__atableau_set_style:nn {tableau} {ukrainian}
- }
+
{abacus/south}
{
\fp_set:Nn \l__atableau_ab_col_dx_fp {1}
@@ -498,6 +514,7 @@
\fp_set:Nn \l__atableau_abacus_wd_fp {\l__atableau_xscale_fp*0.5}
\tl_set:Nn \l__atableau_bead_shape_tl {circle}
}
+
{abacus/north}
{
\fp_set:Nn \l__atableau_ab_col_dx_fp {1}
@@ -508,6 +525,7 @@
\fp_set:Nn \l__atableau_abacus_wd_fp {\l__atableau_xscale_fp*0.5}
\fp_set:Nn \l__atableau_abacus_ht_fp {\l__atableau_yscale_fp*0.5}
}
+
{abacus/east}
{
\fp_set:Nn \l__atableau_ab_col_dx_fp {0}
@@ -518,6 +536,7 @@
\fp_set:Nn \l__atableau_abacus_wd_fp {\l__atableau_xscale_fp*0.5}
\fp_set:Nn \l__atableau_abacus_ht_fp {\l__atableau_yscale_fp*0.5}
}
+
{abacus/west}
{
\fp_set:Nn \l__atableau_ab_col_dx_fp {0}
@@ -2728,7 +2747,7 @@
align/centre .code:n = { \tikzset{baseline=(current~bounding~box.center)}},
align/bottom .code:n = { \tikzset{baseline=(current~bounding~box.south)} },
align/south .code:n = { \tikzset{baseline=(current~bounding~box.south)} },
- align .unknown .code:n = { \msg_error:nne { aTableau } { unknown-baseline } {#1} },
+ align .unknown .code:n = { \msg_error:nnn { aTableau } { unknown-baseline } {#1} },
align .initial:n = centre,
% set the Cartan type
@@ -2787,6 +2806,15 @@
scale .code:n = { \__atableau_set_xscale:n {#1} \__atableau_set_yscale:n {#1} },
scale .value_required:n = true,
+ % subscript an subsubscript scalinmg
+ script .fp_set:N = \l__atableau_script_fp,
+ script .value_required:n = true,
+ script .initial:n = 0.5,
+
+ scriptscript .fp_set:N = \l__atableau_scriptscript_fp,
+ scriptscript .value_required:n = true,
+ scriptscript .initial:n = 0.4,
+
star~style .code:n = { \__atableau_tikzset_append:nn {tableauStarStyle} {#1} },
star~style .value_required:n = true,
@@ -3186,20 +3214,46 @@
% keep changes to settings local by working inside a group
\keys_set:nn {atableau} {#1}
\IfNoValueTF {#2}
- { % wrap inside a tikzpicture environment, placing the picture at (0,0)
- \__atableau_set_origin:nn (0,0)
- \exp_last_unbraced:Ne \tikz{[\l__atableau_tikzpicture_tl]}
- {
- \l__atableau_tikz_before_tl
- #3
- \l__atableau_tikz_after_tl
- }
+ { % wrap inside a tikzpicture environment, placing the picture at (0,0)
+ \__atableau_set_origin:nn (0,0)
+
+ \mode_if_math:TF
+ {
+ % We want to automatically rescale when used as a subscript, which
+ % we do by putting the tikz code inside a box and then using
+ % \mathchoice to adjust for script size, using an idea of cfr's
+
+ \hbox_set:Nw \l_tmpa_box
+ \exp_last_unbraced:Ne \tikz{[\l__atableau_tikzpicture_tl]}
+ { \l__atableau_tikz_before_tl #3 \l__atableau_tikz_after_tl }
+ \hbox_set_end:
+
+ \mathchoice
+ { % display style: do nothing
+ \box_use:N \l_tmpa_box
+ }
+ { % text style: do nothing
+ \box_use:N \l_tmpa_box
+ }
+ { % script style: rescale
+ \box_scale:Nnn \l_tmpa_box {\l__atableau_script_fp*\l__atableau_xscale_fp}
+ {\l__atableau_script_fp*\l__atableau_yscale_fp}
+ \box_use:N \l_tmpa_box
+ }
+ { % scriptscript style: rescale
+ \box_scale:Nnn \l_tmpa_box {\l__atableau_scriptscript_fp*\l__atableau_xscale_fp}
+ {\l__atableau_scriptscript_fp*\l__atableau_yscale_fp}
+ \box_use:N \l_tmpa_box
+ }
+ }
+ { % Not in maths-mode. tcolorbox objects to using a box here
+ \exp_last_unbraced:Ne \tikz{[\l__atableau_tikzpicture_tl]}
+ { \l__atableau_tikz_before_tl #3 \l__atableau_tikz_after_tl }
+ }
}
{ % already inside a tikzpicture environment
\__atableau_set_origin:nn (#2)
- \l__atableau_tikz_before_tl
- #3
- \l__atableau_tikz_after_tl
+ \l__atableau_tikz_before_tl #3 \l__atableau_tikz_after_tl
}
\group_end:
}
@@ -3295,11 +3349,11 @@
% ---------------------------------------------------------------------------
% CHANGE LOG
%
-% Version 1.0
+% Version 1.0.0 - 2023-10-06
% - initial version
% - Young diagrams, tabloids, tableaux, shifted tableaux, Ukrainian tableaux, abacuses, braids
%
-% Version 2.0
+% Version 2.0.0 - 2025-01-22
% - completely rewritten using LaTeX3
% - key interface for the tableaux options
% - macros can be used both in and outside tikzpicture environments
@@ -3307,6 +3361,11 @@
% - support for different conventions (english, french, ukrainian, australian)
% - support diagrams, tableaux, including tabloids, skew and shifted tableaux and ribbon tableaux
% - stars and styles
+%
+% Version 2.1.0 - 2025-01-24
+% - support for using aTableau commands in super and subscripts
+% - warning about using older versions of LaTeX3
+
% ---------------------------------------------------------------------------
%
diff --git a/graphics/pgf/contrib/atableau/atableau.tex b/graphics/pgf/contrib/atableau/atableau.tex
index 8574fcace3..a91636eb8c 100644
--- a/graphics/pgf/contrib/atableau/atableau.tex
+++ b/graphics/pgf/contrib/atableau/atableau.tex
@@ -1,6 +1,6 @@
% ----------------------------------------------------------------------
% Title: aTableau. Author: Andrew Mathas Created: October 2023
-% Modified: 22:42 Wednesday, 22 January 2025
+% Modified: 16:58 Friday, 24 January 2025
% ----------------------------------------------------------------------
\documentclass{amsart}
\usepackage[svgnames,table]{xcolor}
@@ -8,6 +8,7 @@
\usepackage{xspace}
\usepackage{manfnt}
\usepackage{booktabs}
+\usepackage{longtable}
\usepackage{xltabular}
\usepackage{siunitx}
\usepackage{array}
@@ -41,23 +42,35 @@
\tikz[baseline={(current bounding box.south)}]\node[minimum width=8mm, minimum height=2ex,fill=aTableau#1]{};%
}
-\usepackage{enumitem}
-\setlist{itemsep=2mm, parsep=2mm}
-\newlist{options}{description}{1}
-% remove the colon from the description label by redefining \makelabel
-\newcommand\optionlabel[1]{\sffamily\bfseries\color{aTableauInner}#1\hss}
-\setlist[options]{
- before=\let\makelabel\optionlabel,
- labelwidth=\textwidth,
- nosep,
+\ExplSyntaxOn
+% \optionlabel applies \option to the csv in #1 except in the case
+% when #1 starts with a * when the rest of #1 is printed
+\NewDocumentCommand\optionlabel{ m }
+{
+ \str_if_eq:eeTF { \str_head:n {#1} } {*}
+ {
+ \tl_set:Nx \l_tmpb_tl { \str_tail:n {#1} }
+ \tl_put_left:Nn \l_tmpb_tl {\sffamily\color{aTableauInner}}
+ }
+ {
+ \tl_clear:N \l_tmpa_tl
+ \tl_clear:N \l_tmpb_tl
+ \clist_map_inline:nn {#1}
+ {
+ \tl_put_right:Ne \l_tmpb_tl { \l_tmpa_tl \exp_not:N\option{##1}}
+ \tl_set:Nn \l_tmpa_tl {,~}
+ }
+ }
+ \l_tmpb_tl\hss
}
-\ExplSyntaxOn
-\NewDocumentCommand\Yes{o}
+\NewDocumentCommand\Yes{o d()}
{
\IfNoValueTF{#1}
{
- \hyperref[\g_lastlink_tl]{\textcolor{ForestGreen}{\CheckmarkBold}}
+ \IfNoValueTF{#2}
+ { \hyperref[\g_lastlink_tl]{\textcolor{ForestGreen}{\CheckmarkBold}} }
+ { \hyperref[Key:#2]{\textcolor{ForestGreen}{\CheckmarkBold}} }
}
{
\hyperref[\g_lastlink_tl-\str_lowercase:f{#1}]{\textcolor{ForestGreen}{\CheckmarkBold}}
@@ -76,7 +89,7 @@
\prop_put:NVn \l__atableau_options_prop \g_lastlink_tl {}
}
}
-% \option*[default value]{option name}[accepted values]<hyperlink context>
+% \option*[default value]{option name}[accepted values]<hyperlink context>(link name)
% The \option command is slightly overloaded, both in terms of arguments
% (there are five) and in terms of use.
% 1. If #2 is given then \option gives the syntax for the using this key:
@@ -98,7 +111,7 @@
% added for new displayed options. If #2 is blank then the *-version
% puts (no) before the option key. If #5 is given then it is added to
% to the hyperlink.
-\NewDocumentCommand\option{ somo d<> }
+\NewDocumentCommand\option{ somo d<> d()}
{%
\seq_set_split:Nnn \l_tmpa_seq {=} {#3}%
\seq_pop_left:NN \l_tmpa_seq \l_tmpa_tl%
@@ -107,8 +120,12 @@
{ \tl_set:No \l_tmpb_tl { \seq_use:Nn \l_tmpa_seq {=} } }
\IfNoValueTF{#2}
{%
- \tl_gset:Nx \g_lastlink_tl {Key:\str_lowercase:f{\l_tmpa_tl}}
- \IfNoValueF{#5} { \tl_gput_right:No \g_lastlink_tl {\str_lowercase:f{-#5}} }
+ \IfNoValueTF{#6}
+ {
+ \tl_gset:Nx \g_lastlink_tl {Key:\str_lowercase:f{\l_tmpa_tl}}
+ \IfNoValueF{#5} { \tl_gput_right:No \g_lastlink_tl {\str_lowercase:f{-#5}} }
+ }
+ { \tl_gset:Ne \g_lastlink_tl {Key:#6} }
\hyperref[\g_lastlink_tl]{\textsf{\color{aTableauInner}\IfBooleanT{#1}{(no)~}\l_tmpa_tl}}
\index{\l_tmpa_tl}%
\tl_if_empty:NF \l_tmpb_tl { \textsf{\,$=$\,}\textsf{\textcolor{orange}{\l_tmpb_tl}} }
@@ -216,6 +233,17 @@
\ExplSyntaxOff
% ---------------------------------------------------------------------------
+\usepackage{enumitem}
+\setlist{itemsep=2mm, parsep=2mm}
+\newlist{options}{description}{1}
+% remove the colon from the description label by redefining \makelabel
+\setlist[options]{
+ before=\let\makelabel\optionlabel,
+ labelwidth=\textwidth,
+ nosep,
+}
+
+% ---------------------------------------------------------------------------
% the index
\usepackage{imakeidx}
@@ -434,9 +462,10 @@
sharp corners=northwest,
sharp corners=southeast,
},
+ title={\tiny\thetcbcounter},
sharp corners=northeast,
parbox=false,
- lefthand width=0.35\textwidth,
+ lefthand width=0.34\textwidth,
listing style=atableau,
parbox=false,
parskip=4mm
@@ -447,11 +476,10 @@
text outside listing,
boxsep = 0pt,
left=0mm,
- right=2mm,
- title={\tiny\thetcbcounter},
#1
}
+\let\thetcolorboxnumber\relax
\DeclareTCBListing[use counter=examples, number within=subsection,%crefname={Example}{Examples}
]{Example}{ !O{} }{%
@@ -567,7 +595,7 @@
\def\equationautorefname~#1\null{(#1)\null}
\renewcommand\sectionautorefname{Chapter}
\renewcommand\subsectionautorefname{Section}
-\renewcommand\subsubsectionautorefname{Subsection}
+\def\subsubsectionautorefname~#1\null{\S#1\null}
\begin{document}
@@ -657,27 +685,26 @@
\begin{center}
\aTabset{align=centre}
- \begin{tabular}{lp{0.6\textwidth}l} \toprule
+ \begin{longtable}{lp{0.6\textwidth}l} \toprule % longtable allows footnotes
\textcolor{aTableauMain}{Convention} &\textcolor{aTableauMain}{\aTableau command} & \textcolor{aTableauMain}{Picture} \\ \midrule
English & \keyword{\Tableau[english]{1234,567,89{10},{11}{12}}}\newline(the default)
& \Tableau{1234,567,89{10},{11}{12}}\\[10mm]
French & \keyword{\Tableau[french]{1234,567,89{10},{11}{12}}}
& \Tableau[french]{1234,567,89{10},{11}{12}}\\[10mm]
- Ukrainian\footnotemark
+ Ukrainian
+ \footnote{Some authors call this the Russian convention. The \option{russian}(ukrainian) key may also be used.}
& \keyword{\Tableau[ukrainian]{1234,567,89{10},{11}{12}}}
& \Tableau[ukrainian]{1234,567,89{10},{11}{12}}\\[10mm]
- Australian\footnotemark
+ Australian
+ \footnote{I have not seen a name for this convention in the literature. Calling this the \textit{Australian convention} seems apt.}
& \keyword{\Tableau[australian]{1234,567,89{10},{11}{12}}}
& \Tableau[australian]{1234,567,89{10},{11}{12}} \\[10mm]
\bottomrule
- \end{tabular}
+ \end{longtable}
\index{english@English}
\index{french@French}
\index{ukrainian@Ukrainian}
\index{australian@Australian}
- \footnotetext[1]{Some authors call this the Russian convention.}
- \footnotetext[2]{I have not seen a name for this convention in the literature. Calling this the
- \textit{Australian convention} seems apt.}
\end{center}
This table shows how the commands provided by \aTableau work: there
@@ -742,8 +769,8 @@
example, it is not possible to use named or polar coordinates.}
are optional, being necessary if (and only if), the diagram is part of
a~\keyword{tikzpicture} environment. See \autoref{SS:coordinates} and
- \autoref{SS:abcoordinates} for more detail about how these coordinates
- work for tableaux and abacuses, respectively.
+ \autoref{SS:abcoordinates} for more detail about how to use these coordinates
+ for tableaux and abacuses, respectively.
The key-value \emph{options}, or \emph{keys}, control the style and
appearance of the final diagram. The keys are optional and are
@@ -758,8 +785,8 @@
Many of the \aTableau options are specific to the particular diagrams
being drawn. The full list of the \aTableau commands and their options
is given in \autoref{S:keys}, with the following sections giving more
- details and many examples. The following options are common to all
- \aTableau commands.
+ details and many examples. The keys that are common to all
+ \aTableau commands are:
\begin{options}
\item[align]\index{align}
@@ -777,11 +804,14 @@
Set the prefix for the \TikZ \emph{named anchors} for the boxes and
beads in \aTableau diagrams.
- \item[scale, xscale,
- yscale]\index{scale}\index{xscale}\index{yscale}
+ \item[scale, xscale, yscale, script, scriptscript]
+ \index{scale}\index{xscale}\index{yscale}\index{script}\index{scriptscript}
Use \option{scale} to rescale all \aTableau diagrams. Use
\option{xscale} to rescale in the $x$-direction and \option{yscale}
- to rescale in the $y$-direction.
+ to rescale in the $y$-direction. The \option{script} and
+ \option{scriptscript} keys can be used to fine-tune the size of
+ \aTableau commands when used as subscripts (rare) and subsubscripts
+ (unlikely).
\item[styles]\index{styles}
A short-hand for defining single-use \TikZ-styles for the current
@@ -847,10 +877,19 @@
The first diagram shows that most of the right-hand diagram is drawn
by the~\keyword{\Diagram} command, even though most of the commands in
the example are \TikZ commands. In particular, the shading of the
- boxes in the \emph{$(1,2)$-hook} and \emph{$(1,2)$-rim hook} is done
- by the \option{ribbons} key. (In fact, the right-hand picture could be
- drawn without using a \keyword{tikzpicture} environment by using
- the \option{tikz after} key to add the \keyword{\draw}-commands.)
+ boxes in the \emph{$(1,2)$-hook}, and the \emph{$(1,2)$-rim hook}, is
+ done by the \option{ribbons} key. (In fact, the right-hand picture
+ could be drawn without using a \keyword{tikzpicture} environment by
+ using the \option{tikz after} key to add the three
+ \keyword{\draw}-commands.)
+
+ \begin{warning}
+ Unlike the \TikZ-commands, you should \emph{not} put a semicolon
+ after an \aTableau-command when it is used inside a
+ \keyword{tikzpicture} environment. If you accidentally add a
+ semicolon then, most of the time it will not cause any harm and
+ \TikZ will just give you a warning.
+ \end{warning}
The top of the last example defines two \TikZ-styles, \textsf{B} and
\text{G}, which add the \textsf{b}lue and \textsf{g}reen coloured
@@ -994,6 +1033,13 @@
command because all of the diagram and tableau commands, except for
\keyword{\RibbonTableau}, are derived from \keyword{\Tableau}.
+
+ \begin{warning}
+ The \aTableau package relies heavily on \ctan{LaTeX3}, so it
+ requires an update-to-date version of \LaTeX. You may need to update
+ your \LaTeX\ installation if it is older than \TeX Live 2024.
+ \end{warning}
+
% --------------------------------------------------------------
\section{Tableaux and Young diagrams}
@@ -1048,11 +1094,11 @@
where:
\begin{options}
- \item[$(x,y)$]\index{xy@$(x,y)$} The Cartesian coordinates $(x,y)$
+ \item[*$(x,y)$]\index{xy@$(x,y)$} The Cartesian coordinates $(x,y)$
are needed if, and only if, the tableau is a component of a
\keyword{tikzpicture} environment.
- \item[options] Optional arguments. Described, with examples, below.
- \item[tableau entries]\index{tableau entries} The
+ \item[*options] Optional arguments. Described, with examples, below.
+ \item[*tableau entries]\index{tableau entries} The
\keyword{tableau entries} are given as a comma-separated list, with commas
separating rows and each \textit{token}, or braced-group of
tokens, being in a separate column. As we explain below, each
@@ -1579,7 +1625,7 @@
\index{dashed}
\index{style!dashed}
- If you closely at the second tableau in \autoref{Ex:dashed}, you will
+ If you look closely at the second tableau in \autoref{Ex:dashed}, you will
notice that the dashes are not very clean. This is because, for
example, the dashes on bottom of one box do not properly match up with
the dashes on the top of the adjacent box below it. Rather than
@@ -1617,9 +1663,10 @@
\option[true]{math entries}[true/false]
\option*[false]{text entries}[true/false]
- Use the \option{math entries} and \option{text entries} to have the
- tableau entries typeset as either mathematics or text, respectively.
- By default, the entries of a tableau are typeset as mathematics.
+ Use the \option{math entries} and \option{text entries} keys to have
+ the tableau entries typeset as either mathematics or text,
+ respectively. By default, the entries of a tableau are typeset as
+ mathematics.
\begin{example}
\Tableau[math entries]{ABCD, efg, HI}\qquad% the default
@@ -1631,14 +1678,14 @@
By default, the boxes can be referenced using the node names
\textsf{(A-1-1)}, \textsf{(A-1-2)}, \textsf{(A-1-3)}, \dots, with
\textsf{(A-$r$-$c$)} referring to the box in row~$r$ and column~$c$.
- Use the \option{name} key to change the \emph{prefix} \textsf{A} to
+ Use \option{name} to change the \emph{prefix} \textsf{A} to
anything else that you like. This feature is most useful when you
have several tableaux inside a \keyword{tikzpicture} environment
because by using \option{name} you can refer to boxes in the different
diagrams. If you only have one tableau, then you would not normally
need to change the default prefix for the node names. See
- \autoref{E:NodeNames} for a description of the anchor names. For
- examples using node names and anchors see \autoref{Ex:ABnames},
+ \autoref{E:NodeNames} for a description of the extended anchor names.
+ For examples using node names and anchors see \autoref{Ex:ABnames},
\autoref{Ex:pointing} and \autoref{Ex:waves}.
\option[]{paths=path specifications}[list of paths]
@@ -1688,7 +1735,7 @@
]{1234,567,89{10}}
\end{example}
- Use the \option{path box style} to change the style of the boxes in
+ Use \option{path box style} to change the style of the boxes in
the path.
\begin{example}
@@ -1750,7 +1797,7 @@
ribbons={22rc}]{123,45,67}
\end{example}
- Use the \option{ribbon box style} key to change the default style of the
+ Use \option{ribbon box style} to change the default style of the
boxes in a ribbon. For example, noting that a box is a ribbon of
length~$1$, the following code uses ribbons of length one (that is,
nodes), to highlight the addable nodes of this tableau.
@@ -1841,6 +1888,22 @@
width} options.
\end{warning}
+ \option[0.5]{script=value}[decimal number]
+ \option*[0.4]{scriptscript=value}[decimal number]
+
+ Although rare, tableaux and diagrams are sometimes used as subscripts
+ and superscripts. The pacakage automatically rescales tableau when
+ they are used as subscripts and superscripts, with the \option{script}
+ and \option{scriptscript} keys giving finer control over the scaling
+ of subscripts and subsubscripts, respectively. The current values of
+ the \option{scale}, \option{xscale} and \option{yscale} keys are taken
+ into account.
+
+ \begin{example}
+ $v_{\Tableau{123,45}}$ \qquad% the default
+ $v_{\Tableau[script=0.3, xscale=2]{123,45}}$
+ \end{example}
+
\option[false]{shifted}[true/false]
Set to \textsf{true} for a shifted tableau or shifted diagram. Shifted
@@ -1856,7 +1919,7 @@
See \autoref{S:Shifted} for the options specific to shifted tableaux and
shifted diagrams.
- \option[(0)]{skew=partition}[a partition]
+ \option[0]{skew=partition}[a partition]
Specify the skew shape for a skew tableau or skew diagram. Skew
tableaux, and skew diagrams, are discussed in more detail in
@@ -1872,7 +1935,7 @@
\option[fill=\aTableauColour{StarStyle}]{star style=style}[\TikZ-styling]
- Use the \option{star style} to add to the style of the starred entries
+ Use \option{star style} to change the style of the starred entries
of a tableau. (In \TikZ parlance, \option{star style} \emph{appends}
appends these styles to the default \option{star style}.)
@@ -1960,7 +2023,7 @@
\option{tikzpicture} option is ignored when the \keyword{\Tableau}
command is equipped with $(x,y)$-coordinates.
- As a first example, we use \keyword{tikzpicture={rotate=30}}
+ As a first example, we can use \keyword{tikzpicture={rotate=30}}
to rotate a tableau by 90 degrees:
\begin{example}
@@ -1983,9 +2046,8 @@
\Tableau[tikzpicture={transform canvas={rotate=90}}]{123,45}
\end{example}
- A more interesting example is that by using
- \option{tikzpicture=remember picture} we can add annotations to
- a tableau. For example, consider:
+ A more interesting application is using
+ \option{tikzpicture=remember picture} to annotate a tableau:
\begin{example}[lefthand width=0.3\textwidth, label={Ex:pointing}]
\Tableau[ukrainian, name=A,
@@ -2001,7 +2063,7 @@
\textsf{(A-1-1)}, \textsf{(A-1-2)}, \textsf{(A-1-3)}, \dots. As the
example uses \textit{remember picture}, other \keyword{tikzpicture}
environments can reference the node names in last tableau, which
- allows us to do things like this:
+ allows us to refer back to the table above using:
\vspace*{3mm}
@@ -2013,6 +2075,8 @@
to [out=135, in=225](A-3-1);
\end{example}
+ (See the \ctan{tikzmark} package for extensions of this idea.)
+
% --------------------------------------------------------------
\subsubsection{Compositions}
\index{composition}
@@ -2074,7 +2138,7 @@
\index{tableau!*}
\index{tableau![}
- The characters \textsf{[]}, \textsf{,}, and \textsf{*} have
+ The characters \textsf{[}, \textsf{,}, and \textsf{*} have
special meanings in the \textit{tableau specifications}. Enclose these characters in
braces when you want to use these characters as entries in a tableau:
@@ -2083,7 +2147,7 @@
\end{example}
There is no need to enclose~\keyword{]} in braces because it only
- becomes special when it is preceded by~\keyword{[}.
+ becomes special when it has a partner~\keyword{[}.
% --------------------------------------------------------------
\subsection{Young diagrams}
@@ -2101,10 +2165,10 @@
\Tableau{~~~,~~~,~~,~}
\end{example}
- This approach works, but it is cumbersome, hard to proofread, and easy to miscount.
- For this reason, \aTableau provides the \keyword{\Diagram} command. The
- \keyword{\Diagram} command uses almost the same syntax as the
- \keyword{\Tableau} command:
+ This approach works, but it is cumbersome, hard to proofread, and easy
+ to get wrong. For this reason, \aTableau provides the
+ \keyword{\Diagram} command. The \keyword{\Diagram} command uses
+ almost the same syntax as the \keyword{\Tableau} command:
\keyword{\Diagram (x,y) [options] {partition}}
@@ -2430,7 +2494,7 @@
\end{example}
\end{itemize}
- Use the \option{charge} key to add offsets to the \option{contents} and \option{residues}.
+ Use \option{charge} to add offsets to the \option{contents} and \option{residues}.
\begin{example}
\Diagram[entries=contents, charge=2]{3,2,1} \qquad
@@ -2896,11 +2960,11 @@
\option[draw=\aTableauColour{Inner}, thin]{ribbon style=style}{\TikZ-styling}
\option*[]{ribbon box style=style}{\TikZ-styling}
- Use the \option{ribbon style} and \option{ribbon box} options to
- append to the default styling of the ribbons and the boxes in the
- ribbons, respectively. By default, the full ribbons has an inner wall,
- but the boxes in ribbons have no styling. If you want inner walls,
- then they can be added using the \option{ribbon box} key.
+ Use the \option{ribbon style} and \option{ribbon box} keys to
+ append to the default styling of the ribbons, and the boxes in the
+ ribbons, respectively. By default, the full ribbon has inner wall
+ styling, but the boxes in ribbons have no styling. If you want inner
+ walls, then they can be added using the \option{ribbon box} key.
\begin{example}
\RibbonTableau[ribbon style={draw=red, thick,
@@ -3079,6 +3143,11 @@
\Multidiagram[empty=$\emptyset$]{ 3,2 | | 2^2 }
\end{example}
+ \begin{warning}
+ By default, the \option{empty} key is typeset as text and \emph{not}
+ as mathematics, which is the default for the tableau boxes.
+ \end{warning}
+
\option[]{entries=value}[contents, first, hooks, last, residues]<multitableau>
\option*[]{charge=offsets}[$|$-separated list of charges]<multitableau>
@@ -3100,8 +3169,8 @@
The \option{entries} key automatically fills in particular types of
entries for you to draw the requested tableau of the specified shape.
Use \option{charge} to provide offsets in each component when using
- \option{entries=contents} and \option{entries=residues} (and no charge
- should be set when using \option{entries=first} and
+ \option{entries=contents} and \option{entries=residues} {(}the
+ \option{charge} is ignored when using \option{entries=first} and
\option{entries=last}).
\nopagebreak[0]
@@ -3170,7 +3239,7 @@
\option[]{label=labels}[a $|$-separated list of labels]
- Use the \option{label} key to add labels to the component diagrams.
+ Use \option{label} to add labels to the component diagrams.
\begin{example}
\Multitableau[label={1|2}]{123,45,67|{12}{14}}
@@ -3339,7 +3408,7 @@
The \keyword{\Multitableau} and \keyword{\Multidiagram} commands try
to draw the diagrams as compactly as possible with their first rows
aligned, and the distance between the separators given by the value of
- \option{separation}. Use the \option{xoffsets} to offset the
+ \option{separation}. Use \option{xoffsets} to offset the
$x$-coordinates of the component diagrams and \option{yoffsets} to
offset their $y$-coordinates.
@@ -3547,12 +3616,12 @@
\begin{quote}
\begin{options}[labelwidth=1em, nosep]
- \item[$-$] Adds a line that extends slightly past the first and last runners
- \item[\_\!\_] Adds a line between the first and last runners
- \item[.] Add dots to the end of each runner
- \item[*] Add dots and an arrow to the end of each runner
- \item[$|$] The runners do not have any additional decoration
- \item[$>$] Add arrows to the end of each runner
+ \item[*$-$] Adds a line that extends slightly past the first and last runners
+ \item[*\_\!\_] Adds a line between the first and last runners
+ \item[*.] Add dots to the end of each runner
+ \item[**] Add dots and an arrow to the end of each runner
+ \item[*$|$] The runners do not have any additional decoration
+ \item[*$>$] Add arrows to the end of each runner
\end{options}
\end{quote}
@@ -3858,8 +3927,8 @@
\option[]{rows=row index}[non-negative integer]<abacus>
By default, the \keyword{\Abacus} command uses the smallest number of
- rows necessary to display all of the beads on the abacus. Use the
- \option{rows}<abacus> key to change the number of rows displayed. If you use
+ rows necessary to display all of the beads on the abacus. Use
+ \option{rows}<abacus> to change the number of rows displayed. If you use
the \option{rows}<abacus> key, then it is your responsibility to ensure that
the abacus has enough rows to display all of the beads.
@@ -4151,6 +4220,8 @@
\option{runner sep} & Set distance between consecutive abacus runners & \No & \Yes \\
\option{runner style} & Set the colour of the abacus runners & \No & \Yes \\
\option{scale} & Sets the \aTableau scale & \Yes & \Yes[abacus] \\
+ \option{script} & Sets the \aTableau scale for subscripts & \Yes & \Yes(scale-abacus) \\
+ \option{scriptscript} & Sets the \aTableau scale for subsubscripts & \Yes & \Yes(scale-abacus) \\
\option{separation} & Set distance between components in multitableau & \Yes & \No \\
\option{separator colour} & Set separator colour for multitableau & \Yes & \No \\
\option{separator} & Set separator colour in multitableau & \Yes & \No \\
@@ -4180,9 +4251,9 @@
\option{valign} & Set vertical alignment & \Yes & \Yes[abacus] \\
\option{west} & Make abacus grow in the westerly direction & \Yes & \No \\
\option{xoffsets} & Set $x$-offsets for components in a multitableau & \Yes & \No \\
- \option{xscale} & Set \aTableau $x$-scale & \Yes & \Yes[abacus] \\
+ \option{xscale} & Set \aTableau $x$-scale & \Yes & \Yes(scale-abacus) \\
\option{yoffsets} & Set $y$-offsets for components in a multitableau & \Yes & \No \\
- \option{yscale} & Set \aTableau $y$-scale & \Yes & \Yes[abacus] \\
+ \option{yscale} & Set \aTableau $y$-scale & \Yes & \Yes(scale-abacus) \\
\bottomrule
\end{xltabular}
@@ -4288,6 +4359,17 @@
your problem, then it is unlikely that I will be able to fix it.
+ % --------------------------------------------------------------
+ \subsection*{Acknowledgements}
+
+ Several features in the package have benefited from discussions on
+ \url{tex.stackexchange}. In particular, I thank
+ Max Chernoff,
+ Lars Madsen,
+ Clea F. Rees,
+ and
+ Jonathan P. Spratte.
+
% ----------------------------------------------------------------------
% bibliography
% \bibliography{papers}
diff --git a/graphics/pgf/contrib/pmdraw/README.md b/graphics/pgf/contrib/pmdraw/README.md
index 24bdba4e67..3b36033940 100644
--- a/graphics/pgf/contrib/pmdraw/README.md
+++ b/graphics/pgf/contrib/pmdraw/README.md
@@ -1,12 +1,12 @@
pmdraw
======
-*README V1.5 2024-10-07*
+*README V1.6 2025-01-24*
<!--
*------------------------------*
-|4````````````````````````````1|
+|1````````````````````````````7|
|`````____````____`````````````|
|````|MFMF\ /MFMF|````````````|
|````|MF|MF\/MF|MF|````````````|
@@ -18,7 +18,7 @@ pmdraw
|``````````````|MF|````````````|
|``````````````|MF|````````````|
|``````````````|MF|````````````|
-|5````````````````````````````7|
+|1````````````````````````````8|
*------------------------------*
-->
diff --git a/graphics/pgf/contrib/pmdraw/pmdraw.pdf b/graphics/pgf/contrib/pmdraw/pmdraw.pdf
index 20a7cdf339..0901f7fb48 100644
--- a/graphics/pgf/contrib/pmdraw/pmdraw.pdf
+++ b/graphics/pgf/contrib/pmdraw/pmdraw.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/pmdraw/pmdraw.sty b/graphics/pgf/contrib/pmdraw/pmdraw.sty
index 9819f84893..2b2e5634d2 100644
--- a/graphics/pgf/contrib/pmdraw/pmdraw.sty
+++ b/graphics/pgf/contrib/pmdraw/pmdraw.sty
@@ -1,8 +1,8 @@
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{pmdraw}[2024-10-07 v1.5 pmdraw]
+\ProvidesPackage{pmdraw}[2025-01-24 v1.6 pmdraw]
% *------------------------------*
-% |9````````````````````````````5|
+% |1````````````````````````````1|
% |`````____````____`````````````|
% |````|MFMF\ /MFMF|````````````|
% |````|MF|MF\/MF|MF|````````````|
@@ -14,7 +14,7 @@
% |``````````````|MF|````````````|
% |``````````````|MF|````````````|
% |``````````````|MF|````````````|
-% |3````````````````````````````1|
+% |6````````````````````````````1|
% *------------------------------*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -24,7 +24,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \RequirePackage{datetime}
-\RequirePackage{keyval}
+\RequirePackage{xkeyval}
\RequirePackage{tikz}
\usetikzlibrary{math,decorations.pathreplacing,calligraphy,backgrounds}
@@ -199,9 +199,10 @@
\let\pmdraw@drawUedgesDraw\pmdraw@drawUedgesDrawDefault% Draws upper non-transversal edge from #1 vertex to #2 vertex, assumes #1<#2
\newcommand{\pmdraw@drawVertexOptions}{}% Draw options for vertices
-\newcommand{\pmdraw@drawVertex}[2]{% Draws a vertex at (#1,#2)
+\newcommand{\pmdraw@drawVertexDefault}[2]{% Draws a vertex at (#1,#2) - Default
\fill[apply style/.expand once=\pmdraw@drawVertexOptions] (#1,#2) circle (.17);%
}
+\let\pmdraw@drawVertex\pmdraw@drawVertexDefault% Draws a vertex at (#1,#2)
\newcommand{\pmdraw@edgeUncover}{1-}% Sets the uncover options of edge
\newcommand{\pmdraw@edgesAddedUncover}{1-}% Sets the uncover options of added edges
@@ -315,175 +316,453 @@
\setcounter{pmdraw@degreeB}{#1}% Sets degree (number of vertices per row) for bottom row
\setcounter{pmdraw@degreeT}{#1}% Sets degree (number of vertices per row) for top row
}
+\define@key{pmdraw@brickDefault}{degree}{% Sets default degree (number of vertices per row) of diagram
+ \setkeys{pmdraw@brick}{%
+ \savevalue{degree bottom}=#1%
+ }%
+ \setkeys{pmdraw@brick}{%
+ \savevalue{degree top}=#1%
+ }%
+}
\define@key{pmdraw@brick}{degree bottom}{% Sets degree (number of vertices per row) for bottom row
\setcounter{pmdraw@degreeB}{#1}%
}
+\define@key{pmdraw@brickDefault}{degree bottom}{% Sets default degree (number of vertices per row) for bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{degree bottom}=#1%
+ }%
+}
\define@key{pmdraw@brick}{degree top}{% Sets degree (number of vertices per row) for top row
\setcounter{pmdraw@degreeT}{#1}%
}
+\define@key{pmdraw@brickDefault}{degree top}{% Sets default degree (number of vertices per row) for top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{degree top}=#1%
+ }%
+}
\define@key{pmdraw@brick}{blank bottom}{% Sets the number of blank vertices on left of bottom row
\setcounter{pmdraw@blankB}{#1}%
}
+\define@key{pmdraw@brickDefault}{blank bottom}{% Sets the default number of blank vertices on left of bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{blank bottom}=#1%
+ }%
+}
\define@key{pmdraw@brick}{blank top}{% Sets the number of blank vertices on left of top row
\setcounter{pmdraw@blankT}{#1}%
}
+\define@key{pmdraw@brickDefault}{blank top}{% Sets the default number of blank vertices on left of top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{blank top}=#1%
+ }%
+}
\define@key{pmdraw@brick}{row sep}{% Sets vertical separation between rows of vertices in brick
\renewcommand{\pmdraw@rowSep}{#1}%
}
+\define@key{pmdraw@brickDefault}{row sep}{% Sets default vertical separation between rows of vertices in brick
+ \setkeys{pmdraw@brick}{%
+ \savevalue{row sep}=#1%
+ }%
+}
\define@key{pmdraw@brick}{vertices}{% Sets the draw options of vertices
\renewcommand{\pmdraw@drawVertexOptions}{#1}%
}
+\define@key{pmdraw@brickDefault}{vertices}{% Sets the default draw options of vertices
+ \setkeys{pmdraw@brick}{%
+ \savevalue{vertices}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex bottom 1}{% Sets 1st vertex to skip in bottom row
\renewcommand{\pmdraw@drawNoVertexBa}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex bottom 1}{% Sets default 1st vertex to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex bottom 1}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex bottom 2}{% Sets 2nd vertex to skip in bottom row
\renewcommand{\pmdraw@drawNoVertexBb}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex bottom 2}{% Sets default 2nd vertex to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex bottom 2}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex bottom 3}{% Sets 3rd vertex to skip in bottom row
\renewcommand{\pmdraw@drawNoVertexBc}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex bottom 3}{% Sets default 3rd vertex to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex bottom 3}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex bottom 4}{% Sets 4th vertex to skip in bottom row
\renewcommand{\pmdraw@drawNoVertexBd}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex bottom 4}{% Sets default 4th vertex to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex bottom 4}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex bottom 5}{% Sets 5th vertex to skip in bottom row
\renewcommand{\pmdraw@drawNoVertexBe}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex bottom 5}{% Sets default 5th vertex to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex bottom 5}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex bottom 6}{% Sets 6th vertex to skip in bottom row
\renewcommand{\pmdraw@drawNoVertexBf}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex bottom 6}{% Sets default 6th vertex to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex bottom 6}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex bottom 7}{% Sets 7th vertex to skip in bottom row
\renewcommand{\pmdraw@drawNoVertexBg}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex bottom 7}{% Sets default 7th vertex to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex bottom 7}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex bottom 8}{% Sets 8th vertex to skip in bottom row
\renewcommand{\pmdraw@drawNoVertexBh}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex bottom 8}{% Sets default 8th vertex to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex bottom 8}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex bottom 9}{% Sets 9th vertex to skip in bottom row
\renewcommand{\pmdraw@drawNoVertexBi}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex bottom 9}{% Sets default 9th vertex to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex bottom 9}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex top 1}{% Sets 1st vertex to skip in top row
\renewcommand{\pmdraw@drawNoVertexTa}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex top 1}{% Sets default 1st vertex to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex top 1}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex top 2}{% Sets 2nd vertex to skip in top row
\renewcommand{\pmdraw@drawNoVertexTb}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex top 2}{% Sets default 2nd vertex to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex top 2}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex top 3}{% Sets 3rd vertex to skip in top row
\renewcommand{\pmdraw@drawNoVertexTc}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex top 3}{% Sets default 3rd vertex to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex top 3}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex top 4}{% Sets 4th vertex to skip in top row
\renewcommand{\pmdraw@drawNoVertexTd}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex top 4}{% Sets default 4th vertex to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex top 4}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex top 5}{% Sets 5th vertex to skip in top row
\renewcommand{\pmdraw@drawNoVertexTe}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex top 5}{% Sets default 5th vertex to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex top 5}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex top 6}{% Sets 6th vertex to skip in top row
\renewcommand{\pmdraw@drawNoVertexTf}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex top 6}{% Sets default 6th vertex to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex top 6}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex top 7}{% Sets 7th vertex to skip in top row
\renewcommand{\pmdraw@drawNoVertexTg}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex top 7}{% Sets default 7th vertex to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex top 7}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex top 8}{% Sets 8th vertex to skip in top row
\renewcommand{\pmdraw@drawNoVertexTh}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex top 8}{% Sets default 8th vertex to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex top 8}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no vertex top 9}{% Sets 9th vertex to skip in top row
\renewcommand{\pmdraw@drawNoVertexTi}{#1}%
}
+\define@key{pmdraw@brickDefault}{no vertex top 9}{% Sets default 9th vertex to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no vertex top 9}=#1%
+ }%
+}
\define@key{pmdraw@brick}{vertices options}{% Sets the draw command of vertices
\renewcommand{\pmdraw@drawVertex}[2]{#1}%
}
-\define@key{pmdraw@brick}{labels}[]{% Draws labels for vertices
- \renewcommand{\pmdraw@ifLabelsB}{1}%
- \renewcommand{\pmdraw@ifLabelsT}{1}%
+\define@key{pmdraw@brick}{labels}[1]{% Draws labels for vertices
+ \renewcommand{\pmdraw@ifLabelsB}{#1}%
+ \renewcommand{\pmdraw@ifLabelsT}{#1}%
+}
+\define@key{pmdraw@brickDefault}{labels}[1]{% Sets the default drawing labels for vertices
+ \setkeys{pmdraw@brick}{%
+ \savevalue{labels}=#1%
+ }%
}
-\define@key{pmdraw@brick}{labels bottom}[]{% Draws labels for bottom vertices
- \renewcommand{\pmdraw@ifLabelsB}{1}%
+\define@key{pmdraw@brick}{labels bottom}[1]{% Draws labels for bottom vertices
+ \renewcommand{\pmdraw@ifLabelsB}{#1}%
}
-\define@key{pmdraw@brick}{labels top}[]{% Draws labels for top vertices
- \renewcommand{\pmdraw@ifLabelsT}{1}%
+\define@key{pmdraw@brickDefault}{labels bottom}[1]{% Sets the default drawing labels for bottom vertices
+ \setkeys{pmdraw@brick}{%
+ \savevalue{labels bottom}=#1%
+ }%
+}
+\define@key{pmdraw@brick}{labels top}[1]{% Draws labels for top vertices
+ \renewcommand{\pmdraw@ifLabelsT}{#1}%
+}
+\define@key{pmdraw@brickDefault}{labels top}[1]{% Sets the default drawing labels for top vertices
+ \setkeys{pmdraw@brick}{%
+ \savevalue{labels top}=#1%
+ }%
}
\define@key{pmdraw@brick}{labels start}{% Sets starting number for vertex labels
\setcounter{pmdraw@labelStartT}{#1}%
\setcounter{pmdraw@labelStartB}{#1}%
}
+\define@key{pmdraw@brickDefault}{labels start}{% Sets the default starting number for vertex labels
+ \setkeys{pmdraw@brick}{%
+ \savevalue{labels start}=#1%
+ }%
+}
\define@key{pmdraw@brick}{labels bottom start}{% Sets starting number for bottom vertex labels
\setcounter{pmdraw@labelStartB}{#1}%
}
+\define@key{pmdraw@brickDefault}{labels bottom start}{% Sets the default starting number for bottom vertex labels
+ \setkeys{pmdraw@brick}{%
+ \savevalue{labels bottom start}=#1%
+ }%
+}
\define@key{pmdraw@brick}{labels top start}{% Sets starting number for top vertex labels
\setcounter{pmdraw@labelStartT}{#1}%
}
+\define@key{pmdraw@brickDefault}{labels top start}{% Sets the default starting number for top vertex labels
+ \setkeys{pmdraw@brick}{%
+ \savevalue{labels top start}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label bottom 1}{% Sets 1st label to skip in bottom row
\renewcommand{\pmdraw@drawNoLabelBa}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label bottom 1}{% Sets the default 1st label to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label bottom 1}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label bottom 2}{% Sets 2nd label to skip in bottom row
\renewcommand{\pmdraw@drawNoLabelBb}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label bottom 2}{% Sets the default 2nd label to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label bottom 2}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label bottom 3}{% Sets 3rd label to skip in bottom row
\renewcommand{\pmdraw@drawNoLabelBc}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label bottom 3}{% Sets the default 3rd label to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label bottom 3}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label bottom 4}{% Sets 4th label to skip in bottom row
\renewcommand{\pmdraw@drawNoLabelBd}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label bottom 4}{% Sets the default 4th label to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label bottom 4}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label bottom 5}{% Sets 5th label to skip in bottom row
\renewcommand{\pmdraw@drawNoLabelBe}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label bottom 5}{% Sets the default 5th label to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label bottom 5}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label bottom 6}{% Sets 6th label to skip in bottom row
\renewcommand{\pmdraw@drawNoLabelBf}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label bottom 6}{% Sets the default 6th label to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label bottom 6}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label bottom 7}{% Sets 7th label to skip in bottom row
\renewcommand{\pmdraw@drawNoLabelBg}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label bottom 7}{% Sets the default 7th label to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label bottom 7}=#1%
+ }%
+}
+\define@key{pmdraw@brickDefault}{no label bottom 8}{% Sets the default 8th label to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label bottom 8}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label bottom 8}{% Sets 8th label to skip in bottom row
\renewcommand{\pmdraw@drawNoLabelBh}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label bottom 8}{% Sets the default 8th label to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label bottom 8}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label bottom 9}{% Sets 9th label to skip in bottom row
\renewcommand{\pmdraw@drawNoLabelBi}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label bottom 9}{% Sets the default 9th label to skip in bottom row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label bottom 9}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label top 1}{% Sets 1st label to skip in top row
\renewcommand{\pmdraw@drawNoLabelTa}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label top 1}{% Sets the default 1st label to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label top 1}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label top 2}{% Sets 2nd label to skip in top row
\renewcommand{\pmdraw@drawNoLabelTb}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label top 2}{% Sets the default 2nd label to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label top 2}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label top 3}{% Sets 3rd label to skip in top row
\renewcommand{\pmdraw@drawNoLabelTc}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label top 3}{% Sets the default 3rd label to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label top 3}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label top 4}{% Sets 4th label to skip in top row
\renewcommand{\pmdraw@drawNoLabelTd}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label top 4}{% Sets the default 4th label to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label top 4}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label top 5}{% Sets 5th label to skip in top row
\renewcommand{\pmdraw@drawNoLabelTe}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label top 5}{% Sets the default 5th label to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label top 5}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label top 6}{% Sets 6th label to skip in top row
\renewcommand{\pmdraw@drawNoLabelTf}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label top 6}{% Sets the default 6th label to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label top 6}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label top 7}{% Sets 7th label to skip in top row
\renewcommand{\pmdraw@drawNoLabelTg}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label top 7}{% Sets the default 7th label to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label top 7}=#1%
+ }%
+}
+\define@key{pmdraw@brickDefault}{no label top 8}{% Sets the default 8th label to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label top 8}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label top 8}{% Sets 8th label to skip in top row
\renewcommand{\pmdraw@drawNoLabelTh}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label top 8}{% Sets the default 8th label to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label top 8}=#1%
+ }%
+}
\define@key{pmdraw@brick}{no label top 9}{% Sets 9th label to skip in top row
\renewcommand{\pmdraw@drawNoLabelTi}{#1}%
}
+\define@key{pmdraw@brickDefault}{no label top 9}{% Sets the default 9th label to skip in top row
+ \setkeys{pmdraw@brick}{%
+ \savevalue{no label top 9}=#1%
+ }%
+}
\define@key{pmdraw@brick}{labels bottom draw}{% Sets the draw options for labels of bottom vertices
\renewcommand{\pmdraw@drawLabelBDrawOptions}{#1}%
}
+\define@key{pmdraw@brickDefault}{labels bottom draw}{% Sets the default draw options for labels of bottom vertices
+ \setkeys{pmdraw@brick}{%
+ \savevalue{labels bottom draw}=#1%
+ }%
+}
\define@key{pmdraw@brick}{labels bottom node}{% Sets the node options for labels of bottom vertices
\renewcommand{\pmdraw@drawLabelBNodeOptions}{#1}%
}
+\define@key{pmdraw@brickDefault}{labels bottom node}{% Sets the default node options for labels of bottom vertices
+ \setkeys{pmdraw@brick}{%
+ \savevalue{labels bottom node}=#1%
+ }%
+}
\define@key{pmdraw@brick}{labels top draw}{% Sets the draw options for labels of top vertices
\renewcommand{\pmdraw@drawLabelTDrawOptions}{#1}%
}
+\define@key{pmdraw@brickDefault}{labels top draw}{% Sets the default draw options for labels of top vertices
+ \setkeys{pmdraw@brick}{%
+ \savevalue{labels top draw}=#1%
+ }%
+}
\define@key{pmdraw@brick}{labels top node}{% Sets the node options for labels of top vertices
\renewcommand{\pmdraw@drawLabelTNodeOptions}{#1}%
}
+\define@key{pmdraw@brickDefault}{labels top node}{% Sets the default node options for labels of top vertices
+ \setkeys{pmdraw@brick}{%
+ \savevalue{labels top node}=#1%
+ }%
+}
\define@key{pmdraw@brick}{labels bottom options}{% Sets the draw command of labels of bottom vertices
\renewcommand{\pmdraw@drawLabelBottom}[3]{#1}%
@@ -492,30 +771,60 @@
\renewcommand{\pmdraw@drawLabelTop}[3]{#1}%
}
-\define@key{pmdraw@brick}{no dots}[]{% Does not draw dots in bricks
- \setcounter{pmdraw@ifDiagWDotsFirst}{1}%
+\define@key{pmdraw@brick}{no dots}[1]{% Does not draw dots in bricks
+ \setcounter{pmdraw@ifDiagWDotsFirst}{#1}%
}
\define@key{pmdraw@brick}{dots draw}{% Sets the draw options for drawing of dots
\renewcommand{\pmdraw@drawDotsDrawOptions}{#1}%
}
+\define@key{pmdraw@brickDefault}{dots draw}{% Sets the default draw options for drawing of dots
+ \setkeys{pmdraw@brick}{%
+ \savevalue{dots draw}=#1%
+ }%
+}
\define@key{pmdraw@brick}{dots node}{% Sets the node options for drawing of dots
\renewcommand{\pmdraw@drawDotsNodeOptions}{#1}%
}
+\define@key{pmdraw@brickDefault}{dots node}{% Sets the default node options for drawing of dots
+ \setkeys{pmdraw@brick}{%
+ \savevalue{dots node}=#1%
+ }%
+}
-\define@key{pmdraw@brick}{vertices bottom phantom}[]{% Does not draw bottom vertices
- \setcounter{pmdraw@ifVerticesBottom}{1}%
+\define@key{pmdraw@brick}{vertices bottom phantom}[1]{% Does not draw bottom vertices
+ \setcounter{pmdraw@ifVerticesBottom}{#1}%
+}
+\define@key{pmdraw@brickDefault}{vertices bottom phantom}{% Sets the default to not draw bottom vertices
+ \setkeys{pmdraw@brick}{%
+ \savevalue{vertices bottom phantom}=#1%
+ }%
}
-\define@key{pmdraw@brick}{vertices top phantom}[]{% Does not draw top vertices
- \setcounter{pmdraw@ifVerticesTop}{1}%
+\define@key{pmdraw@brick}{vertices top phantom}[1]{% Does not draw top vertices
+ \setcounter{pmdraw@ifVerticesTop}{#1}%
+}
+\define@key{pmdraw@brickDefault}{vertices top phantom}{% Sets the default to not draw top vertices
+ \setkeys{pmdraw@brick}{%
+ \savevalue{vertices top phantom}=#1%
+ }%
}
\define@key{pmdraw@brick}{vertices bottom uncover}{% Sets the uncover options of bottom vertices
\renewcommand{\pmdraw@verticesBottomUncover}{#1}%
}
+\define@key{pmdraw@brickDefault}{vertices bottom uncover}{% Sets the default uncover options of bottom vertices
+ \setkeys{pmdraw@brick}{%
+ \savevalue{vertices bottom uncover}=#1%
+ }%
+}
\define@key{pmdraw@brick}{vertices top uncover}{% Sets the uncover options of top vertices
\renewcommand{\pmdraw@verticesTopUncover}{#1}%
}
+\define@key{pmdraw@brickDefault}{vertices top uncover}{% Sets the default uncover options of top vertices
+ \setkeys{pmdraw@brick}{%
+ \savevalue{vertices top uncover}=#1%
+ }%
+}
\define@key{pmdraw@brick}{levels}[1]{% Sets number of horizontal levels for non-transversal edges and evenly spaces them
\tikzmath{%
@@ -523,16 +832,31 @@
\pmdraw{edgeSepL} = \pmdraw{edgeSepU};% Calculates vertical separation between each edge
}%
}
+\define@key{pmdraw@brickDefault}{levels}{% Sets the default number of horizontal levels for non-transversal edges and evenly spaces them
+ \setkeys{pmdraw@brick}{%
+ \savevalue{levels}=#1%
+ }%
+}
\define@key{pmdraw@brick}{levels bottom}{% Sets number of horizontal levels for lower non-transversal edges and evenly spaces them
\tikzmath{%
\pmdraw{edgeSepL} = (0.5*\pmdraw@rowSep)/(#1 + 1);% Calculates vertical separation between each edge
}%
}
+\define@key{pmdraw@brickDefault}{levels bottom}{% Sets the default number of horizontal levels for lower non-transversal edges and evenly spaces them
+ \setkeys{pmdraw@brick}{%
+ \savevalue{levels bottom}=#1%
+ }%
+}
\define@key{pmdraw@brick}{levels top}{% Sets number of horizontal levels for upper non-transversal edges and evenly spaces them
\tikzmath{%
\pmdraw{edgeSepU} = (0.5*\pmdraw@rowSep)/(#1 + 1);% Calculates vertical separation between each edge
}%
}
+\define@key{pmdraw@brickDefault}{levels top}{% Sets the default number of horizontal levels for upper non-transversal edges and evenly spaces them
+ \setkeys{pmdraw@brick}{%
+ \savevalue{levels top}=#1%
+ }%
+}
\define@key{pmdraw@brick}{levels sep}{% Sets vertical separation of horizontal levels for non-transversal edges
\tikzmath{%
@@ -540,70 +864,160 @@
\pmdraw{edgeSepL} = \pmdraw{edgeSepU};%
}%
}
+\define@key{pmdraw@brickDefault}{levels sep}{% Sets the default vertical separation of horizontal levels for non-transversal edges
+ \setkeys{pmdraw@brick}{%
+ \savevalue{levels sep}=#1%
+ }%
+}
\define@key{pmdraw@brick}{levels sep bottom}{% Sets vertical separation of lower horizontal levels for non-transversal edges
\tikzmath{%
\pmdraw{edgeSepL} = #1;%
}%
}
+\define@key{pmdraw@brickDefault}{levels sep bottom}{% Sets the default vertical separation of lower horizontal levels for non-transversal edges
+ \setkeys{pmdraw@brick}{%
+ \savevalue{levels sep bottom}=#1%
+ }%
+}
\define@key{pmdraw@brick}{levels sep top}{% Sets vertical separation of upper horizontal levels for non-transversal edges
\tikzmath{%
\pmdraw{edgeSepU} = #1;%
}%
}
+\define@key{pmdraw@brickDefault}{levels sep top}{% Sets the default vertical separation of upper horizontal levels for non-transversal edges
+ \setkeys{pmdraw@brick}{%
+ \savevalue{levels sep top}=#1%
+ }%
+}
\define@key{pmdraw@brick}{edges}{% Sets the draw options of all edges
\renewcommand{\pmdraw@drawUedgesDrawOptions}{#1}%
\renewcommand{\pmdraw@drawLedgesDrawOptions}{#1}%
\renewcommand{\pmdraw@drawTedgesDrawOptions}{#1}%
}
+\define@key{pmdraw@brickDefault}{edges}{% Sets the default draw options of all edges
+ \setkeys{pmdraw@brick}{%
+ \savevalue{edges}=#1%
+ }%
+}
\define@key{pmdraw@brick}{edges non-transversal}{% Sets the draw options of non-transversal edges
\renewcommand{\pmdraw@drawUedgesDrawOptions}{#1}%
\renewcommand{\pmdraw@drawLedgesDrawOptions}{#1}%
}
+\define@key{pmdraw@brickDefault}{edges non-transversal}{% Sets the default draw options of non-transversal edges
+ \setkeys{pmdraw@brick}{%
+ \savevalue{edges non-transversal}=#1%
+ }%
+}
\define@key{pmdraw@brick}{edges upper}{% Sets the draw options of upper non-transversal edges
\renewcommand{\pmdraw@drawUedgesDrawOptions}{#1}%
}
+\define@key{pmdraw@brickDefault}{edges upper}{% Sets the default draw options of upper non-transversal edges
+ \setkeys{pmdraw@brick}{%
+ \savevalue{edges upper}=#1%
+ }%
+}
\define@key{pmdraw@brick}{edges lower}{% Sets the draw options of lower non-transversal edges
\renewcommand{\pmdraw@drawLedgesDrawOptions}{#1}%
}
+\define@key{pmdraw@brickDefault}{edges lower}{% Sets the default draw options of lower non-transversal edges
+ \setkeys{pmdraw@brick}{%
+ \savevalue{edges lower}=#1%
+ }%
+}
\define@key{pmdraw@brick}{edges transversal}{% Sets the draw options of transversal edges
\renewcommand{\pmdraw@drawTedgesDrawOptions}{#1}%
}
+\define@key{pmdraw@brickDefault}{edges transversal}{% Sets the default draw options of transversal edges
+ \setkeys{pmdraw@brick}{%
+ \savevalue{edges transversal}=#1%
+ }%
+}
-\define@key{pmdraw@brick}{edges first}[]{% Draws edges before vertices
- \renewcommand{\pmdraw@ifEdgesFirst}{1}%
+\define@key{pmdraw@brick}{edges first}[1]{% Draws edges before vertices
+ \renewcommand{\pmdraw@ifEdgesFirst}{#1}%
}
-\define@key{pmdraw@brick}{transversals first}[]{% Draws transversal edges before non-transversal edges
- \renewcommand{\pmdraw@ifTedgesFirst}{1}%
+\define@key{pmdraw@brickDefault}{edges first}{% Sets the default to draw edges before vertices
+ \setkeys{pmdraw@brick}{%
+ \savevalue{edges first}=#1%
+ }%
+}
+\define@key{pmdraw@brick}{transversals first}[1]{% Draws transversal edges before non-transversal edges
+ \renewcommand{\pmdraw@ifTedgesFirst}{#1}%
+}
+\define@key{pmdraw@brickDefault}{transversals first}{% Sets the default to draw transversal edges before non-transversal edges
+ \setkeys{pmdraw@brick}{%
+ \savevalue{transversals first}=#1%
+ }%
}
-\define@key{pmdraw@brick}{edges phantom}[]{% Does not draw edges
- \setcounter{pmdraw@ifEdges}{1}%
+\define@key{pmdraw@brick}{edges phantom}[1]{% Does not draw edges
+ \setcounter{pmdraw@ifEdges}{#1}%
+}
+\define@key{pmdraw@brickDefault}{edges phantom}{% Sets the default to not draw edge
+ \setkeys{pmdraw@brick}{%
+ \savevalue{edges phantom}=#1%
+ }%
}
\define@key{pmdraw@brick}{edges uncover}{% Sets the uncover options of edges
\renewcommand{\pmdraw@edgesUncover}{#1}%
}
+\define@key{pmdraw@brickDefault}{edges uncover}{% Sets the default uncover options of edges
+ \setkeys{pmdraw@brick}{%
+ \savevalue{edges uncover}=#1%
+ }%
+}
\define@key{pmdraw@brick}{brace}{% Draws a brace
+ \setkeys{pmdraw@brace}{% Sets default keys for brace
+ left=\usevalue{left},
+ right=\usevalue{right},
+ above=\usevalue{above}
+ }%
\setkeys{pmdraw@brace}{#1}% Processes details of brace
\pmdraw@drawBrace{\value{pmdraw@braceL}}{\value{pmdraw@braceR}}{\pmdraw@braceLabel}% Draws brace
\let\pmdraw@drawBrace\pmdraw@drawBraceDefault% Resets brace options if changed
}
+\define@key{pmdraw@brickDefault}{brace}{% Sets the default brace
+ \setkeys{pmdraw@brick}{%
+ \savevalue{brace}=#1%
+ }%
+}
\define@key{pmdraw@brick}{brace draw}{% Sets the draw options for drawing of brace
\renewcommand{\pmdraw@drawBraceDrawOptions}{#1}%
}
+\define@key{pmdraw@brickDefault}{brace draw}{% Sets the default draw options for drawing of brace
+ \setkeys{pmdraw@brick}{%
+ \savevalue{brace draw}=#1%
+ }%
+}
\define@key{pmdraw@brick}{brace node}{% Sets the node options for drawing of brace
\renewcommand{\pmdraw@drawBraceNodeOptions}{#1}%
}
+\define@key{pmdraw@brickDefault}{brace node}{% Sets the default node options for drawing of brace
+ \setkeys{pmdraw@brick}{%
+ \savevalue{brace node}=#1%
+ }%
+}
\define@key{pmdraw@brick}{decorate before}{% Hook for decorations before brick is drawn
\renewcommand{\pmdraw@hookBeforeBrick}{#1}%
}
+\define@key{pmdraw@brickDefault}{decorate before}{% Sets the default hook for decorations before brick is drawn
+ \setkeys{pmdraw@brick}{%
+ \savevalue{decorate before}=#1%
+ }%
+}
\define@key{pmdraw@brick}{decorate after}{% Hook for decorations after brick is drawn
\renewcommand{\pmdraw@hookAfterBrick}{#1}%
}
+\define@key{pmdraw@brickDefault}{decorate after}{% Sets the default hook for decorations after brick is drawn
+ \setkeys{pmdraw@brick}{%
+ \savevalue{decorate after}=#1%
+ }%
+}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -615,40 +1029,95 @@
\define@key{pmdraw@NTedges}{level}{% Sets level of non-transversal edge
\setcounter{pmdraw@NTlevel}{#1}%
}
+\define@key{pmdraw@NTedgesDefault}{level}{% Sets the default level of non-transversal edge
+ \setkeys{pmdraw@NTedges}{%
+ \savevalue{level}=#1%
+ }%
+}
+
\define@key{pmdraw@NTedges}{height}{% Sets manual height of non-transversal edge
\renewcommand{\pmdraw@NTedgesHeight}{#1}%
}
+\define@key{pmdraw@NTedgesDefault}{height}{% Sets the default manual height of non-transversal edge
+ \setkeys{pmdraw@NTedges}{%
+ \savevalue{height}=#1%
+ }%
+}
+
\define@key{pmdraw@NTedges}{edge draw}{% Sets the draw options for drawing of edge
\renewcommand{\pmdraw@drawEdgeDrawOptions}{#1}%
}
+\define@key{pmdraw@NTedgesDefault}{edge draw}{% Sets the default draw options for drawing of edge
+ \setkeys{pmdraw@NTedges}{%
+ \savevalue{edge draw}=#1%
+ }%
+}
+
\define@key{pmdraw@NTedges}{options}{% Sets the draw command of non-transversal edge
\renewcommand{\pmdraw@drawUedgesDraw}[2]{#1}%
\renewcommand{\pmdraw@drawLedgesDraw}[2]{#1}%
}
-\define@key{pmdraw@NTedges}{phantom}[]{% Does not draw edge
- \setcounter{pmdraw@ifEdge}{1}%
+
+\define@key{pmdraw@NTedges}{phantom}[1]{% Does not draw edge
+ \setcounter{pmdraw@ifEdge}{#1}%
+}
+\define@key{pmdraw@NTedgesDefault}{phantom}{% Sets the default to not draw edge
+ \setkeys{pmdraw@NTedges}{%
+ \savevalue{phantom}=#1%
+ }%
}
+
\define@key{pmdraw@NTedges}{uncover}{% Sets the uncover options of edge
\renewcommand{\pmdraw@edgeUncover}{#1}%
}
+\define@key{pmdraw@NTedgesDefault}{uncover}{% Sets the default uncover options of edge
+ \setkeys{pmdraw@NTedges}{%
+ \savevalue{uncover}=#1%
+ }%
+}
+
\define@key{pmdraw@Tedges}{height}{% Sets manual height of transversal edge
\tikzmath{%
\pmdraw{Tlevel} = #1;%
}%
\renewcommand{\pmdraw@ifTedgeHorizontal}{1}% Flags manual height
}
+\define@key{pmdraw@TedgesDefault}{height}{% Sets the default manual height of transversal edge
+ \setkeys{pmdraw@Tedges}{%
+ \savevalue{height}=#1%
+ }%
+}
+
\define@key{pmdraw@Tedges}{edge draw}{% Sets the draw options for drawing of edge
\renewcommand{\pmdraw@drawEdgeDrawOptions}{#1}%
}
+\define@key{pmdraw@TedgesDefault}{edge draw}{% Sets the default draw options for drawing of edge
+ \setkeys{pmdraw@Tedges}{%
+ \savevalue{edge draw}=#1%
+ }%
+}
+
\define@key{pmdraw@Tedges}{options}{% Sets the draw command of transversal edge
\renewcommand{\pmdraw@drawTedgesDraw}[2]{#1}%
}
-\define@key{pmdraw@Tedges}{phantom}[]{% Does not draw edge
- \setcounter{pmdraw@ifEdge}{1}%
+
+\define@key{pmdraw@Tedges}{phantom}[1]{% Does not draw edge
+ \setcounter{pmdraw@ifEdge}{#1}%
+}
+\define@key{pmdraw@TedgesDefault}{phantom}{% Sets the default to not draw edge
+ \setkeys{pmdraw@Tedges}{%
+ \savevalue{phantom}=#1%
+ }%
}
+
\define@key{pmdraw@Tedges}{uncover}{% Sets the uncover options of edge
\renewcommand{\pmdraw@edgeUncover}{#1}%
}
+\define@key{pmdraw@TedgesDefault}{uncover}{% Sets the default uncover options of edge
+ \setkeys{pmdraw@Tedges}{%
+ \savevalue{uncover}=#1%
+ }%
+}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -660,15 +1129,34 @@
\define@key{pmdraw@brace}{left}{% Sets starting position of brace
\setcounter{pmdraw@braceL}{#1}%
}
+\define@key{pmdraw@braceDefault}{left}{% Sets the default starting position of brace
+ \setkeys{pmdraw@brace}{%
+ \savevalue{left}=#1%
+ }%
+}
+
\define@key{pmdraw@brace}{right}{% Sets terminating position of brace
\setcounter{pmdraw@braceR}{#1}%
}
+\define@key{pmdraw@braceDefault}{right}{% Sets the default terminating position of brace
+ \setkeys{pmdraw@brace}{%
+ \savevalue{right}=#1%
+ }%
+}
+
\define@key{pmdraw@brace}{label}{% Sets label of brace
\renewcommand{\pmdraw@braceLabel}{#1}%
}
-\define@key{pmdraw@brace}{above}[]{% Set flag to draw brace above diagram
- \renewcommand{\pmdraw@ifProdDiag}{1}%
+
+\define@key{pmdraw@brace}{above}[1]{% Set flag to draw brace above diagram
+ \renewcommand{\pmdraw@ifProdDiag}{#1}%
+}
+\define@key{pmdraw@braceDefault}{above}{% Sets the default flag to draw brace above diagram
+ \setkeys{pmdraw@brace}{%
+ \savevalue{above}=#1%
+ }%
}
+
\define@key{pmdraw@brace}{options}{% Sets the draw command of brace
\renewcommand{\pmdraw@drawBrace}[3]{#1}%
}
@@ -683,37 +1171,120 @@
\define@key{pmdraw@diagram}{row sep}{% Sets vertical separation between rows of vertices in diagram
\renewcommand{\pmdraw@rowSep}{#1}%
}
+\define@key{pmdraw@diagramDefault}{row sep}{% Sets the default vertical separation between rows of vertices in diagram
+ \setkeys{pmdraw@diagram}{%
+ \savevalue{row sep}=#1%
+ }%
+}
+
\define@key{pmdraw@diagram}{tikz}{% Sets the tikz options
\renewcommand{\pmdraw@tikz}{#1}%
}
+\define@key{pmdraw@diagramDefault}{tikz}{% Sets the default tikz options
+ \setkeys{pmdraw@diagram}{%
+ \savevalue{tikz}=#1%
+ }%
+}
+
\define@key{pmdraw@diagram}{dots options}{% Sets the draw command of dots between bricks
\renewcommand{\pmdraw@drawDots}[2]{#1}%
}
-\define@key{pmdraw@diagram}{grid}[]{% Flag for drawing coordinate grid
- \renewcommand{\pmdraw@ifGrid}{1}%
+
+
+\define@key{pmdraw@diagram}{grid}[1]{% Flag for drawing coordinate grid
+ \renewcommand{\pmdraw@ifGrid}{#1}%
+}
+\define@key{pmdraw@diagramDefault}{grid}{% Sets the default flag for drawing coordinate grid
+ \setkeys{pmdraw@diagram}{%
+ \savevalue{grid}=#1%
+ }%
}
+
\define@key{pmdraw@diagram}{decorate before}{% Hook before drawing diagrams
\renewcommand{\pmdraw@hookBeforeDiagram}{#1}%
}
+\define@key{pmdraw@diagramDefault}{decorate before}{% Sets the default hook before drawing diagrams
+ \setkeys{pmdraw@diagram}{%
+ \savevalue{decorate before}=#1%
+ }%
+}
\define@key{pmdraw@diagram}{decorate after}{% Hook after drawing diagrams
\renewcommand{\pmdraw@hookAfterDiagram}{#1}%
}
+\define@key{pmdraw@diagramDefault}{decorate after}{% Sets the default hook after drawing diagrams
+ \setkeys{pmdraw@diagram}{%
+ \savevalue{decorate after}=#1%
+ }%
+}
\define@key{pmdraw@diagram}{diagram sep}{% Sets vertical separation between bottom row of top diagram and top row of bottom diagram in product diagram
\renewcommand{\pmdraw@diagSep}{#1}%
}
+\define@key{pmdraw@diagramDefault}{diagram sep}{% Sets the default vertical separation between bottom row of top diagram and top row of bottom diagram in product diagram
+ \setkeys{pmdraw@diagram}{%
+ \savevalue{diagram sep}=#1%
+ }%
+}
\define@key{pmdraw@diagram}{vertex sep}{% Sets vertical separation between bottom row of top diagram and top row of bottom diagram in product diagram not for added edges
\renewcommand{\pmdraw@vertexSep}{#1}%
}
+\define@key{pmdraw@diagramDefault}{vertex sep}{% Sets the default vertical separation between bottom row of top diagram and top row of bottom diagram in product diagram not for added edges
+ \setkeys{pmdraw@diagram}{%
+ \savevalue{vertex sep}=#1%
+ }%
+}
+
\define@key{pmdraw@diagram}{edges added}{% Sets the draw options for drawing of added edges in product diagram
\renewcommand{\pmdraw@drawAedgesOptions}{#1}%
}
-\define@key{pmdraw@diagram}{edges added phantom}[]{% Does not draw added edges
- \setcounter{pmdraw@ifEdgesAdded}{1}%
+\define@key{pmdraw@diagramDefault}{edges added}{% Sets the default draw options for drawing of added edges in product diagram
+ \setkeys{pmdraw@diagram}{%
+ \savevalue{edges added}=#1%
+ }%
+}
+\define@key{pmdraw@diagram}{edges added phantom}[1]{% Does not draw added edges
+ \setcounter{pmdraw@ifEdgesAdded}{#1}%
+}
+\define@key{pmdraw@diagramDefault}{edges added phantom}{% Sets the default to not draw added edges
+ \setkeys{pmdraw@diagram}{%
+ \savevalue{edges added phantom}=#1%
+ }%
}
\define@key{pmdraw@diagram}{edges added uncover}{% Sets the uncover options of added edges
\renewcommand{\pmdraw@edgesAddedUncover}{#1}%
}
+\define@key{pmdraw@diagramDefault}{edges added uncover}{% Sets the default uncover options of added edges
+ \setkeys{pmdraw@diagram}{%
+ \savevalue{edges added uncover}=#1%
+ }%
+}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% Keys for default key settings %
+% - ordered as per manual %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\define@key{pmdraw@default}{brick}{% Sets the default key options of brick keys
+ \setkeys{pmdraw@brickDefault}{#1}%
+}
+
+\define@key{pmdraw@default}{NTedges}{% Sets the default key options of non-transversal edge keys
+ \setkeys{pmdraw@NTedgesDefault}{#1}%
+}
+
+\define@key{pmdraw@default}{Tedges}{% Sets the default key options of transversal edge keys
+ \setkeys{pmdraw@TedgesDefault}{#1}%
+}
+
+\define@key{pmdraw@default}{brace}{% Sets the default key options of brace keys
+ \setkeys{pmdraw@braceDefault}{#1}%
+}
+
+\define@key{pmdraw@default}{diagram}{% Sets the default key options of diagram keys
+ \setkeys{pmdraw@diagramDefault}{#1}%
+}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
@@ -733,6 +1304,18 @@
\newcommand{\pmdDiagram}[2][]{% Draws diagram
% #1 Options
% #2 List of bricks
+ \setkeys{pmdraw@diagram}{% Sets default key values for diagrams
+ row sep=\usevalue{row sep},
+ tikz=\usevalue{tikz},
+ grid=\usevalue{grid},
+ decorate before=\usevalue{decorate before},
+ decorate after=\usevalue{decorate after},
+ diagram sep=\usevalue{diagram sep},
+ vertex sep=\usevalue{vertex sep},
+ edges added=\usevalue{edges added},
+ edges added phantom=\usevalue{edges added phantom},
+ edges added uncover=\usevalue{edges added uncover}
+ }%
\setkeys{pmdraw@diagram}{#1}% Processes options
\renewcommand{\pmdraw@ifDiagWDots}{1}% Flags that diagram has dots
\setcounter{pmdraw@brickShift}{0}% Reset shifting of individual bricks
@@ -775,6 +1358,18 @@
% #2 List of added edges
% #3 Top diagram as list of bricks
% #4 Bottom diagram as list of bricks
+ \setkeys{pmdraw@diagram}{% Sets default key values for diagrams
+ row sep=\usevalue{row sep},
+ tikz=\usevalue{tikz},
+ grid=\usevalue{grid},
+ decorate before=\usevalue{decorate before},
+ decorate after=\usevalue{decorate after},
+ diagram sep=\usevalue{diagram sep},
+ vertex sep=\usevalue{vertex sep},
+ edges added=\usevalue{edges added},
+ edges added phantom=\usevalue{edges added phantom},
+ edges added uncover=\usevalue{edges added uncover}
+ }%
\setkeys{pmdraw@diagram}{#1}% Processes options
\ifmmode% If drawing diagram in a maths equation
\,% Add space
@@ -847,6 +1442,18 @@
% #4 Top diagram as list of bricks
% #5 Middle diagram as list of bricks
% #6 Bottom diagram as list of bricks
+ \setkeys{pmdraw@diagram}{% Sets default key values for diagrams
+ row sep=\usevalue{row sep},
+ tikz=\usevalue{tikz},
+ grid=\usevalue{grid},
+ decorate before=\usevalue{decorate before},
+ decorate after=\usevalue{decorate after},
+ diagram sep=\usevalue{diagram sep},
+ vertex sep=\usevalue{vertex sep},
+ edges added=\usevalue{edges added},
+ edges added phantom=\usevalue{edges added phantom},
+ edges added uncover=\usevalue{edges added uncover}
+ }%
\setkeys{pmdraw@diagram}{#1}% Processes options
\ifmmode% If drawing diagram in a maths equation
\,% Add space
@@ -932,6 +1539,133 @@
\pmdraw@reset% Resets user keys and other flags to default values
}
+\newcommand{\pmdSetDefault}[1]{% Sets the entered styles as the default
+ \setkeys{pmdraw@default}{#1}%
+}
+
+\newcommand{\pmdSetToOriginalDefault}{% Sets the styles as the default of the package
+ \setkeys{pmdraw@default}{% Saves values
+ brick={% Sets default for brick keys
+ degree=0,
+ degree bottom=0,
+ degree top=0,
+ blank bottom=0,
+ blank top=0,
+ row sep=2,
+ vertices={},
+ no vertex bottom 1=-1,
+ no vertex bottom 2=-1,
+ no vertex bottom 3=-1,
+ no vertex bottom 4=-1,
+ no vertex bottom 5=-1,
+ no vertex bottom 6=-1,
+ no vertex bottom 7=-1,
+ no vertex bottom 8=-1,
+ no vertex bottom 9=-1,
+ no vertex top 1=-1,
+ no vertex top 2=-1,
+ no vertex top 3=-1,
+ no vertex top 4=-1,
+ no vertex top 5=-1,
+ no vertex top 6=-1,
+ no vertex top 7=-1,
+ no vertex top 8=-1,
+ no vertex top 9=-1,
+ labels=0,
+ labels bottom=0,
+ labels top=0,
+ labels start=1,
+ labels bottom start=1,
+ labels top start=1,
+ no label bottom 1=-1,
+ no label bottom 2=-1,
+ no label bottom 3=-1,
+ no label bottom 4=-1,
+ no label bottom 5=-1,
+ no label bottom 6=-1,
+ no label bottom 7=-1,
+ no label bottom 8=-1,
+ no label bottom 9=-1,
+ no label top 1=-1,
+ no label top 2=-1,
+ no label top 3=-1,
+ no label top 4=-1,
+ no label top 5=-1,
+ no label top 6=-1,
+ no label top 7=-1,
+ no label top 8=-1,
+ no label top 9=-1,
+ labels bottom draw={},
+ labels bottom node={},
+ labels top draw={},
+ labels top node={},
+ dots draw={},
+ dots node={},
+ vertices bottom phantom=0,
+ vertices top phantom=0,
+ vertices bottom uncover={1-},
+ vertices top uncover={1-},
+ levels=1,
+ levels bottom=1,
+ levels top=1,
+ levels sep=(0.5*\pmdraw@rowSep)/2,
+ levels sep bottom=(0.5*\pmdraw@rowSep)/2,
+ levels sep top=(0.5*\pmdraw@rowSep)/2,
+ edges={},
+ edges non-transversal={},
+ edges upper={},
+ edges lower={},
+ edges transversal={},
+ edges first=0,
+ transversals first=0,
+ edges phantom=0,
+ edges uncover={1-},
+ brace draw={},
+ brace node={},
+ decorate before={},
+ decorate after={}
+ }
+ }
+ \setkeys{pmdraw@default}{% Saves values
+ NTedges={% Sets default for non-transversal edge keys
+ level=1,
+ height=-1000,
+ edge draw={},
+ phantom=0,
+ uncover={1-}
+ }
+ }
+ \setkeys{pmdraw@default}{% Saves values
+ Tedges={% Sets default for transversal edge keys
+ edge draw={},
+ phantom=0,
+ uncover={1-}
+ }
+ }
+ \setkeys{pmdraw@default}{% Saves values
+ brace={% Sets default for brace keys
+ left=0,
+ right=0,
+ above=0
+ }
+ }
+ \setkeys{pmdraw@default}{% Saves values
+ diagram={% Sets default for diagram keys
+ row sep=2,
+ tikz={},
+ grid=0,
+ decorate before={},
+ decorate after={},
+ diagram sep=1,
+ vertex sep=0,
+ edges added={},
+ edges added phantom=0,
+ edges added uncover={1-}
+ }
+ }
+}
+\pmdSetToOriginalDefault% Sets original default values
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% For loop commands %
@@ -1062,6 +1796,85 @@
% #2 Upper non-transversal edges, as list [<options>]{<left vertex>}{<right vertex>}, eg [level=1]{2}{3}
% #3 Lower non-transversal edges, as list [<options>]{<left vertex>}{<right vertex>}, eg [level=1]{2}{3}
% #4 Transversals, as list [<options>]{<upper vertex>}{<lower vertex>}, eg [level=1]{2}{3}
+ \setkeys{pmdraw@brick}{% Set default values for brick keys
+ degree bottom=\usevalue{degree bottom},
+ degree top=\usevalue{degree top},
+ blank bottom=\usevalue{blank bottom},
+ blank top=\usevalue{blank top},
+ row sep=\usevalue{row sep},
+ vertices=\usevalue{vertices},
+ no vertex bottom 1=\usevalue{no vertex bottom 1},
+ no vertex bottom 2=\usevalue{no vertex bottom 2},
+ no vertex bottom 3=\usevalue{no vertex bottom 3},
+ no vertex bottom 4=\usevalue{no vertex bottom 4},
+ no vertex bottom 5=\usevalue{no vertex bottom 5},
+ no vertex bottom 6=\usevalue{no vertex bottom 6},
+ no vertex bottom 7=\usevalue{no vertex bottom 7},
+ no vertex bottom 8=\usevalue{no vertex bottom 8},
+ no vertex bottom 9=\usevalue{no vertex bottom 9},
+ no vertex top 1=\usevalue{no vertex top 1},
+ no vertex top 2=\usevalue{no vertex top 2},
+ no vertex top 3=\usevalue{no vertex top 3},
+ no vertex top 4=\usevalue{no vertex top 4},
+ no vertex top 5=\usevalue{no vertex top 5},
+ no vertex top 6=\usevalue{no vertex top 6},
+ no vertex top 7=\usevalue{no vertex top 7},
+ no vertex top 8=\usevalue{no vertex top 8},
+ no vertex top 9=\usevalue{no vertex top 9},
+ labels=\usevalue{labels},
+ labels bottom=\usevalue{labels bottom},
+ labels top=\usevalue{labels top},
+ labels start=\usevalue{labels start},
+ labels bottom start=\usevalue{labels bottom start},
+ labels top start=\usevalue{labels top start},
+ no label bottom 1=\usevalue{no label bottom 1},
+ no label bottom 2=\usevalue{no label bottom 2},
+ no label bottom 3=\usevalue{no label bottom 3},
+ no label bottom 4=\usevalue{no label bottom 4},
+ no label bottom 5=\usevalue{no label bottom 5},
+ no label bottom 6=\usevalue{no label bottom 6},
+ no label bottom 7=\usevalue{no label bottom 7},
+ no label bottom 8=\usevalue{no label bottom 8},
+ no label bottom 9=\usevalue{no label bottom 9},
+ no label top 1=\usevalue{no label top 1},
+ no label top 2=\usevalue{no label top 2},
+ no label top 3=\usevalue{no label top 3},
+ no label top 4=\usevalue{no label top 4},
+ no label top 5=\usevalue{no label top 5},
+ no label top 6=\usevalue{no label top 6},
+ no label top 7=\usevalue{no label top 7},
+ no label top 8=\usevalue{no label top 8},
+ no label top 9=\usevalue{no label top 9},
+ labels bottom draw=\usevalue{labels bottom draw},
+ labels bottom node=\usevalue{labels bottom node},
+ labels top draw=\usevalue{labels top draw},
+ labels top node=\usevalue{labels top node},
+ dots draw=\usevalue{dots draw},
+ dots node=\usevalue{dots node},
+ vertices bottom phantom=\usevalue{vertices bottom phantom},
+ vertices top phantom=\usevalue{vertices top phantom},
+ vertices bottom uncover=\usevalue{vertices bottom uncover},
+ vertices top uncover=\usevalue{vertices top uncover},
+ levels=\usevalue{levels},
+ levels bottom=\usevalue{levels bottom},
+ levels top=\usevalue{levels top},
+ levels sep=\usevalue{levels sep},
+ levels sep bottom=\usevalue{levels sep bottom},
+ levels sep top=\usevalue{levels sep top},
+ edges=\usevalue{edges},
+ edges non-transversal=\usevalue{edges non-transversal},
+ edges upper=\usevalue{edges upper},
+ edges lower=\usevalue{edges lower},
+ edges transversal=\usevalue{edges transversal},
+ edges first=\usevalue{edges first},
+ transversals first=\usevalue{transversals first},
+ edges phantom=\usevalue{edges phantom},
+ edges uncover=\usevalue{edges uncover},
+ brace draw=\usevalue{brace draw},
+ brace node=\usevalue{brace node},
+ decorate before=\usevalue{decorate before},
+ decorate after=\usevalue{decorate after}
+ }%
\setkeys{pmdraw@brick}{levels,#1}% Processes options and set default levels
\pmdraw@hookBeforeBrick% Hook before drawing brick
\ifnum\pmdraw@ifEdgesFirst=0% If drawing vertices first
@@ -1391,6 +2204,7 @@
\let\pmdraw@drawLabelBottom\pmdraw@drawLabelBottomDefault%
\let\pmdraw@drawLabelTop\pmdraw@drawLabelTopDefault%
\let\pmdraw@drawLabelBottom\pmdraw@drawLabelBottomDefault%
+ \let\pmdraw@drawVertex\pmdraw@drawVertexDefault%
\setcounter{pmdraw@blankB}{0}%
\setcounter{pmdraw@blankT}{0}%
\setcounter{pmdraw@labelStartB}{1}%
@@ -1401,6 +2215,13 @@
}
\newcommand{\pmdraw@drawLedges}[3][]{% Draws lower non-transversal edge, #1 options, #2 L vertex, #3 R vertex
\setcounter{pmdraw@NTlevel}{1}% Store default level of edge
+ \setkeys{pmdraw@NTedges}{% Sets default non-transversal edge keys
+ level=\usevalue{level},
+ height=\usevalue{height},
+ edge draw=\usevalue{edge draw},
+ phantom=\usevalue{phantom},
+ uncover=\usevalue{uncover}
+ }%
\setkeys{pmdraw@NTedges}{#1}% Processes options
\ifdim\pmdraw@NTedgesHeight pt=-1000pt% If using default heights
\tikzmath{%
@@ -1438,6 +2259,11 @@
\pmdraw@LedgesLoop% Restart for loop
}
\newcommand{\pmdraw@drawTedges}[3][]{% Draws transversal edge, #1 options, #2 upper vertex, #3 lower vertex
+ \setkeys{pmdraw@Tedges}{% Sets default key values for transversal edges
+ edge draw=\usevalue{edge draw},
+ phantom=\usevalue{phantom},
+ uncover=\usevalue{uncover}
+ }%
\setkeys{pmdraw@Tedges}{#1}% Processes options
\@ifclassloaded{beamer}{% If in beamer
\uncover<\pmdraw@edgeUncover>{% Uncovers edge
@@ -1513,6 +2339,13 @@
}
\newcommand{\pmdraw@drawUedges}[3][]{% Draws upper non-transversal edge, #1 options, #2 L vertex, #3 R vertex
\setcounter{pmdraw@NTlevel}{1}% Store default level of edge
+ \setkeys{pmdraw@NTedges}{% Sets default non-transversal edge keys
+ level=\usevalue{level},
+ height=\usevalue{height},
+ edge draw=\usevalue{edge draw},
+ phantom=\usevalue{phantom},
+ uncover=\usevalue{uncover}
+ }%
\setkeys{pmdraw@NTedges}{#1}% Processes options
\ifdim\pmdraw@NTedgesHeight pt=-1000pt% If using default heights
\tikzmath{%
diff --git a/graphics/pgf/contrib/pmdraw/pmdraw.tex b/graphics/pgf/contrib/pmdraw/pmdraw.tex
index af516b18e6..bc932653d6 100644
--- a/graphics/pgf/contrib/pmdraw/pmdraw.tex
+++ b/graphics/pgf/contrib/pmdraw/pmdraw.tex
@@ -1,7 +1,7 @@
\documentclass{ltxdoc}
% *------------------------------*
-% |2````````````````````````````3|
+% |6````````````````````````````1|
% |`````____````____`````````````|
% |````|MFMF\ /MFMF|````````````|
% |````|MF|MF\/MF|MF|````````````|
@@ -13,7 +13,7 @@
% |``````````````|MF|````````````|
% |``````````````|MF|````````````|
% |``````````````|MF|````````````|
-% |6````````````````````````````2|
+% |0````````````````````````````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.5, 2024-10-07.}}
+ corresponds to \textsf{pmdraw}~v1.6, 2025-01-24.}}
\author{Matthias Fresacher \\ \texttt{matthias.ypg37@slmail.me}}
\maketitle
@@ -784,6 +784,8 @@ is a list of bricks that correspond to the bottom diagram, with each brick enclo
}
\end{center}
+\section{Options}
+
\subsection{Brick options} \label{sec: brick/options}
The following are all of the keys that are available for bricks.
@@ -994,7 +996,7 @@ passes through options to the \verb`\draw` command of vertices. The default is n
\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.
+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 -1.
\begin{center}
\begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
\begin{minipage}[c]{0.4\linewidth}
@@ -1185,7 +1187,7 @@ sets the starting value of the labels for the vertices. The default is one.
\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.
+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 -1.
\begin{center}
\begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
\begin{minipage}[c]{0.4\linewidth}
@@ -1406,7 +1408,7 @@ The \texttt{no dots} flag removes the drawing of dots to the left of the current
}{ % Brick 2
[ % Options
degree=1,
- no dots
+ % no dots
]{ % Upper non-transversal edges
\pmdEmpty
}{ % Lower non-transversal edges
@@ -3854,6 +3856,116 @@ allows for the added edges to be uncovered in a \texttt{beamer} presentation\foo
}
\end{center}
+\subsection{Global options}
+
+The following are all of the commands that change all diagrams after the command is given.
+
+\DescribeMacro{\pmdSetDefault}
+sets the default style of all diagrams and has the syntax \verb`\pmdSetDefault{<keys>}`, where the input keys are one of the following:
+\begin{itemize}
+ \item \texttt{brick} -- see Section~\ref{sec: brick/options},
+ \item \texttt{NTedges} -- non-transversal edges, see Section~\ref{sec: NT edge/options},
+ \item \texttt{Tedges} -- transversal edges, see Section~\ref{sec: T edge/options},
+ \item \texttt{brace} -- see Section~\ref{sec: brace},
+ \item \texttt{diagram} -- see Section~\ref{sec: diagram/options}.
+\end{itemize}
+Only the keys (both families, for example brick, and individual keys, for example degree) that are to be changed need to be given. Unspecified keys will retain their existing default values.
+
+The following keys cannot be changed using this process:
+\begin{itemize}
+ \item \texttt{brick} keys:
+ \begin{itemize}
+ \item \texttt{vertices options},
+ \item \texttt{labels bottom options},
+ \item \texttt{labels top options},
+ \item \texttt{no dots},
+ \item \texttt{brace}.
+ \end{itemize}
+ \item \texttt{NTedges} keys:
+ \begin{itemize}
+ \item \texttt{options}.
+ \end{itemize}
+ \item \texttt{Tedges} keys:
+ \begin{itemize}
+ \item \texttt{height},
+ \item \texttt{options}.
+ \end{itemize}
+ \item \texttt{brace} keys:
+ \begin{itemize}
+ \item \texttt{label},
+ \item \texttt{options}.
+ \end{itemize}
+ \item \texttt{diagram} keys:
+ \begin{itemize}
+ \item \texttt{dots options}.
+ \end{itemize}
+\end{itemize}
+Instead their default commands should be changed as a work around. For example, the key \texttt{labels bottom options} can be set to a different default by finding the corresponding default command, \texttt{\pmdraw@drawLabelBottomDefault} and redefining that command to the new default value sought.
+
+It should be noted that for some of these keys the above mentioned work around does not work as for \texttt{height} is defined more complexly than just a single command.
+
+The follow is an example use:
+\begin{center}
+ \begin{minipage}{\dimexpr0.85\textwidth-2\fboxrule-2\fboxsep\relax}
+ \begin{minipage}[c]{0.4\linewidth}
+\begin{verbatim}
+\pmdSetDefault{% Set default keys
+ brick={% Brick keys
+ degree=5,
+ vertices=blue
+ },
+ Tedges={% Transversal edge keys
+ edge draw=red
+ }
+}
+
+\pmdBrick[ % Options
+ % degree=5% Not needed anymore
+]{ % 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}
+\pmdSetDefault{% Set default keys
+ brick={% Brick keys
+ degree=5,
+ vertices=blue
+ },
+ Tedges={% Transversal edge keys
+ edge draw=red
+ }
+}
+
+\pmdBrick[ % Options
+ % degree=5% Not needed anymore
+]{ % 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}
+
+Due to the use of the \texttt{xkeyval} package, it is not possible to have more than one default option defined. A substantial rewrite of the package would be needed to have an arbitrary number of predefined styles that can quickly be used.
+
+\DescribeMacro{\pmdSetToOriginalDefault}
+sets the style of all diagrams to the default original style of the package. In effect it undoes any and all changes made with \verb`\pmdSetDefault`.
+
\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.
@@ -3866,7 +3978,6 @@ The following are some of the aims for the future for this package:
\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. 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.
diff --git a/graphics/pgf/contrib/tikzdotncross/README.md b/graphics/pgf/contrib/tikzdotncross/README.md
index af8c7d19c6..7df0e4ae9f 100644
--- a/graphics/pgf/contrib/tikzdotncross/README.md
+++ b/graphics/pgf/contrib/tikzdotncross/README.md
@@ -70,8 +70,8 @@ The Current Maintainer of this work is Alceu Frigeri
- documentation in PDF format
-------------
-* Version 1.2b (this)
- - correcting package dependencies (issue #1).
+* Version 1.2b/1.2c (this)
+ - correcting package dependencies snafu (issue #1).
* Version 1.2
- Added some package options, to change pin defaults, see documentation.
diff --git a/graphics/pgf/contrib/tikzdotncross/doc/tikzdotncross.pdf b/graphics/pgf/contrib/tikzdotncross/doc/tikzdotncross.pdf
index 2b7ebc3345..fc34d4c561 100644
--- a/graphics/pgf/contrib/tikzdotncross/doc/tikzdotncross.pdf
+++ b/graphics/pgf/contrib/tikzdotncross/doc/tikzdotncross.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/tikzdotncross/doc/tikzdotncross.tex b/graphics/pgf/contrib/tikzdotncross/doc/tikzdotncross.tex
index b149f10a1e..0651e47c3b 100644
--- a/graphics/pgf/contrib/tikzdotncross/doc/tikzdotncross.tex
+++ b/graphics/pgf/contrib/tikzdotncross/doc/tikzdotncross.tex
@@ -15,7 +15,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {1.2b} {2025/01/23}
+%% This is version {1.2c} {2025/01/23}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/tikzdotncross
diff --git a/graphics/pgf/contrib/tikzdotncross/latex/tikzdotncross.sty b/graphics/pgf/contrib/tikzdotncross/latex/tikzdotncross.sty
index 3236e652b5..8c2975e6fa 100644
--- a/graphics/pgf/contrib/tikzdotncross/latex/tikzdotncross.sty
+++ b/graphics/pgf/contrib/tikzdotncross/latex/tikzdotncross.sty
@@ -12,7 +12,7 @@
%%
%% The Current Maintainer of this work is Alceu Frigeri
%%
-%% This is version {1.2b} {2025/01/23}
+%% This is version {1.2c} {2025/01/23}
%%
%% The list of files that compose this work can be found in the README.md file at
%% https://ctan.org/pkg/tikzdotncross
@@ -27,7 +27,7 @@
\ProvidesExplPackage
{tikzdotncross}
{2025/01/23}
- {1.2b}
+ {1.2c}
{Marking coordinates and crossing paths}
%%%%%%%
@@ -41,7 +41,7 @@
name .code:n = {tikzdotncross} ,
prefix .code:n = {tikzdotncross} ,
date .code:n = {2025/01/23},
- version .code:n = {1.2b} ,
+ version .code:n = {1.2c} ,
description .code:n = {Marking~ coordinates~ and~ crossing~ paths}
}
\cs_if_exist:NF \PkgInfo
@@ -97,6 +97,7 @@
%\makeatletter
\usetikzlibrary{math,intersections}
+\RequirePackage{etoolbox}
%%
%% There is no easy and clean way