texlive[69382] Master/texmf-dist: tikzdotncross (11jan24)

commits+karl at tug.org commits+karl at tug.org
Thu Jan 11 22:27:27 CET 2024


Revision: 69382
          https://tug.org/svn/texlive?view=revision&revision=69382
Author:   karl
Date:     2024-01-11 22:27:27 +0100 (Thu, 11 Jan 2024)
Log Message:
-----------
tikzdotncross (11jan24)

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

Modified: trunk/Master/texmf-dist/doc/latex/tikzdotncross/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikzdotncross/README.md	2024-01-11 21:27:18 UTC (rev 69381)
+++ trunk/Master/texmf-dist/doc/latex/tikzdotncross/README.md	2024-01-11 21:27:27 UTC (rev 69382)
@@ -1,11 +1,11 @@
 tikzdotncross
 ==========
 
-Small set of macros for defining/marking coordinates and crossing (jumps) paths.
+Set of macros for defining/marking coordinates and crossing paths (with jumps).
 
 
 For more details,  see the documentation,
-[tikzdotncross.pdf](http://mirrors.ctan.org/macros/latex/contrib/tikzdotncross/doc/tikzdotncross.pdf)
+[tikzdotncross.pdf](http://mirrors.ctan.org/graphics/pgf/contrib/tikzdotncross/doc/tikzdotncross.pdf)
 
 --------------
 
@@ -70,5 +70,8 @@
     - documentation in PDF format
 
 -------------
+* Version 1.1 (this)
+    - Documentation typos and improvement. Code cleanup.
+ 
 * Version 1.0
     - Initial release by CTAN.

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

Modified: trunk/Master/texmf-dist/doc/latex/tikzdotncross/tikzdotncross.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/tikzdotncross/tikzdotncross.tex	2024-01-11 21:27:18 UTC (rev 69381)
+++ trunk/Master/texmf-dist/doc/latex/tikzdotncross/tikzdotncross.tex	2024-01-11 21:27:27 UTC (rev 69382)
@@ -15,7 +15,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {1.0} {2024/01/03}
+%% This is version {1.1} {2024/01/11}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/tikzdotncross
@@ -30,18 +30,18 @@
 \usepackage[american,siunitx,cuteinductors,smartlabels,arrowmos,EFvoltages,betterproportions]{circuitikz}
 \usetikzlibrary{math}
 \usepackage{tikzdotncross}
-
 \RequirePackage[hidelinks,hypertexnames=false]{hyperref}
 \begin{document}
 \tstitle{
   author={Alceu Frigeri\footnote{\tsverb{https://github.com/alceu-frigeri/tikzdotncross}}},
   date={\tsdate},
-  title={Marking Coordinates and Crossing Paths\break Version \PkgInfo{tikzdotncross}{version}}
+  title={The tikzdotncross Package\break Marking Coordinates and Crossing Paths\break Version \PkgInfo{tikzdotncross}{version}}
   }
   
+
 \begin{typesetabstract}
-
-This is a small package that offers a few alternative ways for declaring and marking coordinates and drawing a line with ``jumps'' over an already given path, which is a quite common issue when drawing, for instace, Electronics Circuits (like with \tsobj[pkg]{CircuiTikZ}).
+ 
+This package offers a few alternative ways for declaring and marking coordinates and drawing a line with ``jumps over'' an already given path, which is a quite common issue when drawing, for instance, Electronics Circuits, e.g. \tsobj[pkg]{CircuiTikZ}.
 \end{typesetabstract}
 
 %\tableofcontents
@@ -60,7 +60,7 @@
 \tsmacro{\showcoordstrue}{}
 \tsmacro{\showcoordsfalse}{}
 \end{codesyntax}
-These will affect how \tsobj{\ncoord,\dotcoord,\odotcoord} will behave, with \tsobj{\showcoordstrue} a red pin will also be added to the newly defined coordinate/node.
+These will affect how \tsobj{\ncoord,\dotcoord,\odotcoord} will behave, with \tsobj{\showcoordstrue} a red pin will also be added to the newly defined coordinate/node. The initial state is \tsobj{\showcoordsfalse}. It can be turned on/off as needed.
 \end{codedescribe}
 
 \begin{codedescribe}{\ncoord,\pincoord}
@@ -73,7 +73,7 @@
 \end{codesyntax}
 The \tsobj{\ncoord} always expects a single parameter \tsobj[parg]{coord}. A coordinate named \tsobj[marg]{coord} and node named n\tsobj[marg]{coord} (a ``n'' is added as a prefix) will be created for later use/reference. If \tsobj{\showcoordstrue} is en force, it will also add a pin.
 
-The \tsobj{\pincoord} expects one to 4 parameters, as listed. If omitted, the default value for distance is 4 (unit: pt), the default value for the angle is -45 (degrees), the default value for color is blue.
+The \tsobj{\pincoord} always draws a pin, besides declaring a coordinate and node as \tsobj{\ncoord}. It expects one to 4 parameters, as listed. If omitted, the default value for distance is 4 (unit: pt), the default value for the angle is -45 (degrees), the default value for color is blue.
 In fact, the \tsobj{\coord(name)} is just a short cut for \tsverb{\pincoord(name,red,45)}, if \tsobj{\showcoordstrue}.
 \end{codedescribe}
 
@@ -119,8 +119,11 @@
   The default \tsobj[oarg]{cross-name} is ``cross''. It may contain only characters, as any valid \TeX\ macro name. The default \tsobj[oarg]{width} of the semi-circle is 7pt.
 \end{tsremark}
 \begin{tsremark}
-  This is based on the \tsobj[pkg]{tikz} library \tsobj[pkg]{intersetions}, inheriting it's limitations. The main one: It only detects crossings over ``soft paths'', this means, if the line defined by \tsobj[marg]{coordA} and \tsobj[marg]{coordB} crosses over a node, it won't detect it.
+  This is based on the \tsobj[pkg]{tikz} library \tsobj[pkg]{intersetions}, inheriting it's limitations. The main one: It only detects crossings over ``soft paths'', this means, if the line defined by \tsobj[marg]{coordA} and \tsobj[marg]{coordB} crosses over a node, it will, in most cases, miss it (depends on how the node is draw and interacts with the soft path system).
 \end{tsremark}
+\begin{tsremark}
+  When using the crossing coordinates, like (\tsobj[oarg]{cross-name}-i), be aware that in some ill-defined cases, \tsobj[pkg]{intersections} might detect a crossing either at the starting and/or ending points. \tsobj{\pathcross} accounts for that, but you will be left with some extra reference coordinates, either the first one, last one or both.
+\end{tsremark}
 \end{codedescribe}
 
 \newpage
@@ -137,26 +140,26 @@
   		\draw[name path=base circ]
 		(0,0) \dotcoord(A) to[V,invert,l=$v_i(t)$] ++(0,2) -- ++(0,1) \ncoord(Y)
       to[R=$R_i$] ++(2,0) 
-      to[C] ++(1,0) \pincoord(B1) ++(1,0) \ncoord(B)
+      to[C] ++(1,0) \pincoord(A1) ++(1,0) \ncoord(B)
        ++(1,0) node[pnp,anchor=B] (T1){}
 		(A) -- (A -| B)  to[R=$R_{b_2}$] ++(0,2) \ncoord(Bb) (B) ++(0,1) \ncoord(Cb) to[R=$R_{b_1}$] ++(0,2) \ncoord(C)
-		(T1.C) to[R,l=$R_c$] (T1.C |- A) -- (A)
-		(T1.E) to[R,l_=$R_e$] (T1.E |- C) -- (C -| A) -- ++(-2,0) \ncoord(X) to[V,l=$V_{cc}$] (X |- A) -- (A)
+		(T1.C) to[R,l_=$R_c$] (T1.C |- A) -- (A)
+		(T1.E) to[R,l=$R_e$] (T1.E |- C) -- (C -| A) -- ++(-2,0) \ncoord(X) to[V,l=$V_{cc}$] (X |- A) -- (A)
     (T1.C) -- ++(1,0) node[ocirc]{} \ncoord(k) to[open,v=$v_o(t)$] (k |- A) node[ocirc]{} -- (A)
-    (Bb) -- (Cb);
+    (Bb) -- (Cb)
     ;
     %% These are just a few, marked, coords (they could be part of the previous path
     %%
-  \path (T1.E)  ++(1,0)      \pincoord(X1)    ++(-10,2)     \pincoord(X2)
-        (X1) ++(0,-1)        \pincoord(X1b) (X2) ++(0,-1)   \pincoord(X2b) 
-        (T1.C)  ++(0.5,-0.5) \pincoord(X1a) (T1.C) ++(-9,0) \pincoord(X2a)
-        (T1.B) \pincoord(B2,blue,225)
+  \path (T1.E)  ++(1,0)      \pincoord(B1)    ++(-10,2)    \pincoord(B2)
+        (B1) ++(0,-1)        \pincoord(D1) (B2) ++(0,-1)   \pincoord(D2) 
+        (T1.C)  ++(0.5,-0.5) \pincoord(C1) (T1.C) ++(-9,0) \pincoord(C2)
+        (T1.B) \odotpincoord(A2,blue,225)
   ;
   %% And that's all, a few crossing lines
   %%
-  \pathcross{B1}{T1.B}{base circ}[4pt] \draw (Y) +(0,1.7) node(){N.cross A:\crossT};
-  \pathcross*{X1}{X2}{base circ}[3pt]  \draw (Y) +(0,1.3) node(){N.cross B:\crossT};
-  \pathcross[sec]{X2a}{X1a}{base circ}[6pt] \draw (Y) +(0,0.9) node(){N.cross C:\secT};
+  \pathcross{A1}{A2}{base circ}[4pt] \draw (Y) +(0,1.7) node(){N.cross A:\crossT};
+  \pathcross*{B1}{B2}{base circ}[3pt]  \draw (Y) +(0,1.3) node(){N.cross B:\crossT};
+  \pathcross*[sec]{C1}{C2}{base circ}[6pt] \draw (Y) +(0,0.9) node(){N.cross C:\secT};
   
 \end{tikzpicture}
 }
@@ -170,7 +173,7 @@
 \tsresult*[emph={draw,node,ncoord,pincoord,dotcoord,odotcoord},emph2={pathcross},emph3={name,path},basicstyle={\scriptsize\ttfamily},numbers=left]{crossdemoA}
 
 \newpage
-As said, the main limitation (derived from how \tsobj[pkg]{intersections} works) is that crossings between the line and nodes aren't detected at all. So if someone tries to connect the nodes \tsobj[key]{X1b,X2b}, it will result:
+As said, the main limitation (derived from how \tsobj[pkg]{intersections} works) is that crossings between the line and nodes might not be detected at all. For example, if someone tries to connect the nodes \tsobj[key]{D1,D2}, it will, unfortunately, fail detecting the node (pnp transistor) entirely:
 
 \begin{codestore}[crossdemoC]
 \resizebox{0.5\textwidth}{!}{
@@ -178,27 +181,27 @@
       %% This is the reference, named path
       %%
   		\draw[name path=base circ]
-		(0,0) \ncoord(A) to[V,invert,l=$v_i(t)$] ++(0,2) -- ++(0,1) \ncoord(Y)
+		(0,0) \dotcoord(A) to[V,invert,l=$v_i(t)$] ++(0,2) -- ++(0,1) \ncoord(Y)
       to[R=$R_i$] ++(2,0) 
-      to[C] ++(1,0) \pincoord(B1) ++(1,0) \ncoord(B)
+      to[C] ++(1,0) \pincoord(A1) ++(1,0) \ncoord(B)
        ++(1,0) node[pnp,anchor=B] (T1){}
 		(A) -- (A -| B)  to[R=$R_{b_2}$] ++(0,2) \ncoord(Bb) (B) ++(0,1) \ncoord(Cb) to[R=$R_{b_1}$] ++(0,2) \ncoord(C)
-		(T1.C) to[R,l=$R_c$] (T1.C |- A) -- (A)
-		(T1.E) to[R,l_=$R_e$] (T1.E |- C) -- (C -| A) -- ++(-2,0) \ncoord(X) to[V,l=$V_{cc}$] (X |- A) -- (A)
+		(T1.C) to[R,l_=$R_c$] (T1.C |- A) -- (A)
+		(T1.E) to[R,l=$R_e$] (T1.E |- C) -- (C -| A) -- ++(-2,0) \ncoord(X) to[V,l=$V_{cc}$] (X |- A) -- (A)
     (T1.C) -- ++(1,0) node[ocirc]{} \ncoord(k) to[open,v=$v_o(t)$] (k |- A) node[ocirc]{} -- (A)
-    (Bb) -- (B) -- (Cb);
+    (Bb) -- (Cb)
     ;
     %% These are just a few, marked, coords (they could be part of the previous path
     %%
-  \path (T1.E)  ++(1,0)      \pincoord(X1)    ++(-10,2)     \pincoord(X2)
-        (X1) ++(0,-1)        \pincoord(X1b) (X2) ++(0,-1)   \pincoord(X2b) 
-        (T1.C)  ++(0.5,-0.5) \pincoord(X1a) (T1.C) ++(-9,0) \pincoord(X2a)
-        (T1.B) \pincoord(B2,blue,225)
+  \path (T1.E)  ++(1,0)      \pincoord(B1)    ++(-10,2)    \pincoord(B2)
+        (B1) ++(0,-1)        \pincoord(D1) (B2) ++(0,-1)   \pincoord(D2) 
+        (T1.C)  ++(0.5,-0.5) \pincoord(C1) (T1.C) ++(-9,0) \pincoord(C2)
+        (T1.B) \pincoord(A2,blue,225)
   ;
   %% And that's all, a few crossing lines
   %%
-  \pathcross{B1}{T1.B}{base circ}[4pt]          \draw (Y) +(0,2) node(){N.cross A:\crossT};
-  \pathcross[sec]{X2b}{X1b}{base circ}[6pt]     \draw (Y) +(0,1.6) node(){N.cross B:\secT};
+  \pathcross{A1}{A2}{base circ}[4pt]          \draw (Y) +(0,2) node(){N.cross A:\crossT};
+  \pathcross[sec]{D2}{D1}{base circ}[6pt]     \draw (Y) +(0,1.6) node(){N.cross D:\secT};
 \end{tikzpicture}
 }
 \end{codestore}

Modified: trunk/Master/texmf-dist/tex/latex/tikzdotncross/tikzdotncross.sty
===================================================================
--- trunk/Master/texmf-dist/tex/latex/tikzdotncross/tikzdotncross.sty	2024-01-11 21:27:18 UTC (rev 69381)
+++ trunk/Master/texmf-dist/tex/latex/tikzdotncross/tikzdotncross.sty	2024-01-11 21:27:27 UTC (rev 69382)
@@ -12,7 +12,7 @@
 %%
 %% The Current Maintainer of this work is Alceu Frigeri
 %%
-%% This is version {1.0} {2024/01/02}
+%% This is version {1.1} {2024/01/11}
 %%
 %% The list of files that compose this work can be found in the README.md file at
 %% https://ctan.org/pkg/tikzdotncross
@@ -24,14 +24,12 @@
 %%%==============================================================================
 \NeedsTeXFormat{LaTeX2e}[2022/06/01]
 
-
 \ProvidesExplPackage
     {tikzdotncross}
-    {2024/01/02}
-    {1.0}
+    {2024/01/11}
+    {1.1}
     {Marking coordinates and crossing paths}
 
-\ExplSyntaxOn
 %%%%%%%
 %%%
 %%% Just an attempt of having my packages info in a regular way
@@ -42,32 +40,32 @@
   {
      name        .code:n = {tikzdotncross} ,
      prefix      .code:n = {tikzdotncross} ,
-     date        .code:n = {2024/01/02},
-     version     .code:n = {1.0} ,
-     description .code:n = {Marking coordinates and crossing paths}
-
+     date        .code:n = {2024/01/11},
+     version     .code:n = {1.1} ,
+     description .code:n = {Marking~ coordinates~ and~ crossing~ paths}
   }
-\cs_if_exist:NF \__codedesc_pkg_info:nn 
+\cs_if_exist:NF \PkgInfo 
   {
-    \cs_new_protected:Npn \__codedesc_pkg_info:nn #1#2
-      { \keys_set:nn {#1 / pkg info}{#2} }
-  }
-\cs_if_exist:NF \PkgInfo
-  { \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } }
-\cs_if_exist:NF \PkgDescription
-  { 
+    \NewDocumentCommand \PkgInfo {mm} { \keys_set:nn {#1 / pkg info}{#2} } 
     \NewDocumentCommand \PkgDescription {m} 
-      { 
-        \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par 
-      } 
+      { \noindent Package~ \textbf{\PkgInfo{#1}{name}}~Version:~\PkgInfo{#1}{version}~ -~ \PkgInfo{#1}{date}\par \emph{\PkgInfo{#1}{description}}~\par } 
   }  
 %%%%%%%
 %%% End of cut-n-paste
 %%%%%%%
+
 \ExplSyntaxOff
+
 \makeatletter
 \usetikzlibrary{intersections}
 
+    %%
+    %% There is no easy and clean way 
+    %% to convert this all to expl3 (for instance underscore, under expl3 code regimè, is a letter)
+    %% spaces (pgf/tikz) and then ':' (which is an active character under tikz but a letter for expl3) 
+    %% ... and still being expandable
+    %%
+
   %%%%%%%%%%%%%%%%%%%
   %%%
   %%% This will 'calculate' the intersection between a line (defined by the coordinates (#3) and (#4) and the path named #5
@@ -84,29 +82,46 @@
    \path[name path=#2 self] (#3) -- (#4);
    \draw[name intersections={of={#5} and {#2 self},name=#2,total=\CrossTotal,sort by={#2 self}}] 
       \pgfextra{\csxdef{#2T}{\CrossTotal}}
-      \foreach \aux in {1,...,\CrossTotal}{(#2-\aux) node[minimum size=#6-\pgflinewidth,inner sep=0pt](n#2-\aux){}};  
+      \foreach \aux in {1,...,\csuse{#2T}}{(#2-\aux) node[minimum size=#6-\pgflinewidth,inner sep=0pt](n#2-\aux){}};  
   \tikzmath{%
-    coordinate \Ctmp; real \dx , \dy , \d;
+    coordinate \Ctmp; real \dx , \dy , \d; int \idx;
     \Ctmp{from} = (#3);
     \Ctmp{to} = (#4);
     \dx{tmp} = \Ctmpx{to} - \Ctmpx{from};
     \dy{tmp} = \Ctmpy{to} - \Ctmpy{from};
     \d{ang} = atan2(\dy{tmp},\dx{tmp});
+    \Ctmp{1st} = (n#2-1);
+    \Ctmp{last} = (n#2-\csuse{#2T});
+    \idx{1st} = 1;
+    \idx{last} = \csuse{#2T};
+    \idx{crossing} = 1;
+    if \Ctmpx{1st} == \Ctmpx{from} then {
+      if \Ctmpy{1st} == \Ctmpy{from} then {
+        \idx{1st} = 2; 
+      };
+    };
+    if \Ctmpx{last} == \Ctmpx{to} then {
+      if \Ctmpy{last} == \Ctmpy{to} then {
+        \idx{last} = \idx{last}-1;
+      };
+    };
   }
-  \draw[line width=1.8\pgflinewidth,white,rotate=\d{ang}]
-    \foreach \aux in {1,...,\csuse{#2T}}{(#2-\aux) +(-#6/2,0) arc[start angle=\dotncross@@sign180,end angle=0,radius=#6/2]};
-  \draw[rotate=\d{ang},line cap=round]
-    \foreach \aux in {1,...,\csuse{#2T}}{(#2-\aux) +(-#6/2,0) arc[start angle=\dotncross@@sign180,end angle=0,radius=#6/2]};
-
-  \gdef\dotncross@@tmpA{#3}
-  \gdef\dotncross@@ListA{}
-  \foreach \x in {1,...,\csuse{#2T}} {\xappto{\dotncross@@ListA}{\dotncross@@tmpA/n#2-\x,}\xdef\dotncross@@tmpA{n#2-\x}}
-  \xappto{\dotncross@@ListA}{n#2-\csuse{#2T}/#4}
-  \foreach \xa/\xb in \dotncross@@ListA {\draw[line cap=round] (\xa) -- (\xb);}
+  \ifnum\idx{last}<\idx{1st}
+    \draw (#3) -- (#4);
+  \else
+    \draw[line width=1.8\pgflinewidth,white,rotate=\d{ang}]
+      \foreach \aux in {\idx{1st},...,\idx{last}}{(#2-\aux) +(-#6/2,0) arc[start angle=\dotncross@@sign180,end angle=0,radius=#6/2]};
+    \draw[rotate=\d{ang},line cap=round]
+      \foreach \aux in {\idx{1st},...,\idx{last}}{(#2-\aux) +(-#6/2,0) arc[start angle=\dotncross@@sign180,end angle=0,radius=#6/2]};
+  
+    \gdef\dotncross@@tmpA{#3}
+    \gdef\dotncross@@ListA{}
+    \foreach \x in {\idx{1st},...,\idx{last}} {\xappto{\dotncross@@ListA}{\dotncross@@tmpA/n#2-\x,}\xdef\dotncross@@tmpA{n#2-\x}}
+    \xappto{\dotncross@@ListA}{n#2-\idx{last}/#4}
+    \foreach \xa/\xb in \dotncross@@ListA {\draw[line cap=round] (\xa) -- (\xb);}
+  \fi
  }
 
-
-
   %%%%%%%%%%%%%%%%%%%
   %%%%
   %%%% some handy/auxiliary macros to define coordinate/node pairs (and selectively 'pin' them)
@@ -115,17 +130,11 @@
   %%%% differences: variable number of paramenters (see below) and it always also adds an empty node n<coord>
   %%%%
   %%%%%%%%%%%%%%%%%%%
-
-    %%
-    %% There is no easy and clean way 
-    %% to convert this to expl3 (for instance underscore, under expl3 code regimè, is a letter)
-    %% spaces (pgf/tikz) and then ':' ... and still being expandable
-    %%
 \newcommand\showcoordsfalse{\let\ncoord=\dotncross@@coordnode \let\dotcoord=\dotncross@@dotcoordnode \let\odotcoord=\dotncross@@odotcoordnode}
 \newcommand\showcoordstrue{\let\ncoord=\dotncross@@coordpin \let\dotcoord=\dotncross@@dotcoordpin \let\odotcoord=\dotncross@@odotcoordpin}
 
 \def\dotncross@@coordpin(#1){\pincoord(#1,red,45)}
-\def\dotncross@@coordnode(#1){coordinate(#1)  node(n#1){}}
+\def\dotncross@@coordnode(#1){coordinate(#1)  node[minimum size=1.2pt,inner sep=1.2pt](n#1){}}
 
 \def\dotncross@@dotcoordpin(#1){\dotpincoord(#1,red,45)}
 \def\dotncross@@dotcoordnode(#1){coordinate(#1)  node[circle,minimum size=1.2pt,inner sep=1.2pt,fill](n#1){}}
@@ -132,9 +141,10 @@
 
 \def\dotncross@@odotcoordpin(#1){\odotpincoord(#1,red,45)}
 \def\dotncross@@odotcoordnode(#1){coordinate(#1)  node[circle,minimum size=1.2pt,inner sep=1.2pt,fill=white,draw](n#1){}}
+
     %%%%
     %%
-    %%  And some TeX trickery to have a (expandable) variable number of parameters
+    %%  And some TeX to have a (expandable) variable number of parameters
     %%  \pincoord can be used as
     %%  \pincoord(coord-name) That's case D
     %%  \pincoord(coord-name,color) That's case C
@@ -142,26 +152,17 @@
     %%  \pincoord(coord-name,color,angle,lenght) That's case A
     %%
     %%%%    
-\def\dotncross@@pincase#1,#2,#3,#4,#5#6#7#8#9:{#8:#1:#2:#3:#4:}
+\def\dotncross@@pincasew#1#2{\dotncross@@pincase#1,,,,\dotncross@@pincaseA\dotncross@@pincaseB\dotncross@@pincaseC\dotncross@@pincaseD;#2:}
+\def\dotncross@@pincase#1,#2,#3,#4,#5#6#7#8#9:{#8:#1:#2:#3:#4:#9:}
+\def\dotncross@@pincaseA:#1:#2:#3:#4:#5;#6:{\dotncross@@pincoord{#1}{#2}{#3}{#4}{#6}}
+\def\dotncross@@pincaseB:#1:#2:#3:#4:#5;#6:{\dotncross@@pincoord{#1}{#2}{#3}{4}{#6}}
+\def\dotncross@@pincaseC:#1:#2:#3:#4:#5;#6:{\dotncross@@pincoord{#1}{#2}{-45}{4}{#6}}
+\def\dotncross@@pincaseD:#1:#2:#3:#4:#5;#6:{\dotncross@@pincoord{#1}{blue}{-45}{4}{#6}}
 
-\def\pincoord(#1){\dotncross@@pincase#1,,,,\dotncross@@pincaseA\dotncross@@pincaseB\dotncross@@pincaseC\dotncross@@pincaseD:}
-\def\dotncross@@pincaseA:#1:#2:#3:#4:{\dotncross@@pincoord{#1}{#2}{#3}{#4}{}}
-\def\dotncross@@pincaseB:#1:#2:#3:#4:{\dotncross@@pincoord{#1}{#2}{#3}{4}{}}
-\def\dotncross@@pincaseC:#1:#2:#3:#4:{\dotncross@@pincoord{#1}{#2}{-45}{4}{}}
-\def\dotncross@@pincaseD:#1:#2:#3:#4:{\dotncross@@pincoord{#1}{blue}{-45}{4}{}}
+\def\pincoord(#1){\dotncross@@pincasew{#1}{}}
+\def\dotpincoord(#1){\dotncross@@pincasew{#1}{circle,fill,}}
+\def\odotpincoord(#1){\dotncross@@pincasew{#1}{circle,fill=white,draw,}}
 
-\def\dotpincoord(#1){\dotncross@@pincase#1,,,,\dotncross@@dotpincaseA\dotncross@@dotpincaseB\dotncross@@dotpincaseC\dotncross@@dotpincaseD:}
-\def\dotncross@@dotpincaseA:#1:#2:#3:#4:{\dotncross@@pincoord{#1}{#2}{#3}{#4}{circle,fill,}}
-\def\dotncross@@dotpincaseB:#1:#2:#3:#4:{\dotncross@@pincoord{#1}{#2}{#3}{4}{circle,fill,}}
-\def\dotncross@@dotpincaseC:#1:#2:#3:#4:{\dotncross@@pincoord{#1}{#2}{-45}{4}{circle,fill,}}
-\def\dotncross@@dotpincaseD:#1:#2:#3:#4:{\dotncross@@pincoord{#1}{blue}{-45}{4}{circle,fill,}}
-
-\def\odotpincoord(#1){\dotncross@@pincase#1,,,,\dotncross@@odotpincaseA\dotncross@@odotpincaseB\dotncross@@odotpincaseC\dotncross@@odotpincaseD:}
-\def\dotncross@@odotpincaseA:#1:#2:#3:#4:{\dotncross@@pincoord{#1}{#2}{#3}{#4}{circle,fill=white,draw,}}
-\def\dotncross@@odotpincaseB:#1:#2:#3:#4:{\dotncross@@pincoord{#1}{#2}{#3}{4}{circle,fill=white,draw,}}
-\def\dotncross@@odotpincaseC:#1:#2:#3:#4:{\dotncross@@pincoord{#1}{#2}{-45}{4}{circle,fill=white,draw,}}
-\def\dotncross@@odotpincaseD:#1:#2:#3:#4:{\dotncross@@pincoord{#1}{blue}{-45}{4}{circle,fill=white,draw,}}
-
 \newcommand\dotncross@@pincoord[5]{%
   coordinate(#1) node[#5minimum size=1.2pt,inner sep=1.2pt](n#1){}
   node[circle, #2,  inner sep=1.2pt, outer sep=0pt, radius=1pt, fill=#2!20!white, fill opacity=0.2, draw opacity=0.4, draw,



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