summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/gastex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-01-10 22:50:08 +0000
committerKarl Berry <karl@freefriends.org>2007-01-10 22:50:08 +0000
commit35d6860f8d0a3dc99e81eb2646f8e55c45aab0f2 (patch)
tree869200b5777b231ca0668f7e5ec7909f817bad90 /Master/texmf-dist/doc/latex/gastex
parentb4d039f81c7fdbc1a98b2f44b2444543ead926db (diff)
new latex package gastex (28nov06)
git-svn-id: svn://tug.org/texlive/trunk@3316 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/gastex')
-rw-r--r--Master/texmf-dist/doc/latex/gastex/README57
-rw-r--r--Master/texmf-dist/doc/latex/gastex/ex-beamer-gastex.tex107
-rwxr-xr-xMaster/texmf-dist/doc/latex/gastex/ex-gastex.tex469
3 files changed, 633 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/gastex/README b/Master/texmf-dist/doc/latex/gastex/README
new file mode 100644
index 00000000000..1f14e8cb6d2
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/gastex/README
@@ -0,0 +1,57 @@
+This is the README file for gastex package.
+
+GasTeX: Graphs and Automata Simplified in TeX
+
+GasTeX is a set of LaTeX macros which allow to draw very easily graphs,
+automata, nets, diagrams, etc... under the picture environment of LaTeX.
+
+Author:
+-------
+Paul Gastin <http://www.lsv.ens-cachan.fr/~gastin>
+
+Copyright: 2006 by Paul Gastin
+----------
+This program can be redistributed and/or modified under the terms
+of the LaTeX Project Public License Distributed from CTAN
+archives in directory macros/latex/base/lppl.txt.
+
+Installation:
+-------------
+In order to use gastex you only need two files:
+- gastex.sty which contains the definition of all the LaTeX macros (this file
+could be in your working folder or where other .sty files are).
+- gastex.pro which contains all the postscript procedures (this file could
+be in your working folder but it is best placed where the tex.pro file is).
+
+Usage: latex+dvips(+ps2pdf)
+------
+- Compile the source file with latex (not pdflatex) and generate the ps file
+with dvips. One may then use ps2pdf to get a pdf file.
+
+Remarks:
+--------
+- gastex mainly generates postscript code so the pictures cannot be seen with a
+dvi-viewer. One has to generate a ps file (latex+dvips) and view it with a
+ps-viewer. One can also generate a pdf file (latex+dvips+ps2pdf) and view
+it with a pdf-viewer.
+- gastex does not work with pdflatex since it produces postscript code
+which cannot be interpreted by a pdf viewer. Instead, one should generate
+the pdf file with latex+dvips+ps2pdf.
+
+Examples:
+---------
+- Several examples are provided on the gastex web page at
+http://www.lsv.ens-cachan.fr/~gastin/gastex/gastex.html
+- ex-gastex.tex contains some examples to learn gastex and to test your
+installation.
+- ex-beamer-gastex.tex shows how gastex may be used with beamer in order to
+produce very nice animated slides. You have to compile the file through
+latex-dvips-ps2pdf (not pdflatex).
+
+Documentation:
+--------------
+See http://www.lsv.ens-cachan.fr/~gastin/gastex/gastex.html
+The best is to learn with the examples (see above).
+Comments in the file gastex.sty provide documentation for all macros.
+
+Enjoy! \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/gastex/ex-beamer-gastex.tex b/Master/texmf-dist/doc/latex/gastex/ex-beamer-gastex.tex
new file mode 100644
index 00000000000..d35ab955a4c
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/gastex/ex-beamer-gastex.tex
@@ -0,0 +1,107 @@
+% \documentclass[10pt,mathserif,handout]{beamer}
+\documentclass[10pt,mathserif,display]{beamer}
+\usepackage{gastex}
+\gasset{linewidth=0.21,AHdist=2.1,AHLength=2.25,AHlength=2.1}
+\gasset{ATdist=2.1,ATLength=2.25,ATlength=2.1}
+% \usepackage{beamerthemeEPIT}
+\usepackage{beamerthemeplain}
+
+\beamersetleftmargin{3mm}
+\beamersetrightmargin{3mm}
+\abovedisplayskip=1ex
+\belowdisplayskip=1ex
+\parskip=.5ex
+\parindent=0pt
+
+\newcommand{\Auto}{\mathcal{A}}
+\newcommand{\F}{\mathop{\mathsf{F}\vphantom{a}}\nolimits}
+\newcommand{\G}{\mathop{\mathsf{G}\vphantom{a}}\nolimits}
+\newcommand{\X}{\mathop{\mathsf{X}\vphantom{a}}\nolimits}
+\newcommand{\True}{\top}
+\newcommand{\False}{\bot}
+
+\newcommand{\Blue}[1]{\textcolor{blue}{#1}}
+\newcommand{\Red}[1]{\textcolor{red}{#1}}
+\newcommand{\Green}[1]{\textcolor{PineGreen}{#1}}
+
+\begin{document}
+
+
+%%%%%%%%%%%%%%%%%%%%%%
+\frame{
+ \frametitle{Automaton $\Auto_\varphi$}
+ \vspace{-7mm}
+ \begin{center}\scalebox{0.9}{
+ \begin{picture}(130,71)(-12,0)\nullfont
+% \put(-12,0){\framebox(130,71){}}
+ \gasset{Nadjust=w,Nadjustdist=2,Nh=8,fillcolor=White,Nfill=y,ilength=7}
+ {\only<7-| handout:0>{\gasset{fillcolor=yellow}}
+ \node[Nmarks=i](1)(10,45){$\varphi=\G(\neg p\vee\F q)$}}
+ \node(2)(10,25){$\neg p\vee\F q, \X\varphi$}\drawedge(1,2){}
+ \node(3)(10,05){$\neg p, \X\varphi$}\drawedge(2,3){}
+ \node(4)(40,25){$\F q, \X\varphi$}\drawedge(2,4){}
+ \node(5)(40,45){$q, \X\varphi$}\drawedge(4,5){}
+ \node(6)(40,05){$\X\F q, \X\varphi$}\drawedge(4,6){\Blue{$\F q$}}
+
+ \only<2->{
+ \only<2| handout:0>{\gasset{linecolor=Red}}
+ \drawedge[curvedepth=15](3,1){$\neg p$}
+ \drawedge[ELside=r,ELpos=35](5,1){$q$}
+ {\only<7-| handout:0>{\gasset{fillcolor=yellow}}
+ \node(7)(70,05){$\F q, {\only<3| handout:0>{\color{red}}\varphi}$}}
+ \drawedge(6,7){$\True$}
+ }
+ \only<3->{
+ \only<3| handout:0>{\gasset{linecolor=Red}}
+ \node(8)(70,25){$\F q,
+ {\only<3-4| handout:0>{\color{red}}\neg p\vee\F q},
+ {\only<3| handout:0>{\color{red}}\X\varphi}$}
+ \drawedge(7,8){}
+ }
+ \only<4->{
+ \only<4| handout:0>{\gasset{linecolor=Red}}
+ \node(9)(70,45){${\only<5| handout:0>{\color{red}}\F q},
+ {\only<4| handout:0>{\color{red}}\neg p},
+ \X\varphi$}
+ \drawedge[ELpos=55](8,4){}
+ \drawedge(8,9){}
+ }
+ \only<5->{
+ \node(10)(105,25){${\only<5| handout:0>{\color{red}}\X\F q},
+ \neg p, \X\varphi$}
+ \node(11)(40,65){${\only<5| handout:0>{\color{red}}q},
+ \neg p, \X\varphi$}
+ \only<5| handout:0>{\gasset{linecolor=Red}}
+ \drawedge(9,10){\Blue{$\F q$}}
+ \drawedge(9,11){}
+ }
+ \only<6->{
+ \only<6| handout:0>{\gasset{linecolor=Red}}
+ \drawedge(10,7){$\neg p$}
+ \drawedge[ELside=r](11,1){$\neg p\wedge q$}
+ }
+ \only<7->{\put(18,18){
+% \drawrect(58,33,100,53)
+ \gasset{loopdiam=5,Nw=7,Nh=7}
+ \gasset{fillcolor=yellow}
+ \node[Nmarks=i,ilength=5](A)(72,40){1}
+ \node(B)(92,40){2}
+ \drawedge[curvedepth=2,linecolor=blue](A,B){$\True$}
+ \drawedge[curvedepth=2](B,A){$q$}
+ \only<7>{\drawedge[curvedepth=8](B,A){$\neg p\wedge q$}}
+ \drawloop(A){$\neg p\vee q$}
+ \drawloop[linecolor=blue](B){$\True$}
+ \only<7>{\drawloop[ELpos=75,linecolor=blue,loopangle=0](B){$\neg p$}}
+ }}
+ \end{picture}}
+ \end{center}
+
+ \vspace{-2mm}
+ \uncover<2->{{\only<2>{\color{red}}
+ Transition = check litterals and move forward.}}
+
+ \uncover<8->{{\only<8>{\color{red}}
+ Simplification}}
+}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/latex/gastex/ex-gastex.tex b/Master/texmf-dist/doc/latex/gastex/ex-gastex.tex
new file mode 100755
index 00000000000..42cbd1155f5
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/gastex/ex-gastex.tex
@@ -0,0 +1,469 @@
+%&latex
+\documentclass{article}
+\usepackage[usenames]{color}
+\usepackage{gastex}
+
+\begin{document}
+
+% Peterson automaton
+
+\begin{center}
+\begin{picture}(85,33)(-20,-28)
+% \put(-20,-28){\framebox(85,33){}}
+ \gasset{Nadjust=w,Nadjustdist=2,Nh=6,Nmr=1}
+ \node[Nmarks=i](A)(0,0){idle}
+ \node(B)(50,0){wait}
+ \node(C)(50,-20){wait}
+ \node[Nmarks=r](D)(0,-20){critical}
+
+ \drawedge(A,B){req1:=true}
+ \drawedge(B,C){turn:=2}
+ \drawedge[syo=-1,eyo=-1](C,D){turn=1?}
+ \drawedge[syo=1,eyo=1,ELside=r](C,D){req2=false?}
+ \drawedge(D,A){req1:=false}
+\end{picture}
+\end{center}
+
+% Petri Net and offsets
+
+\begin{center}
+\begin{picture}(110,50)(-25,-24)
+% \put(-25,-24){\framebox(110,50){}}
+ \node(A)(-20,-7){$\bullet \bullet$}
+ \node(B)(-20, 7){$\bullet$}
+ \node(C)( 20,-7){}
+ \node(D)( 20, 7){}
+ \gasset{Nw=.7,Nh=7,Nmr=0,fillgray=0} % black rectangle
+ \gasset{ExtNL=y,NLdist=1,NLangle=90} % external label above the node
+ \node(Ta)(0, 0){$a$}
+ \node(Tb)(0,-20){$b$}
+ \node(Tc)(0, 20){$c$}
+
+ \gasset{ELdistC=y,ELdist=0}
+ \drawedge[ELside=r,eyo=-1](A,Ta){\colorbox{white}{2}}\drawedge[eyo=1](B,Ta){}
+ \drawedge[syo=-1](Ta,C){}\drawedge[syo=1](Ta,D){}
+ {\gasset{curvedepth=4}\drawedge(C,Tb){}\drawedge(Tb,A){\colorbox{white}{2}}}
+ {\gasset{curvedepth=-4}\drawedge(D,Tc){}\drawedge[syo=1](Tc,B){}}
+ \drawbpedge[syo=-1,ELpos=70](Tc,-160,15,D,170,20){\colorbox{white}{3}}
+% offsets
+ \put(40,-15){\unitlength=1.2mm
+ \gasset{Nmr=0,Nfill=y,fillgray=0}
+ \node[Nw= 1,Nh=10](B)(0,20){}
+ \node[Nw= 1,Nh=10](C)(30,20){}
+ \node[Nw=10,Nh= 1](D)(15,0){}
+ \drawedge[syo=3,eyo=3,curvedepth=3](B,C){}
+ \drawedge[syo=1,eyo=1](B,C){}
+ \drawedge[syo=-1,eyo=-1](C,B){}
+ \drawbpedge[syo=4,eyo=4](B,165,30,C,15,30){}
+ \drawbpedge[syo=-3,exo=-3](B,0,10,D,90,10){}
+ \drawbpedge[syo=-3](C,180,10,D,90,10){}
+ \drawbpedge[sxo=3,eyo=-5](D,90,10,C,-90,10){}
+ \drawloop[sxo=-3,loopdiam=4,loopangle=-90](D){}
+ \drawloop[sxo= 3,loopdiam=4,loopangle=-90](D){}
+ }
+\end{picture}
+\end{center}
+
+% Diagram
+
+\begin{center}
+\begin{picture}(105,28)(-33,-3)
+% \put(-33,-3){\framebox(105,28){}}
+ \gasset{Nframe=n,Nadjust=w,Nh=6,Nmr=0}
+ \node(L)(0,20){$\mathcal{L}$}
+ \node(F)(30,20){$[F^V\to F]$}
+ \node(O1)( 20,0){$(\mathcal{P}(R)^V\to 2^{M\times\mathcal{P}(R)})$}
+ \node(O2)(-20,0){$(\mathcal{P}(R)^V\to 2^M)$}
+ \node(B1)( 60,0){$(\mathcal{P}(R)^V\to F)$}
+
+ \drawedge[ELpos=40](L,F){$[\![ -]\!]$}
+ \drawedge(L,O1){$X_F$}
+ \drawedge(F,O1){$\chi$}
+ \drawedge[ELside=r](L,O2){$X_M$}
+ \drawedge[ELpos=55](O1,B1){$\sqcup$}
+ \drawedge[ELside=r,ELpos=53](O1,O2){$\mathrm{Re}$}
+\end{picture}
+\end{center}
+
+% and more ...
+
+\begin{center}
+\begin{picture}(120,52)(-35,-37)
+% \put(-35,-37){\framebox(120,52){}}
+ \node[Nw=16,linecolor=Yellow,fillcolor=Yellow](A)(-20,0){initial}
+ \imark[iangle=200,linecolor=Peach](A)
+ \node[Nmr=0,Nw=14,fillgray=0.85,
+ dash={1}0](B)( 20,0){\textcolor{RedViolet}{final}}
+ \fmark[flength=10,fangle=-30,dash={3 1 1 1}0](B)
+ \node[Nadjust=wh,Nadjustdist=2,Nmr=3,Nmarks=r,linecolor=Green](C)(60,-20){$\left(
+ \begin{array}{ccc}
+ 2 & 1 & 0 \\
+ -1 & 0 & 1 \\
+ 0 & -1 & 2
+ \end{array}
+ \right)$}
+ \rmark[linecolor=Green,rdist=1.4](C)
+
+ \drawedge[curvedepth=5,linecolor=Red](A,B){\textcolor{Cyan}{curved}}
+ \drawedge[ELside=r,ELpos=35](A,B){straight}
+ \drawedge[curvedepth=-25,ELside=r,dash={1.5}0](A,B){far}
+ \drawloop[ELpos=75, loopangle=150, dash={0.2 0.5}0](A){loopCW}
+ \drawloop[loopCW=n,ELside=r,loopangle=30,dash={3 1.5}{1.5}](B){loopCCW}
+ \drawqbpedge[ELside=r,ELdist=0,dash={4 1 1 1}0](B,-90,C,180){qbpedge}
+ \drawloop[ELpos=70,loopangle=0](C){$b / 01$}
+ \drawloop[loopCW=n,ELpos=75,ELside=r,loopangle=-90,sxo=6](C){$a / 01$}
+ \drawloop[ELpos=75,loopangle=-90,sxo=-6](C){$b / 10 $}
+ \drawloop[loopangle=50](C){$b / 01$}
+ \drawloop[ELpos=75,loopangle=148](C){$b / 01$}
+\end{picture}
+\end{center}
+
+% Edges
+
+\begin{center}
+\begin{picture}(120,60)(-32,-14)
+% \put(-32,-14){\framebox(120,60){}}
+ \node(A)(10,0){}\node(B)(40,0){}
+ \drawedge(A,B){straight}
+ \drawedge[curvedepth=8](A,B){positive curve depth}
+ \drawedge[curvedepth=-8,ELside=r](A,B){negative curve depth}
+ \drawloop[loopangle=180](A){180}
+ \drawloop[loopangle=0](B){0}
+
+ \node(A)(-15,30){}\node(B)(15,30){}
+ \drawqbedge(A,-15,50,B){qbedge}
+ \drawbcedge(A,-20,10,B,20,10){bcedge}
+ \drawloop[loopangle=210](A){210}
+ \drawloop[loopangle=90,loopCW=n,ELside=r](B){90}
+
+ \node(A)(40,30){}\node(B)(70,30){}
+ \drawbpedge[ELpos=30,ELdist=0](A,45,20,B,225,20){bpedge}
+ \drawbpedge[ELpos=30,ELside=r](A,210,30,B,-30,30){30}
+ \drawbpedge[ELpos=70,ELside=r](A,210,30,B,-30,30){70}
+ \drawloop[loopdiam=5,loopangle=120,ELpos=60](A){smaller}
+ \drawloop[loopdiam=10,loopangle=30,ELpos=30](B){larger}
+\end{picture}
+\end{center}
+
+% Nodes, colors, etc...
+
+\begin{center}
+\begin{picture}(105,70)(-15,-65)
+% \put(-15,-65){\framebox(105,70){}}
+ \node[Nmarks=if](A)(0,0){1}
+ \node[Nw=15,Nh=6,Nmr=0](A)(25,0){rectangle}
+ \node[Nw=12,Nh=6,Nmr=3](A)(50,0){oval}
+
+ \node(B)(0,-15){Nadjust=n}
+ \node[Nadjust=w,Nmr=2](B)(25,-15){Nadjust=w}
+ \node[Nadjust=wh,Nmr=1](B)(50,-15){Nadjust=wh}
+
+ \gasset{Nadjust=w,Nadjustdist=3}
+ \node[Nmarks=i,iangle=210,ilength=5](C)(0,-30){imark}
+ \imark[iangle=150,ilength=10,linecolor=Red](C)
+ \node[Nmarks=f,fangle=30,flength=5,linecolor=Green](C)(25,-30){fmark}
+ \fmark[fangle=-30,flength=10,linecolor=Blue](C)
+ \node(C)(50,-30){rmark}
+ \rmark[linecolor=Red](C)\rmark[rdist=1.4,linecolor=Green](C)
+ \node[Nmarks=ifr](C)(75,-30){all}
+
+ \node(D)(0,-45){framed}
+ \node[Nframe=n,fillcolor=Yellow](D)(25,-45){filled}
+ \node[fillcolor=Yellow](D)(50,-45){both}
+ \node[fillcolor=Yellow,
+ linecolor=Green](D)(75,-45){\textcolor{RedViolet}{RedViolet}}
+
+ \node[linewidth=0.5](E)(0,-60){Thick}
+ \node[linewidth=1,linegray=0.8](E)(25,-60){Gray}
+ \node[dash={1.5}0](E)(50,-60){Dash}
+ \node[dash={4 1 1 1}0,linecolor=Red](E)(75,-60){More dash}
+\end{picture}
+\end{center}
+
+% Arrows
+
+\begin{center}\unitlength=0.85mm
+\begin{picture}(60,40)(-30,-17)
+% \put(-30,-17){\framebox(60,40){}}
+ \drawline[AHangle=30,AHLength=3,AHlength=0,
+ ATnb=1,ATangle=90,ATLength=2,ATlength=0](-15,20)(15,20)
+ \drawline[AHnb=2,ATnb=2](-15,15)(15,15)
+ \drawline[AHnb=2,AHangle=30,AHLength=3,AHlength=0,AHdist=1,
+ ATnb=2,ATangle=30,ATLength=3,ATlength=0,ATdist=1](-15,10)(15,10)
+ \drawline[AHnb=1,AHangle=30,AHLength=3,AHlength=1,
+ ATnb=1,ATangle=140,ATLength=3,ATlength=1.5](-15,5)(15,5)
+ \drawline[AHnb=2,AHangle=30,AHLength=3,AHlength=0,AHdist=1,
+ ATnb=2,ATangle=150,ATLength=3,ATlength=0,ATdist=1](-15,0)(15,0)
+ \node(A)(-15,-10){}\node(B)( 15,-10){}
+ \drawbpedge[AHnb=6,ATnb=6](A,60,25,B,240,25){}
+ \gasset{AHnb=1,AHangle=30,AHLength=3,AHlength=0,
+ ATnb=1,ATangle=30,ATLength=3,ATlength=0}
+ \drawloop[loopangle=180](A){}
+ \gasset{AHnb=3,AHangle=30,AHLength=3,AHlength=1.5,AHdist=1.8,
+ ATnb=3,ATangle=30,ATLength=3,ATlength=1.5,ATdist=1.8}
+ \drawloop[loopangle=0](B){}
+\end{picture}
+% \end{center}
+%
+% % Node label
+%
+% \begin{center}
+\begin{picture}(80,40)(-20,-20)
+% \put(-20,-20){\framebox(80,40){}}
+ \node[Nh=30,Nw=30,Nmr=15](D)(0,0){}
+ \gasset{ExtNL=y,NLdist=1,AHnb=0,ilength=-2}
+ \nodelabel[NLangle= 0](D){3} \imark[iangle= 0](D)
+ \nodelabel[NLangle= 30](D){2} \imark[iangle= 30](D)
+ \nodelabel[NLangle= 60](D){1} \imark[iangle= 60](D)
+ \nodelabel[NLangle= 90](D){12} \imark[iangle= 90](D)
+ \nodelabel[NLangle=120](D){11} \imark[iangle=120](D)
+ \nodelabel[NLangle=150](D){10} \imark[iangle=150](D)
+ \nodelabel[NLangle=180](D){9} \imark[iangle=180](D)
+ \nodelabel[NLangle=210](D){8} \imark[iangle=210](D)
+ \nodelabel[NLangle=240](D){7} \imark[iangle=240](D)
+ \nodelabel[NLangle=270](D){6} \imark[iangle=270](D)
+ \nodelabel[NLangle=300](D){5} \imark[iangle=300](D)
+ \nodelabel[NLangle=330](D){4} \imark[iangle=330](D)
+
+ \node[Nh=30,Nw=30,Nmr=15](B)(40,0){}
+ \gasset{ExtNL=n,NLdist=13}
+ \nodelabel[NLangle= 0](B){3}
+ \nodelabel[NLangle= 30](B){2}
+ \nodelabel[NLangle= 60](B){1}
+ \nodelabel[NLangle= 90](B){12}
+ \nodelabel[NLangle=120](B){11}
+ \nodelabel[NLangle=150](B){10}
+ \nodelabel[NLangle=180](B){9}
+ \nodelabel[NLangle=210](B){8}
+ \nodelabel[NLangle=240](B){7}
+ \nodelabel[NLangle=270](B){6}
+ \nodelabel[NLangle=300](B){5}
+ \nodelabel[NLangle=330](B){4}
+\end{picture}
+\end{center}
+
+% Nodes whose shape is a regular polygon
+
+\begin{center}
+\begin{picture}(120,30)(0,0)
+% \put(0,0){\framebox(120,30){}}
+ \rpnode[polyangle=90,Nmarks=i,iangle=-90](A)(5,14)(3,5){A}
+ \rpnode[arcradius=2,Nmarks=r](B)(35,17)(6,10){B}
+ \nodelabel[ExtNL=y,NLangle=30,NLdist=0.5](B){B}
+ \nodelabel[ExtNL=y,NLangle=60,NLdist=0.5](B){B}
+ \rpnode[arcradius=2,polyangle=90](C)(70,12)(5,7){C}
+ \imark[iangle=198](C)\fmark[fangle=18](C)
+ \rpnode[Nmarks=fr,fangle=45](D)(105,15)(4,7){D}
+ \drawloop(A){$a$}
+ \drawloop[loopangle=90](C){$c$}
+ \drawloop[loopangle=-45](D){$d$}
+ \drawedge(A,B){$x$}
+ \drawbpedge(B,-30,30,C,140,30){$y$}
+ \drawqbpedge(C,37,D,83){$z$}
+ \drawedge[curvedepth=14,ELside=r](D,A){}
+\end{picture}
+\end{center}
+
+% polygons and closed curves
+
+\begin{center}
+\begin{picture}(120,40)(0,0)
+% \put(0,0){\framebox(120,40){}}
+ \put(3,3){
+ \unitlength=8mm
+ \drawpolygon[fillcolor=Green,Nframe=n,arcradius=.3](0,0)(0,2)(1,3)(0,4)(2,4)(2,2)(4,0)(2,0)(1,1)
+ \drawpolygon(0,0)(0,2)(1,3)(0,4)(2,4)(2,2)(4,0)(2,0)(1,1)
+ \drawccurve[linecolor=Red](0,0)(0,2)(1,3)(0,4)(2,4)(2,2)(4,0)(2,0)(1,1)
+ }
+ \put(55,20){
+ \unitlength=1.4mm
+ \drawpolygon[fillcolor=Green,Nframe=n,arcradius=2](-10,-10)(10,10)(-10,10)(10,-10)
+ \drawpolygon(-10,-10)(10,10)(-10,10)(10,-10)
+ \drawccurve[linecolor=Red](-10,-10)(10,10)(-10,10)(10,-10)
+ }
+ \put(100,19){
+ \unitlength=20mm
+ \drawccurve[fillcolor=Yellow,linecolor=Red](0,1)(0.59,-0.8)(-0.95,0.3)(0.95,0.3)(-0.59,-0.8)
+ \drawpolygon(0,1)(0.59,-0.8)(-0.95,0.3)(0.95,0.3)(-0.59,-0.8)
+ }
+\end{picture}
+\end{center}
+
+% curves
+
+\begin{center}
+\begin{picture}(120,40)(0,0)
+% \put(0,0){\framebox(120,40){}}
+ \put(2,3){
+ \unitlength=8mm
+ \drawline[AHnb=0](0,0)(0,2)(1,3)(0,4)(2,4)(2,2)(4,0)(2,0)(1,1)
+ \drawcurve[linecolor=Red,AHnb=0](0,0)(0,2)(1,3)(0,4)(2,4)(2,2)(4,0)(2,0)(1,1)
+ }
+ \put(55,16){
+ \unitlength=1.5mm
+ \drawline[AHnb=0](-10,-10)(10,10)(-10,10)(10,-10)
+ \drawcurve[linecolor=Red,ATnb=3,AHnb=4](-10,-10)(10,10)(-10,10)(10,-10)
+ }
+ \put(100,19){
+ \unitlength=20mm
+ \drawline[AHnb=0](0.95,0.3)(-0.59,-0.8)(0,1)(0.59,-0.8)(-0.95,0.3)
+ \drawcurve[linecolor=Red](0.95,0.3)(-0.59,-0.8)(0,1)(0.59,-0.8)(-0.95,0.3)
+ }
+\end{picture}
+\end{center}
+
+% Various macros
+
+\begin{center}
+\begin{picture}(120,60)(-60,-30)
+% \put(-60,-30){\framebox(120,60){}}
+ \drawline(-60,0)(60,0)
+ \drawline(0,-30)(0,30)
+ \drawrpolygon[polyangle=90,fillcolor=Blue](-9,5)(3,8)
+ \drawrpolygon(-9,22)(8,7)
+ \drawrpolygon(-9,22)(8,6)
+ \drawrpolygon(-9,22)(8,5)
+ \drawrpolygon[polyangle=18,arcradius=5](-27,7)(5,7)
+ \drawrpolygon[fillcolor=Green](-27,23)(4,7)
+ \put(-48,15){
+ \unitlength=14mm
+ \gasset{Nfill=y,fillcolor=Yellow,Nframe=y,arcradius=.1}
+ \drawpolygon(0,1)(0.59,-0.8)(-0.95,0.3)(0.95,0.3)(-0.59,-0.8)
+ }
+ \drawline[AHLength=4,AHlength=0,AHangle=30,linewidth=.8](5,25)(15,15)(5,15)(15,5)
+ \drawline[AHLength=4,AHlength=0,AHangle=30,linecolor=White](5,25)(15,15)(5,15)(15,5)
+ \drawline[arcradius=1](17,25)(27,15)(17,15)(27,5)
+ \drawline[linecolor=Red](30,10)(50,20)(25,25)(55,5)
+ \drawline[AHLength=4,AHlength=0,AHangle=30,linewidth=.3](10,28)(35,28)
+ \drawline[AHnb=0,linewidth=.9](10,28)(34.5,28)
+ \drawline[AHnb=0,linewidth=.2,linecolor=White](10,28)(34.5,28)
+ \drawcbezier[ATnb=1](-50,-5,-30,-5,-30,-25,-10,-25)
+ \drawcbezier[AHnb=0,dash={1.5}0](-50,-25,-30,-25,-30,-5,-10,-5)
+ \drawqbezier(31,-20,50,-20,50,-1)
+ \drawqbezier[AHnb=0,linecolor=Green](31,-20,31,-1,50,-1)
+ \drawcircle[Nfill=y,fillcolor=Yellow](40,-25,10)
+ \drawrect[Nfill=y,fillcolor=Yellow,dash={1.5}0](5,-5,25,-15)
+ \drawoval(15,-25,20,10,3)
+\end{picture}
+\end{center}
+
+% Tricks: multiput and variables
+
+\begin{center}
+ \unitlength=0.7mm
+\begin{picture}(60,46)(0,-3)
+% \put(0,-3){\framebox(60,46){}}
+ {\gasset{AHnb=0}
+ \drawline(0,0)(60,0)
+ \drawline(0,20)(60,20)
+ \drawline(0,40)(60,40)}
+ \gasset{Nw=1.5,Nh=1.5,Nframe=n,Nfill=y}
+ \multiput(0,0)(10,0){5}{%
+ \node(A)(0,0){}\node(B)(5,20){}
+ \drawedge(A,B){}
+ }
+ \multiput(10,20)(10,0){5}{%
+ \node(A)(0,0){}\node(B)(5,20){}
+ \drawedge(A,B){}
+ }
+\end{picture}
+ \qquad
+ \unitlength=1mm
+\begin{picture}(50,30)(-5,0)
+% \put(-5,0){\framebox(50,30){}}
+ \def\ax{5}\def\ay{5}\def\bx{35}\def\by{25}%
+ \node(a)(\ax,\ay){$a$}\node(b)(\bx,\by){$b$}
+ \drawedge(a,b){}
+ \drawloop[loopdiam=6,loopangle=180](a){}
+ \drawloop[loopdiam=6,loopangle=0](b){}
+
+ \def\ax{5}\def\ay{25}\def\bx{35}\def\by{5}%
+ \node(a)(\ax,\ay){$a$}\node(b)(\bx,\by){$b$}
+ \drawedge(a,b){}
+ \drawloop[loopdiam=6,loopangle=180](a){}
+ \drawloop[loopdiam=6,loopangle=0](b){}
+\end{picture}
+\end{center}
+
+% Compatibility with gastex 1.0
+
+\begin{center}\compatiblegastexun
+\begin{picture}(80,55)(-20,-15)
+\thinlines
+\put(-20,-15){\framebox(80,55){}}
+
+\letstate A=(0,0) \drawinitialstate(A){1}\drawfinalstate[b](A){}
+\letstate B=(20,0) \drawrepeatedstate(B){2}
+\letstate C=(40,0) \drawfinalstate(C){3}
+\letstate D=(0,20) \drawrepeatedstate(D){4}
+\letstate E=(20,18) \drawstate(E){5}
+\letstate[8,6] F=(40,20) \drawrepeatedstate(F){6}
+
+\drawloop[b](B){$A,a,\alpha$} \drawloop[l](D){$A,\varepsilon$}
+{ \setpsdash(1) \drawloop(E){$B,b,\beta$} }
+\drawloop[r](F){$B,\varepsilon$}
+
+\drawtrans[r](A,B){$D,d,\delta$} \drawtrans[r](B,C){$D,\varepsilon$}
+{ \settransdecal{1}
+ \drawtrans(C,F){$F,f,\varphi$} \drawtrans(F,C){$G,g,\gamma$} }
+\drawtrans(B,E){$\varepsilon$} \drawtrans(E,F){$E,\varepsilon$}
+{ \setprofcurve{0} \drawcurvedtrans[r](E,D){$F,\varepsilon$} }
+
+\drawcurvedtrans(A,D){$C,c,\gamma$}
+{ \setpsdash(3) \drawcurvedtrans(D,A){$C,\varepsilon$} }
+{ \setprofcurve{-15} \drawcurvedtrans[r](F,D){$G_1,g_1,\gamma_1$} }
+\end{picture}
+\end{center}
+
+\begin{center}\compatiblegastexun
+\unitlength=1mm
+\begin{picture}(90,30)(-5,-16)
+\thinlines
+\put(-5,-16){\framebox(90,30){}}
+
+\setvertexdiam{6}
+\letvertex A=(0,0) \drawcircledvertex(A){$a$}
+\letvertex B=(20,0) \drawvertex(B){$b$}
+\letvertex[9] C=(40,0) \drawcircledvertex(C){$c$}
+\letvertex D=(60,0) \drawcircledvertex(D){$d$}
+\letvertex E=(80,0) \drawcircledvertex(E){$e$}
+
+\drawundirectededge(A,B){7}
+\drawundirectededge(B,C){-11}
+\drawundirectededge(C,D){13}
+\drawundirectededge(D,E){2}
+
+\setprofcurve{10}
+\drawundirectedcurvededge(A,C){3}
+\drawundirectedcurvededge(C,E){8}
+\setprofcurve{-10}
+\drawundirectedcurvededge[r](B,D){-5}
+
+\drawundirectedloop[b](A){17}
+\end{picture}
+\end{center}
+
+% Compatibility with pspictpg
+\begin{center}\compatiblepspictpg
+\begin{picture}(80,80)(-40,-40)
+% \put(-40,-40){\framebox(80,80){}}
+ \drawvector(-40,0)(40,0)
+ \drawvector(0,-40)(0,40)
+ \drawline(-30,-30)(30,30)
+ \cbeziervector(-30,-20)(-30,0)(-10,0)(-10,20)
+ {\setpsdash(3)\cbezier(-30,20)(-30,0)(-10,0)(-10,-20)}
+ \qbeziervector(1,-20)(20,-20)(20,-1)
+ \qbezier(1,-20)(1,-1)(20,-1)
+ \drawcircle(10,30)(10)
+ \put(-20,-30){\circle{10}}
+ \put(25,5){\line(1,3){8}}
+ \put(25,5){\vector(1,2){8}}
+ \setpsgray{0.5}
+ \drawdisk(-30,30)(10)
+ \put(20,-30){\circle*{10}}
+\end{picture}
+\end{center}
+
+\end{document}
+
+