diff options
author | Karl Berry <karl@freefriends.org> | 2021-03-18 21:07:01 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-03-18 21:07:01 +0000 |
commit | 2c572a90204988d4f79b4ceb70ae43b5041a0cea (patch) | |
tree | 6d72cc4b8c64a0fd592b095eab3441a5547c9ef5 /Master/texmf-dist/doc | |
parent | da2d18f4878f6cf27add82fac726c7050507c9b8 (diff) |
gastex (18mar21)
git-svn-id: svn://tug.org/texlive/trunk@58505 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc')
-rw-r--r-- | Master/texmf-dist/doc/latex/gastex/README | 64 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/gastex/ex-beamer-gastex.tex | 107 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/gastex/ex-gastex.tex | 469 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/gastex/gastex-doc.pdf | bin | 0 -> 130953 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/gastex/gastex-doc.tex | 189 |
5 files changed, 220 insertions, 609 deletions
diff --git a/Master/texmf-dist/doc/latex/gastex/README b/Master/texmf-dist/doc/latex/gastex/README index 1f14e8cb6d2..193e52ad9f2 100644 --- a/Master/texmf-dist/doc/latex/gastex/README +++ b/Master/texmf-dist/doc/latex/gastex/README @@ -7,51 +7,49 @@ automata, nets, diagrams, etc... under the picture environment of LaTeX. Author: ------- -Paul Gastin <http://www.lsv.ens-cachan.fr/~gastin> +Paul Gastin <http://www.lsv.fr/~gastin> -Copyright: 2006 by Paul Gastin +Copyright: 2021 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. +of the LaTeX Project Public License Distributed from CTAN: +https://www.ctan.org/license/lppl1.3 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) +- 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, e.g., + .../texmf-dist/tex/latex/gastex/gastex.sty + or + .../texmf-local/tex/latex/gastex/gastex.sty +- gastex.pro which contains all the postscript procedures. This file +could be in your working folder or where other .pro files are, e.g., + .../texmf-dist/dvips/gastex/gastex.pro + or + .../texmf-local/dvips/gastex/gastex.pro + +Usage: latex+dvips(+ps2pdf) filename.tex ------ - 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. +Usage: pdflatex --shell-escape filename.tex +------ +- Requires the package auto-pst-pdf. + 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. +- gastex mainly generates postscript code so the pictures cannot be seen +with a dvi-viewer. One has to generate a ps file (latex+dvips) or a pdf +file (latex+dvips+ps2pdf or pdflatex --shell-escape) and view it with a +ps-viewer or a pdf-viewer. + +Documentation and examples: +--------------------------- +- See http://www.lsv.fr/~gastin/gastex/index.html +- See also gastex-doc.tex for a quick startup guide on how to use gastex +with pdflatex and a few examples. +- Comments in the file gastex.sty also 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 deleted file mode 100644 index d35ab955a4c..00000000000 --- a/Master/texmf-dist/doc/latex/gastex/ex-beamer-gastex.tex +++ /dev/null @@ -1,107 +0,0 @@ -% \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 deleted file mode 100644 index 42cbd1155f5..00000000000 --- a/Master/texmf-dist/doc/latex/gastex/ex-gastex.tex +++ /dev/null @@ -1,469 +0,0 @@ -%&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} - - diff --git a/Master/texmf-dist/doc/latex/gastex/gastex-doc.pdf b/Master/texmf-dist/doc/latex/gastex/gastex-doc.pdf Binary files differnew file mode 100644 index 00000000000..c331528fcf9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/gastex/gastex-doc.pdf diff --git a/Master/texmf-dist/doc/latex/gastex/gastex-doc.tex b/Master/texmf-dist/doc/latex/gastex/gastex-doc.tex new file mode 100644 index 00000000000..712f98f22ee --- /dev/null +++ b/Master/texmf-dist/doc/latex/gastex/gastex-doc.tex @@ -0,0 +1,189 @@ +\documentclass[12pt]{article} +\usepackage{url,xspace} +\usepackage[a4paper,text={16cm,22.7cm},centering]{geometry} + +\usepackage[pdflatex,recompilepics=true]{gastex} +\gasset{frame=false,Nw=6,Nh=6,loopdiam=5} + +\parindent=0pt +\parskip=1.5ex + +\newcommand\GasTeX{\textsf{GasTeX}\xspace} +\newcommand{\leftend}{{\vdash}} +\newcommand{\rightend}{{\dashv}} + +\title{\GasTeX: Graphs and Automata Simplified in \TeX} +\author{Paul Gastin \\[1ex] + LMF, ENS Paris-Saclay \\ + {\small\texttt{paul.gastin@ens-paris-saclay.fr}}} +\date{v3.0} +\begin{document} +\maketitle +\begin{abstract} + This is a very minimal startup guide including some examples. +\end{abstract} + +\begin{gpicture}[name=gpic:LR-concat,ignore] + \gasset{Nframe=n} + \node(ui)(15,3){$u$} + \node(ui+1)(45,3){$v$} + \gasset{AHnb=0} + \drawline(0,2)(0,-31) + \drawline(30,2)(30,-31) + \drawline(60,2)(60,-31) + \gasset{AHnb=1,arcradius=0.8} + \drawline(0,-1)(20,-1)(20,-3)(5,-3)(5,-5)(30,-5) + \node(x0)(23,-2){$\rho_0$} + \drawline[linecolor=red](30,-5)(50,-5)(50,-7)(35,-7)(35,-9)(45,-9)(45,-11)(30,-11) + \node(x0)(53,-6){\color{red}$\rho_1$} + \drawline[linecolor=red](30,-11)(20,-11)(20,-13)(25,-13)(25,-15)(18,-15)(18,-17)(30,-17) + \node(x1)(17,-12){\color{red}$\rho_2$} + \drawline[linecolor=red](30,-17)(40,-17)(40,-19)(30,-19) + \node(x2)(43,-18){\color{red}$\rho_3$} + \drawline[linecolor=red](30,-19)(15,-19)(15,-21)(22,-21)(22,-23)(10,-23)(10,-25)(30,-25) + \node(x3)(12,-20){\color{red}$\rho_4$} + \drawline(30,-25)(50,-25)(50,-27)(40,-27)(40,-29)(60,-29) + \node(x2)(53,-26){$\rho_5$} + \gasset{Nw=1.6,Nh=1.6,Nfill=y,ExtNL=y,NLdist=.7} + \node[NLangle=45](p)(0,-1){$p$} + \node[fillcolor=red,NLangle=45](p1)(30,-5){\color{red}$p_1$} + \node[fillcolor=red,NLangle=135](p2)(30,-11){\color{red}$p_2$} + \node[fillcolor=red,NLangle=45](p3)(30,-17){\color{red}$p_3$} + \node[fillcolor=red,NLangle=-135](p4)(30,-19){\color{red}$p_4$} + \node[fillcolor=red,NLangle=45](p5)(30,-25){\color{red}$p_5$} + \node[NLangle=0](q)(60,-29){$q$} +\end{gpicture} +\begin{gpicture}[name=gpic:LL-concat,ignore] + \gasset{Nframe=n} + \node(ui)(15,3){$u$} + \node(ui+1)(45,3){$v$} + \gasset{AHnb=0} + \drawline(0,2)(0,-31) + \drawline(30,2)(30,-31) + \drawline(60,2)(60,-31) + \gasset{AHnb=1,arcradius=0.8} + \drawline(0,-1)(20,-1)(20,-3)(5,-3)(5,-5)(30,-5) + \node(x0)(23,-2){$\rho_0$} + \drawline[linecolor=red](30,-5)(50,-5)(50,-7)(35,-7)(35,-9)(45,-9)(45,-11)(30,-11) + \node(x0)(53,-6){\color{red}$\rho_1$} + \drawline[linecolor=red](30,-11)(20,-11)(20,-13)(25,-13)(25,-15)(18,-15)(18,-17)(30,-17) + \node(x1)(17,-12){\color{red}$\rho_2$} + \drawline[linecolor=red](30,-17)(40,-17)(40,-19)(30,-19) + \node(x2)(43,-18){\color{red}$\rho_3$} + \drawline[linecolor=black](30,-19)(15,-19)(15,-21)(22,-21)(22,-23)(10,-23)(10,-25)(15,-25) + (15,-27)(0,-27) + \node(x3)(12,-20){\color{black}$\rho_4$} + \gasset{Nw=1.6,Nh=1.6,Nfill=y,ExtNL=y,NLdist=.7} + \node[NLangle=45](p)(0,-1){$p$} + \node[fillcolor=red,NLangle=45](p1)(30,-5){\color{red}$p_1$} + \node[fillcolor=red,NLangle=135](p2)(30,-11){\color{red}$p_2$} + \node[fillcolor=red,NLangle=45](p3)(30,-17){\color{red}$p_3$} + \node[fillcolor=red,NLangle=-135](p4)(30,-19){\color{red}$p_4$} + \node[NLangle=180](q)(0,-27){$q$} +\end{gpicture} + + +For the documentation, please see +\url{http://www.lsv.fr/~gastin/gastex/index.html}. + +The package consists of two files \verb|gastex.sty| and \verb|gastex.pro|. +\begin{itemize} + \item \verb|gastex.sty| contains the definition of all \GasTeX macros. + This file could be in your working folder but it is best placed where \verb|.sty| files are, e.g., + + \verb|.../texmf-dist/tex/latex/gastex/gastex.sty| \\ + or \\ + \verb|.../texmf-local/tex/latex/gastex/gastex.sty| + + \item \verb|gastex.pro| which contains all the postscript procedures used to actually draw the pictures. + This file could be in your working folder but it is best placed where \verb|.pro| files are, e.g., + + \verb|.../texmf-dist/dvips/gastex/gastex.pro| \\ + or \\ + \verb|.../texmf-local/dvips/gastex/gastex.pro| +\end{itemize} + +This documentation file simply contains a few simple examples on how to make figures with +\GasTeX. It should be compiled with +\begin{quote} + \verb|pdflatex --shell-escape gastex-doc.tex| \\ + or \\ + \verb|pdflatex --enable-write18 gastex-doc.tex| +\end{quote} + +The first example below is a 2-way deterministic finite state transducer. It consists of +a \verb|gpicture| environment which contains the \GasTeX commands for nodes and +transitions. + +\begin{center} + \begin{gpicture}[name=gpic:2DFT] + \gasset{Nframe=y,Nw=8,Nh=8,loopdiam=6} + \unitlength=2.8mm + \node[Nmarks=i](0)(0,0){$q_0$} + \node(1)(10,0){$q_1$} + \node[Nmarks=r](2)(20,0){$q_2$} + \node(6)(30,0){$q_3$} + \node(3)(30,-8){$q_4$} + \node(4)(20,-8){$q_5$} + \node(5)(10,-8){$q_6$} + + \drawloop(0){$\leftend/\varepsilon,+1$} + \drawloop(1){$a/\varepsilon,+1$} + \drawloop(2){$\rightend/\varepsilon,+1$} + \drawloop(6){$a/\varepsilon,+1$} + \drawloop[loopangle=-90](3){$a/a,-1$} + \drawloop[loopangle=-90](4){$a/b,-1$} + \drawloop[loopangle=-90](5){$a/\varepsilon,+1$} + + \drawedge(0,1){$b/\varepsilon,+1$} + \drawedge(1,2){$b/\varepsilon,+1$} + \drawedge[ELpos=25,ELdist=0,ELside=r](2,3){$b/\varepsilon,-1$} + \drawedge[ELpos=50](6,3){$b/\varepsilon,-1$} + \drawedge[ELside=l](3,4){$b/\varepsilon,-1$} + \drawedge[ELpos=50](4,5){$b/\varepsilon,+1$} + \drawedge[ELpos=50](5,1){$b/\varepsilon,+1$} + \drawedge(2,6){$a/\varepsilon,+1$} + \end{gpicture} +\end{center} + +The second one is in Figure~\ref{fig:LR-concat}. The pictures have been defined at the +beginning of the \LaTeX\ document, with the \verb|name| and \verb|ignore| optional +parameters given to the \verb|gpicture| environment. These pictures are generated but not +inserted immediately. Instead, the \verb|\gusepicture| command allows to include each +named picture, possibly multiple times at different places. + +All pictures defined in \verb|gpicture| environments are compiled and stored in a file +called \verb|filename-pics.pdf|, one picture per page. These pictures could be included +in any \LaTeX\ file, possibly another \LaTeX\ file which need not use the \GasTeX package, +simply by using \verb|\includegraphics| as follows: +\begin{quote} + \verb|\includegraphics[page=2,scale=0.6]{gastex-doc-pics.pdf}| + + \includegraphics[page=2,scale=0.6]{gastex-doc-pics.pdf} +\end{quote} +This is convenient for instance when sending the \LaTeX\ file to \verb|Arxiv| or to an +editor (journal, proceedings) which does not allow the \verb|--shell-escape| option when +compiling with \verb|pdflatex|. Actually, \GasTeX does this automatically for you. When +loading the package, set the \verb|recompilepics| option to \verb|false| as follows: +\begin{quote} + \verb|\usepackage[pdflatex,recompilepics=false]{gastex}| +\end{quote} +then you may compile without the \verb|--shell-escape| option +\begin{quote} + \verb|pdflatex gastex-doc.tex| +\end{quote} +and \GasTeX automatically calls \verb|\includegraphics| to include the pictures that have +been previously generated and stored in the file \verb|gastex-doc-pics.pdf|. + +\begin{figure}[b] + \centering + \gusepicture{gpic:LR-concat} + \hfill + \gusepicture{gpic:LL-concat} + \caption{Decomposition of a left-right run and a left-left run over the product $w=uv$.} + \label{fig:LR-concat} +\end{figure} + + +\end{document} + |