% Eingabe der Definitionen fuer die latexdraw-Bilder % Basis der Makros ist pstricks % Stand 21.1.98/14.9.96 ab latexdraw V5.5 % to be used with dvips % Siegert, TUM \expandafter\ifx\csname LTDsty\endcsname\relax %skip all if latexdraw.sty is already defined \typeout{pst-latexdraw.sty fuer dvips, Stand: 21.1.1998} \def\LTDsty{} \makeatletter \input{pstricks.tex} \makeatletter \renewenvironment{picture}{\psset{unit=\unitlength}\pspicture}{\endpspicture} %---------------------------------------------------------------------- % Definition der Farben fuer pstricks sollen wie frueher % in PSlatexdraw.sty bleiben, daher erfolgt setzen einer Farbe % statt mit setfarbe jetzt mit SetColor! % Definition fuer \sg@ und \sc@ sind leer % Farbe oder Grauwert wird fuer pstricks in Farbe SCOLOR definiert %---------------------------------------------------------------------- \def\colorwert#1{#1} %Anmerkung: Durch setfarbe Makro farbe definiert \def\SetColor#1{\setfarbe{#1}\ifnum#1<11\newgray{SCOLOR}{\colorwert{\farbe}} \else\newrgbcolor{SCOLOR}{\colorwert{\farbe}}\fi \psset{fillcolor=SCOLOR,linecolor=SCOLOR}\SCOLOR} % Definition der Farben fuer latexdraw % Stand 17.9.93/13.5.95 Siegert, TUM \typeout{Farben fuer dvips, Stand:13.5.1995} \newcommand{\farbe}{} \newcommand{\sg@}{} % frueher { setgray } \newcommand{\sc@}{} % frueher { setrgbcolor } \newcommand{\setfarbe}[1]{\renewcommand{\farbe}{% \ifnum #1<0 0 \sg@ \else \ifcase #1 0 \sg@ \or%black 1 \sg@ \or%white .9 \sg@ \or%gray90 .8 \sg@ \or%gray80 .7 \sg@ \or%gray70 .6 \sg@ \or%gray60 .5 \sg@ \or%gray50 .4 \sg@ \or%gray40 .3 \sg@ \or%gray30 .2 \sg@ \or%gray20 .1 \sg@ \or%gray10 1.00 0.00 0.00 \sc@ \or% 255 0 0 red1 1.00 0.65 0.00 \sc@ \or% 255 165 0 orange1 1.00 0.51 0.28 \sc@ \or% 255 130 71 sienna1 1.00 0.84 0.00 \sc@ \or% 255 215 0 gold1 1.00 1.00 0.00 \sc@ \or% 255 255 0 yellow 0.50 1.00 0.00 \sc@ \or% 127 255 0 chartreuse1 0.00 1.00 0.00 \sc@ \or% 0 255 0 green 0.00 1.00 0.50 \sc@ \or% 0 255 127 SpringGreen1 0.00 1.00 1.00 \sc@ \or% 0 255 255 cyan 0.00 0.00 1.00 \sc@ \or% 0 0 255 blue 0.75 0.24 1.00 \sc@ \or% 191 62 255 DarkOrchid1 1.00 0.51 0.98 \sc@ \or% 255 131 250 orchid1 1.00 0.00 1.00 \sc@ \or% 255 0 255 magenta 0.80 0.00 0.00 \sc@ \or% 205 0 0 red3 0.80 0.52 0.00 \sc@ \or% 205 133 0 orange3 0.93 0.23 0.23 \sc@ \or% 238 59 59 brown2 0.93 0.60 0.00 \sc@ \or% 238 154 0 orange2 0.80 0.80 0.00 \sc@ \or% 205 205 0 yellow3 0.40 0.80 0.00 \sc@ \or% 102 205 0 chartreuse3 0.00 0.80 0.00 \sc@ \or% 0 205 0 green3 0.00 0.80 0.40 \sc@ \or% 0 205 102 SpringGreen3 0.00 0.80 0.80 \sc@ \or% 0 205 205 cyan3 0.00 0.00 0.80 \sc@ \or% 0 0 205 blue3 0.60 0.20 0.80 \sc@ \or% 154 50 205 DarkOrchid3 0.80 0.41 0.79 \sc@ \or% 205 105 201 orchid3 0.80 0.00 0.80 \sc@ \or% 205 0 205 magenta3 1.00 0.89 0.88 \sc@ \or% 255 228 225 MistyRose1 1.00 0.85 0.73 \sc@ \or% 255 218 185 PeachPuff1 1.00 0.76 0.76 \sc@ \or% 255 193 193 RosyBrown1 1.00 0.96 0.56 \sc@ \or% 255 246 143 khaki1 1.00 1.00 0.88 \sc@ \or% 255 255 224 LightYellow1 1.00 0.91 0.73 \sc@ \or% 255 231 186 wheat1 0.96 1.00 0.98 \sc@ \or% 245 255 250 MintCream 0.60 1.00 0.60 \sc@ \or% 154 255 154 PaleGreen1 0.88 1.00 1.00 \sc@ \or% 224 255 255 LightCyan1 0.75 0.94 1.00 \sc@ \or% 191 239 255 LightBlue1 1.00 0.88 1.00 \sc@ \or% 255 225 255 thistle1 1.00 0.73 1.00 \sc@ \or% 255 187 255 plum1 1.00 0.94 0.96 \sc@ \or% 255 240 245 LavenderBlush1 0.73 1.00 1.00 \sc@ \or% 187 255 255 PaleTurquoise1 0.76 1.00 0.76 \sc@ \or% 193 255 193 DarkSeaGreen1 0.50 1.00 0.83 \sc@ \or% 127 255 212 aquamarine1 0.00 0.75 1.00 \sc@ \or% 0 191 255 DeepSkyBlue1 0.51 0.44 1.00 \sc@ \or% 131 111 255 SlateBlue1 0.88 0.40 1.00 \sc@ \or% 224 102 255 MediumOrchid1 1.00 0.42 0.42 \sc@ \or% 255 106 106 IndianRed1 1.00 0.08 0.58 \sc@ \or% 255 20 147 DeepPink1 1.00 0.25 0.25 \sc@ \else% 255 64 64 brown1 0 0 0 \sc@ \fi\fi}% } %---------------------------------------------------------------------- % Kommandos fuer Fontdefinitionen %---------------------------------------------------------------------- \newcommand{\Fnormal}{\normalsize} \newfont{\FVIpt}{cmr6 scaled 1000} \newfont{\FVIIIpt}{cmr8 scaled 1000} \newfont{\FXpt}{cmr10 scaled 1000} \newfont{\FXIIpt}{cmr12 scaled 1000} \newfont{\FXIVpt}{cmr12 scaled\magstep1} \newfont{\FXVIIIpt}{cmr12 scaled\magstep2} \newfont{\FVIbpt}{cmbx6 scaled 1000} \newfont{\FVIIIbpt}{cmbx8 scaled 1000} \newfont{\FXbpt}{cmbx10 scaled 1000} \newfont{\FXIIbpt}{cmbx12 scaled 1000} \newfont{\FXIVbpt}{cmbx12 scaled\magstep1} \newfont{\FXVIIIbpt}{cmbx12 scaled\magstep2} \newfont{\FVIipt}{cmti7 at 6pt} \newfont{\FVIIIipt}{cmti8 scaled 1000} \newfont{\FXipt}{cmti10 scaled 1000} \newfont{\FXIIipt}{cmti12 scaled 1000} \newfont{\FXIVipt}{cmti12 scaled\magstep1} \newfont{\FXVIIIipt}{cmti12 scaled\magstep2} %---------------------------------------------------------------------- % Neuer Name fuer Definition von rput in pstricks %---------------------------------------------------------------------- \let\pst@rput=\rput % %---------------------------------------------------------------------- % Definition des Macros `rput' \rput[winkel](x_pos,y_pos){Bildobjekt} % Dieses gibt an der Stelle (x_pos,y_pos) das um den Winkel `winkel' % gedrehte Bildobjekt aus. Winkel in Radian. % Der Drehwinkel ist dabei im mathematische positivem Drehsinn in Bogenmass % anzugeben. %---------------------------------------------------------------------- \def\rput[#1](#2,#3)#4{\put(#2,#3){\degrees[-6.28319]\pst@rput[lB]{#1}(0,0){\mbox{#4}}}} % %---------------------------------------------- % Definition der Macros `rputc' % \rputc[winkel](x_pos,y_pos){Farbe}{Bildobjekt} % und 'putc' % \putc(x_pos,y_pos){Farbe}{Bildobjekt} %---------------------------------------------- \SetColor{0} \def\rputc[#1](#2,#3)#4#5{\rput[#1](#2,#3){{\SetColor{#4}#5}}} \def\putc(#1,#2)#3#4{\put(#1,#2){{\SetColor{#3}#4}}} %--------------------------------------------------- % Makros fuer die Pfeile: %\eepicvarpfeile{xa,xe}{drehwinkel radian}{linewidth} % werden nicht mehr direkt von LaTeX aus aufgerufen % Aufruf nur noch ueber aLdPfeil oder eLdPfeil % xa, ya: Position der Pfeilspitze % Drehwinkel in Radian % linewidth (ganze Zahl) in \unitlength % % \aLdPfeil{xa,xe}{drehwinkel radian}{linewidth} % wobei der Pfeil am Anfang des Elementes ist % \eLdPfeil{xa,xe}{drehwinkel radian}{linewidth} % wobei der Pfeil am Ende des Elementes ist %--------------------------------------------------- \def\eepicpfeile#1#2#3#4{\ifdim\@wholewidth<0.5pt\eepicvarpfeile{#1}{#2}{1} \else\eepicvarpfeile{#1}{#2}{3}\fi} \def\eepicvarpfeile#1#2#3{\put(#1){\StdPfeil{\LdLineWidth}{#2}}} \def\StdPfeil#1#2{\pscustom{\code{#1 .27 mul .6 add dup scale #2 -180 mul 3.14159 div rotate newpath 0 0 moveto -8 3 lineto -6 0 lineto -8 -3 lineto fill}}} \let\aLdPfeil\eepicvarpfeile \let\eLdPfeil\eepicvarpfeile %---------------------------------------------------------------------- % Definition \getpslinetype{linetype} % latexdraw-internes Makro % stellt gleichzeitig auch Linienstaerke ein! % SLW steht in pstricks fuer setlinewidth % CLW steht in pstricks fuer currentlinewidth % wird anstelle \LdLineWidth bei dashed, ... verwendet %---------------------------------------------------------------------- \newcommand{\getpslinetype}[1]{\LdLineWidth SLW \ifcase #1 % \getsolid \or% 0 \getsolid \or% 1 \getsolid \or% 2 \getdotted{CLW} \or% 3 \getsolid \or% 4 \getdashed{CLW} \or% 5 \getsolid \or% 6 \getdashdotted{CLW} \fi %7 } % % %---------------------------------------------------------------------- % \getsolid % \getdashdotted{linewidth in pt} % \getdashed{linewidth in pt} % \getdotted{linewidth in pt} % latexdraw-interne Makros zur Definition der Postscriptsequenzen fuer % die obigen Linientypen % currentlinewidth ist in pstricks mit CLW abgekuerzt %---------------------------------------------------------------------- \def\getsolid{[] 0 setdash} \def\getdashdotted#1{1 setlinecap [#1 2 #1 div add 2.5 mul dup .6 mul dup 1 exch] 0 setdash} \def\getdashed#1{1 setlinecap [#1 2 #1 div add 2.5 mul dup .6 mul] 0 setdash} \def\getdotted#1{1 setlinecap [1 #1 2 #1 div add 1.5 mul] 0 setdash} % % %---------------------------------------------------------------------- % \bezier[linientyp](x1,y1)(x2,y2)(x3,y3) % \LdpBezier{lineende}(ox1,oy1)(ox2,oy2)(ox3,oy3) % [linientyp](x0,y0)(x1,y1)(x2,y2)(x3,y3) % (0,0)(ox1,oy1)(ox2,oy2)(ox3,oy3) sind die Original-Stuetzpunkte % (x0,y0)(x1,y1)(x2,y2)(x3,y3) sind wegen Pfeilen modifizierte Punkte %---------------------------------------------------------------------- \def\bezier{\@ifnextchar [{\@bezierltnull}{\@bezierltnull[1]}} \def\@bezierltnull[#1]{\@@bezier{\getpslinetype{#1}}(0,0)} \def\@bezierlt[#1]{\@@bezier{\getpslinetype{#1}}} \def\LdpBezier#1(#2)(#3)(#4){\@bezierlt} %\def\@@bezier#1(#2,#3)(#4,#5)(#6,#7)(#8,#9){\pscustom{\code{newpath #1} %\psbezier(#2,#3)(#4,#5)(#6,#7)(#8,#9)\code{stroke}}} \def\@@bezier#1(#2,#3)(#4,#5)(#6,#7)(#8,#9){\pscustom{\code{newpath #1} \coor(#2,#3)\code{moveto}\coor(#4,#5)(#6,#7)(#8,#9)\code{curveto stroke}}} %---------------------------------------------------------------------- % \beziergef(x1,y1)(x2,y2)(x3,y3) % gefuellte Bezier-Kurve %---------------------------------------------------------------------- \def\beziergef(#1,#2)(#3,#4)(#5,#6){\psbezier*(0,0)(#1,#2)(#3,#4)(#5,#6)} %---------------------------------------------- % gef"ulltes Dreieck und Viereck %---------------------------------------------- \def\gefdreieck(#1,#2)(#3,#4){\pspolygon*(0,0)(#1,#2)(#3,#4)} \def\gefviereck(#1,#2)(#3,#4)(#5,#6){\pspolygon*(0,0)(#1,#2)(#3,#4)(#5,#6)} %---------------------------------------------------------------------- % Kreise und Kreisboegen (werden auf Ellipsen abgebildet): % \circle[linientyp]{2*r} % \circle{2*r} % \circle*{2*r} % \arc{2*r}{wa}{we} % \arc[linientyp]{2*r}{wa}{we} % \LdpArc{lineende}{owa}{owe}[linientyp]{2*r}{wa}{we} % r ist der Radius % wa, we sind Anfangs- und Endwinkel nach TeX % owa,owe sind unverkuerze (Original) Anfangs- und Endwinkel nach TeX %---------------------------------------------------------------------- \def\circle{\@ifstar{\@fillcircle}{\@Circle}} \def\@fillcircle#1{\@fillellipse{#1}{#1}} \def\@Circle{\@ifnextchar [{\@ldcircle}{\@circle}} \def\@circle#1{\ellipse{#1}{#1}} \def\@ldcircle[#1]#2{\ellipse[#1]{#2}{#2}} \def\arc{\@ifnextchar [{\@ldarc}{\@arc}} \def\@ldarc[#1]#2#3#4{\ellarc[#1]{#2}{#2}{#3}{#4}} \def\@arc#1#2#3{\ellarc{#1}{#1}{#2}{#3}} \def\LdpArc#1#2#3{\arc} %---------------------------------------------------------------------- % Ellipsen und Ellipsenboegen: % \ellipse[linientyp]{2*a}{2*b} % \ellipse{2*a}{2*b} % \ellipse*{2*a}{2*b} % \ellarc{2*a}{2*b}{wa}{we} % \ellarc[linientyp]{2*a}{2*b}{wa}{we} % \LdpEllarc{lineende}{otexwa}{otexwe}[linientyp]{2*a}{2*b}{wa}{we} % a ist grosse Achse, b kleine Achse % wa, we sind Anfangs- und Endwinkel nach TeX % owa,owe sind unverkuerze (Original) Anfangs- und Endwinkel nach TeX %---------------------------------------------------------------------- \def\ellipse{\@ifstar{\@fillellipse}{\@Ellipse}} \def\@fillellipse#1#2{\pscustom{\code{newpath}\dim{#1}\dim{#2}% \code{scale 0 0 .5 0 360 arc 1}\dim{#1}\code{div 1}\dim{#2} \code{div scale fill}}} \def\@Ellipse{\@ifnextchar [{\@ldellipse}{\@ldellipse[1]}} \def\@ldellipse[#1]#2#3{\@@ldellipse{\getpslinetype{#1}}{#2}{#3}} \def\@@ldellipse#1#2#3{\pscustom{\code{#1} \dim{#2}\dim{#3}\code{scale 0 0 .5 0 360 arc 1}\dim{#2}\code{div 1}\dim{#3}\code{div scale closepath stroke}}} \def\ellarc{\@ifnextchar [{\@ldellarc}{\@ldellarc[1]}} \def\@ldellarc[#1]#2#3#4#5{\@@ldellarc{\getpslinetype{#1}}{#2}{#3}{#4}{#5}} \def\@@ldellarc#1#2#3#4#5{\pscustom{\code{newpath #1} \dim{#2}\dim{#3} \code{scale 0 0 .5 #5 -3.14159 div 180 mul} \code{#4 -3.14159 div 180 mul arc 1} \dim{#2}\code{div 1}\dim{#3}\code{div scale stroke}}} \def\LdpEllarc#1#2#3{\ellarc} %---------------------------------------------- %% gefuellte Tortenscheiben %Parameter: grosse Achse (Durchmesser beim Kreis), %kleine Achse (Durchmesser beim Kreis), Anfangs- und Endwinkel in Grad %---------------------------------------------- \newcommand{\pieslice}[4]{\pscustom{\code{newpath 0 0 moveto}% \dim{#1}\dim{#2}\code{scale 0 0 .5 #3 #4 arc 1}% \dim{#1}\code{div 1}\dim{#2}\code{div scale fill}}} %---------------------------------------------------------------------- % \ldline[linientyp](x1,y1)(x2,y2) % verwendet fuer Linien ohne Pfeile oder cap_projecting %---------------------------------------------------------------------- \def\ldline{\@ifnextchar [{\@ldlinelt}{\@ldlinelt[1]}} \def\@ldlinelt[#1]{\@@ldlinelt{\getpslinetype{#1}}} \def\@@ldlinelt#1(#2,#3)(#4,#5){\pscustom{\newpath\code{#1}\moveto(#2,#3)\lineto(#4,#5)\code{stroke}}} %---------------------------------------------------------------------- % \ldcpline[linientyp](x1,y1)(x2,y2) % Fuer Linien, die ein CapProjecting--Ende (in Postscript Typ 2) haben % nur bei solid lines!!! %---------------------------------------------------------------------- \def\ldcpline{\@ifnextchar [{\@ldcplinelt}{\@ldcplinelt[1]}} \def\@ldcplinelt[#1]{\@@ldcplinelt{\getpslinetype{#1}}} \def\@@ldcplinelt#1(#2,#3)(#4,#5){\pscustom{\newpath \code{2 setlinecap #1} \moveto(#2,#3)\lineto(#4,#5)\code{stroke}}} %---------------------------------------------------------------------- % \LdpLine{lineende}{(x2,y2)}[linientyp](x1r,y1r)(x2r,y2r) % wird verwendet bei Linien mit Pfeilen, % (x1r,y1r)(x2r,y2r) sind die verkuerzten Koordinaten, % (0,0)(x2,y2) sind unverkuerzte Koordinaten der Linie %---------------------------------------------------------------------- \def\LdpLine#1#2{\@ldlinelt} %---------------------------------------------------------------------- % \ldlinewidt{linewidth}{linewidth in pt} % linewidth ist ganze Zahl 1, 2, .... % linewidth in pt ist GP-Zahl, von latexdraw berechnet, wird % nachfolgend immer nur verwendet! % Makro \LdLineWidth enthaelt Postscriptformel zur Berechnung der % Linienstaerke fuer die Postscript-Ausgabe (in pt). % % Normalerweise ist die Formel in \LdLineWidth einfach der zweite % Parameter aus \ldlinewidt % F"ur Folien wird jedoch die Linienstaerke automatisch erhoeht, damit % die Zeichnung f"ur normale Dokumente und f"ur Folien nicht % ver"andert, allenfalls skaliert, werden muss. % Die Striche werden nicht linear verbreitert. Formel dafuer in % \@widthmodb % Blanks am Ende von Makros wegen Postscript notwendig!!! %---------------------------------------------------------------------- \newcommand{\@widthmoda}{ } \newcommand{\@widthmodb}{dup 1 exch div 1.4 add mul } \newcommand{\@widthmod}{\@widthmoda} \newcommand{\LdLineWidth}{ } \newcommand{\ldlinewidth}[2]{\renewcommand{\LdLineWidth}{#2 \@widthmod}} %-------------------------------------------------------- % Fuer Zeichnungen auf Folien sollen die Striche automatisch dicker % gezeichnet werden, ohne dass die urspr"ungliche Zeichnung ver"andert % werden muss. Dazu kann \ThickLines im LaTeX-Dokument % aufgerufen werden. Durch den Aufruf \NormalLines wird wieder die % urspr"ungliche Strichstaerke verwendet %-------------------------------------------------------- \newcommand{\ThickLines}{\renewcommand{\@widthmod}{\@widthmodb}} \newcommand{\NormalLines}{\renewcommand{\@widthmod}{\@widthmoda}} %---------------------------------------------------------------------- % nachfolgende Definitionen % nur noch wegen Kompatibilitaet zu alten Versionen von latexdraw %---------------------------------------------------------------------- \newsavebox{\Pthinpunkt} \savebox{\Pthinpunkt}(0,0){$\cdot$} \newsavebox{\Pthickpunkt} \savebox{\Pthickpunkt}(0,0){ \begin{picture}(0,0) \setlength{\unitlength}{1mm} \put(0,0){\circle*{1}} \end{picture}} % Parameter fuer Pvarpunkt % 1: Drehwinkel in Radian % 2: Linienstaerke in unitlength \newcommand{\Pvarpunkt}[2]{\begin{picture}(0,0)\relax \rput[#1](0,0){\rule{#2\unitlength}{#2\unitlength}}\relax \end{picture}} \def\drawline(#1)(#2){\ldline[1](#1)(#2)} \def\dottedline#1(#2)(#3){\ldline[3](#2)(#3)} \def\dashline#1{\@ifnextchar [{\dashdottedline}{\ldline[5]}} \def\dashdottedline[#1](#2)(#3){\ldline[7](#2)(#3)} \def\thinlines{\ldlinewidth{1}{.57}} \def\thicklines{\ldlinewidth{2}{1.14}} \def\Thicklines{\ldlinewidth{3}{1.71}} %-------------------------------------------------------- % end latexdraw.sty fuer pstricks und dvips %-------------------------------------------------------- \fi% closing ifx at the beginning