[pstricks] Suggestion for pst-circ

Alan Ristow ristow at ece.gatech.edu
Thu Oct 11 17:31:06 CEST 2007


Hi all,

I recently created a circuit diagram with pst-circ (nice work, by the 
way -- it was far easier than I anticipated). However, I noticed that 
when resistors are drawn with dipolestyle=zigzag the point where the 
resistor and the wire join is not very smooth. I made a minor change to 
\pst at draw@dipole (only a couple of arrow styles from "-" to "-C") and 
find the result much more satisfactory.

My hacked version of \pst at draw@dipole appears below, with my changes 
flagged by a comment. I have no idea whether my change might mess up 
other symbols, but if it does not I would like to suggest that 
Christophe and/or Herbert incorporate it into the package. (I also note 
that I only changed the arrow styles for two of the \pcline commands 
after the final \else, so the code for parallel circuits still needs 
updating and testing.)

Just an idea I thought I'd share....

Alan


     \def\pst at draw@dipole#1#2#3#4#5{%
       \psset{dimen=middle}%
       \psset{#1}%
       \if\psk at I@label\@empty\else\psset{intensity=true}\fi
       \if\psk at tension@label\@empty\else\psset{tension=true}\fi
       \ifx\psk at Dconvention\pst at Dconvention@generator
         \Pst at Dconventiontrue
       \else
         \ifx\psk at Dconvention\pst at Dconvention@receptor
           \Pst at Dconventionfalse
         \fi
       \fi
       \pcline[arrows=-,linestyle=none,fillstyle=none](#2)(#3)
       \ncput[nrot=:U]{\pnode{dipole at M}}
       \ifPst at parallel
         \pcline[arrows=-,linestyle=none,fillstyle=none](#2)(dipole at M)
         \ncput[npos=\psk at parallel@sep]{\pnode{dipole@@1}}
         \pcline[arrows=-,linestyle=none,fillstyle=none](#3)(dipole at M)
         \ncput[npos=\psk at parallel@sep]{\pnode{dipole@@2}}
 
\pcline[arrows=-,linestyle=none,fillstyle=none,offset=\psk at parallel@arm](dipole@@1)(dipole@@2)
         \ncput[npos=0]{\pnode{dipole@@@1}}
         \ncput[npos=1]{\pnode{dipole@@@2}}
         \ncput[nrot=:U]{#5}
         \pcline[arrows=-](dipole@@1)(dipole@@@1)
         \pcline[arrows=-](dipole@@@1)(dipole at 1)
         \pcline[arrows=-](dipole at 2)(dipole@@@2)
         \pcline[arrows=-](dipole@@@2)(dipole@@2)
         \ifPst at parallel@node
           \pscircle*(dipole@@1){2\pslinewidth}
           \pscircle*(dipole@@2){2\pslinewidth}
         \fi
 
\pcline[arrows=-,linestyle=none,fillstyle=none,offset=\psk at label@offset](dipole@@@1)(dipole@@@2)
         \ncput[nrot=\psk at label@angle]{#4}
         \pst at intensity{dipole@@@1}{dipole@@@2}
         \pst at tension{dipole@@@1}{dipole@@@2}
       \else
         \ncput[nrot=:U]{#5}
 
\pcline[arrows=-,linestyle=none,fillstyle=none,offset=\psk at label@offset](#2)(#3)
         \ncput[nrot=\psk at label@angle]{#4}
         %%%
         % CHANGES HERE!!!
         %%%
         \pcline[arrows=-C](#2)(dipole at 1)
         \pcline[arrows=C-](dipole at 2)(#3)
         \pcline[linestyle=none](#2)(#3)
         \pst at intensity{#2}{#3}
         \pst at tension{#2}{#3}
       \fi
     }




More information about the PSTricks mailing list