<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div class="BodyFragment"><font size="2"><span style="font-size:10pt;">
<div class="PlainText">I have used optional arguments before, but am stumped concerning my error here.  I am trying to draw edges in a braid diagram which are colored according to different criteria.  The initial setup is a psmatrix which has vertices labelled
 Vmn;  m denotes the “level” (not necessarily the row number in the matrix) and n is the “strand” number (the graph is such that except for the initial and final levels every vertex has one incoming and one outgoing edge, so that it is a union of disjoint edge
 paths—each such path is a “strand”).  <br>
<br>
The basic edge-drawing macro joins the vertex Vmn to V(m+1)n via \cross{m}{m+1}{n}:<br>
> \newcommand{\cross}[3]{\ncline{V#1#3}{V#2#3}}%#1=level, #2=#1+1, #3=strand <br>
To get over-and under-crossings I designate the overcrossing edge last, and use the above with a border added:<br>
> \newcommand{\ocross}[3]{\ncline[border=3pt]{V#1#3}{V#2#3}}%overcross (same data).<br>
<br>
<br>
These commands produce black edges.  However, sometimes I want to color each strand a different color.<br>
The following allows the color to be automatically determined by the strand number:<br>
> <br>
> \def\strandcolor#1{%<br>
>        \ifcase#1 %<br>
>                \or lightblue%<br>
>                        \or red%<br>
>                                \or blue%<br>
>                                        \or purple%<br>
>                                                \or green%<br>
>        \fi}<br>
> <br>
However, when I have several braid diagrams in the same picture, I may want some correlation between the colors of strands in one braid diagram and another.  So I have the general purpose colored edge drawing macros (essentially the two defined above with added
 data on line color):<br>
> \newcommand{\ColoredEdge}[4][black]{\ncline[linecolor=#1]{V#2#4}{V#3#4}}%Basic colored edge: #1=color, #2= start level, #3=end level, #4=vertices<br>
> <br>
> \newcommand{\ColoredOverEdge}[4][black]{\ncline[linecolor=#1, border=3pt]{V#2#4}{V#3#4}}%Colored Overcross Edge: #1=color, #2= start level, #3=end level, #4=vertices.  This should follow any undercross.<br>
> <br>
If I have one braid diagram, then the following color its edges automatically according to strand number:<br>
> \newcommand{\ccross}[3]{\ColoredOverEdge[\strandcolor{#3}]{#1}{#2}{#3}}%#1=level, #2=#1+1, #3=strand=color(automatic via strandcolor)<br>
> \newcommand{\cocross}[3]{\ColoredEdge[\strandcolor{#3}]{#1}{#2}{#3}}%#1=level, #2=#1+1, #3=strand=color(automatic via strand color)<br>
whereas if I want to have two braid diagrams in the same pspicture for which correspondingly numbered strands<br>
have the same color, I use<br>
> \newcommand{\colcross}[4]{\ColoredEdge[\strandcolor{#4}]{#1}{#2}{#3}}%#1=level, #2=#1+1, #3=strand,#4=color<br>
> \newcommand{\colocross}[4]{\ColoredOverEdge[\strandcolor{#4}]{#1}{#2}{#3}%overcross (same data)<br>
<br>
(and sometimes I just specify the color “by hand”.<br>
<br>
My problem is that I keep getting an error message when I use these definitions (earlier versions *not* using the \ColoredEdge or \ColoredOverEdge macros seemed to work fine) and I can’t find the error.  I have attached a “minimal” example which exhibits this
 behavior, as well as the .log file for the run:<br>
<br>
</div>
</span></font></div>
<div class="BodyFragment"><font size="2"><span style="font-size:10pt;">
<div class="PlainText"><br>
<br>
</div>
</span></font></div>
</body>
</html>