diff options
Diffstat (limited to 'Master/texmf-dist/tex')
8 files changed, 1732 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/vaucanson-g/VCColor-names.def b/Master/texmf-dist/tex/generic/vaucanson-g/VCColor-names.def new file mode 100644 index 00000000000..221e55a657c --- /dev/null +++ b/Master/texmf-dist/tex/generic/vaucanson-g/VCColor-names.def @@ -0,0 +1,87 @@ +%% +%% Package `Vaucanson-G' version 0.4 +%% +%% This is file `vcsn-color-names.def'. +%% +%% IMPORTANT NOTICE: +%% +%% Copyright (C) 2002-2008 Sylvain Lombardy and Jacques Sakarovitch +%% +%% This package may be distributed under the terms of the LaTeX Project +%% Public License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +%% DESCRIPTION: +%% +%% `vcsn-color-names.def' provides usual color definitions for Vaucanson-G +%% +\xdefinecolor{GreenYellow} {cmyk}{0.15,0,0.69,0} +\xdefinecolor{Yellow} {cmyk}{0,0,1,0} +\xdefinecolor{Goldenrod} {cmyk}{0,0.10,0.84,0} +\xdefinecolor{Dandelion} {cmyk}{0,0.29,0.84,0} +\xdefinecolor{Apricot} {cmyk}{0,0.32,0.52,0} +\xdefinecolor{Peach} {cmyk}{0,0.50,0.70,0} +\xdefinecolor{Melon} {cmyk}{0,0.46,0.50,0} +\xdefinecolor{YellowOrange} {cmyk}{0,0.42,1,0} +\xdefinecolor{Orange} {cmyk}{0,0.61,0.87,0} +\xdefinecolor{BurntOrange} {cmyk}{0,0.51,1,0} +\xdefinecolor{Bittersweet} {cmyk}{0,0.75,1,0.24} +\xdefinecolor{RedOrange} {cmyk}{0,0.77,0.87,0} +\xdefinecolor{Mahogany} {cmyk}{0,0.85,0.87,0.35} +\xdefinecolor{Maroon} {cmyk}{0,0.87,0.68,0.32} +\xdefinecolor{BrickRed} {cmyk}{0,0.89,0.94,0.28} +\xdefinecolor{Red} {cmyk}{0,1,1,0} +\xdefinecolor{OrangeRed} {cmyk}{0,1,0.50,0} +\xdefinecolor{RubineRed} {cmyk}{0,1,0.13,0} +\xdefinecolor{WildStrawberry}{cmyk}{0,0.96,0.39,0} +\xdefinecolor{Salmon} {cmyk}{0,0.53,0.38,0} +\xdefinecolor{CarnationPink} {cmyk}{0,0.63,0,0} +\xdefinecolor{Magenta} {cmyk}{0,1,0,0} +\xdefinecolor{VioletRed} {cmyk}{0,0.81,0,0} +\xdefinecolor{Rhodamine} {cmyk}{0,0.82,0,0} +\xdefinecolor{Mulberry} {cmyk}{0.34,0.90,0,0.02} +\xdefinecolor{RedViolet} {cmyk}{0.07,0.90,0,0.34} +\xdefinecolor{Fuchsia} {cmyk}{0.47,0.91,0,0.08} +\xdefinecolor{Lavender} {cmyk}{0,0.48,0,0} +\xdefinecolor{Thistle} {cmyk}{0.12,0.59,0,0} +\xdefinecolor{Orchid} {cmyk}{0.32,0.64,0,0} +\xdefinecolor{DarkOrchid} {cmyk}{0.40,0.80,0.20,0} +\xdefinecolor{Purple} {cmyk}{0.45,0.86,0,0} +\xdefinecolor{Plum} {cmyk}{0.50,1,0,0} +\xdefinecolor{Violet} {cmyk}{0.79,0.88,0,0} +\xdefinecolor{RoyalPurple} {cmyk}{0.75,0.90,0,0} +\xdefinecolor{BlueViolet} {cmyk}{0.86,0.91,0,0.04} +\xdefinecolor{Periwinkle} {cmyk}{0.57,0.55,0,0} +\xdefinecolor{CadetBlue} {cmyk}{0.62,0.57,0.23,0} +\xdefinecolor{CornflowerBlue}{cmyk}{0.65,0.13,0,0} +\xdefinecolor{MidnightBlue} {cmyk}{0.98,0.13,0,0.43} +\xdefinecolor{NavyBlue} {cmyk}{0.94,0.54,0,0} +\xdefinecolor{RoyalBlue} {cmyk}{1,0.50,0,0} +\xdefinecolor{Blue} {cmyk}{1,1,0,0} +\xdefinecolor{Cerulean} {cmyk}{0.94,0.11,0,0} +\xdefinecolor{Cyan} {cmyk}{1,0,0,0} +\xdefinecolor{ProcessBlue} {cmyk}{0.96,0,0,0} +\xdefinecolor{SkyBlue} {cmyk}{0.62,0,0.12,0} +\xdefinecolor{Turquoise} {cmyk}{0.85,0,0.20,0} +\xdefinecolor{TealBlue} {cmyk}{0.86,0,0.34,0.02} +\xdefinecolor{Aquamarine} {cmyk}{0.82,0,0.30,0} +\xdefinecolor{BlueGreen} {cmyk}{0.85,0,0.33,0} +\xdefinecolor{Emerald} {cmyk}{1,0,0.50,0} +\xdefinecolor{JungleGreen} {cmyk}{0.99,0,0.52,0} +\xdefinecolor{SeaGreen} {cmyk}{0.69,0,0.50,0} +\xdefinecolor{Green} {cmyk}{1,0,1,0} +\xdefinecolor{ForestGreen} {cmyk}{0.91,0,0.88,0.12} +\xdefinecolor{PineGreen} {cmyk}{0.92,0,0.59,0.25} +\xdefinecolor{LimeGreen} {cmyk}{0.50,0,1,0} +\xdefinecolor{YellowGreen} {cmyk}{0.44,0,0.74,0} +\xdefinecolor{SpringGreen} {cmyk}{0.26,0,0.76,0} +\xdefinecolor{OliveGreen} {cmyk}{0.64,0,0.95,0.40} +\xdefinecolor{RawSienna} {cmyk}{0,0.72,1,0.45} +\xdefinecolor{Sepia} {cmyk}{0,0.83,1,0.70} +\xdefinecolor{Brown} {cmyk}{0,0.81,1,0.60} +\xdefinecolor{Tan} {cmyk}{0.14,0.42,0.56,0} +\xdefinecolor{Gray} {cmyk}{0,0,0,0.50} +\xdefinecolor{Black} {cmyk}{0,0,0,1} +\xdefinecolor{White} {cmyk}{0,0,0,0} +\endinput +%% diff --git a/Master/texmf-dist/tex/generic/vaucanson-g/VCPref-beamer.tex b/Master/texmf-dist/tex/generic/vaucanson-g/VCPref-beamer.tex new file mode 100644 index 00000000000..25b22c2baa9 --- /dev/null +++ b/Master/texmf-dist/tex/generic/vaucanson-g/VCPref-beamer.tex @@ -0,0 +1,46 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Package `VauCanSon-G' version 0.4 +%% +%% This is file `VCPref-slides'. +%% +%% IMPORTANT NOTICE: +%% +%% Copyright (C) 2002-2008 Sylvain Lombardy and Jacques Sakarovitch +%% +%% This package may be distributed under the terms of the LaTeX Project +%% Public License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +%% DESCRIPTION: +%% +%% `VCPref-beamer' contains initial values of VauCanSon-G +%% parameters suitable for drawing automata in slides. +%% Works with package `beamer'; +%% smaller scale values than those given in `VCPref-slides' +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Scales --- slides settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand{\LargeScale}{0.85} +\renewcommand{\MediumScale}{0.6} +\renewcommand{\SmallScale}{0.4} +\renewcommand{\TinyScale}{0.30} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% State aspect +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SetStateLineColor{blue} +\SetStateLineWidth{2pt} +\SetStateFillColor{Cyan} +\SetStateLabelColor{Sepia} +\FixDimState{solid}{YellowOrange}{1}{YellowOrange}{white} +%%%%%%%%%%%%%% +% Edge aspect +%%%%%%%%%%%%%% +\SetEdgeLineColor{Mahogany} +\SetEdgeLineWidth{1.2pt} +\SetEdgeLabelColor{OliveGreen} +%%% Dimmed edges +\FixDimEdge{dashed}{1.2}{Apricot}{Apricot} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput diff --git a/Master/texmf-dist/tex/generic/vaucanson-g/VCPref-default.tex b/Master/texmf-dist/tex/generic/vaucanson-g/VCPref-default.tex new file mode 100644 index 00000000000..849575e1eef --- /dev/null +++ b/Master/texmf-dist/tex/generic/vaucanson-g/VCPref-default.tex @@ -0,0 +1,160 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Package `Vaucanson-G' version 0.4 +%% +%% This is file `VCPref-default'. +%% +%% IMPORTANT NOTICE: +%% +%% Copyright (C) 2002-2008 Sylvain Lombardy and Jacques Sakarovitch +%% +%% This package may be distributed under the terms of the LaTeX Project +%% Public License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +%% DESCRIPTION: +%% +%% `VCPref-default' contains default values for Vaucanson-G +%% +%% Editing the file and changing these values is of course possible +%% but users are advised to rather edit the file `VCPref-mystyle' +%% instead. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Scales settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand{\LargeScale}{0.85} %float : argument of a \scalebox +\renewcommand{\MediumScale}{0.6} %float +\renewcommand{\SmallScale}{0.5} %float +\renewcommand{\TinyScale}{0.42} %float +\renewcommand{\VCGridScale}{1} % scale of psunit (in cm) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% State geometry +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setlength{\LargeStateDiameter}{1.2cm} %length +\setlength{\MediumStateDiameter}{.9cm} %length +\setlength{\SmallStateDiameter}{.6cm} %length +\setlength{\VerySmallStateDiameter}{.3cm} %length +\renewcommand{\VSStateLineCoef}{.6} %float: coef*\StateLineWidth +\renewcommand{\StateDimen}{outer} +\renewcommand{\StateDblDimen}{middle} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% State drawing +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SetStateLineStyle{solid} %% aspect (none, dashed, dotted) +\SetStateLineColor{black} %% color +\SetStateLineWidth{1.8pt} %% length +\SetStateFillStatus{solid} %% aspect +\SetStateFillColor{white} %% color +\renewcommand{\SmallStateFillStatus}{solid} % +\renewcommand{\SmallStateFillColor}{white} % +\SetStateLabelColor{black} %% color +\SetStateLabelScale{1.7} %% float +\FixStateLineDouble{0.6}{0.4} %% Double style: \StateLineDblCoef, +\StateLineDblfalse %% \StateLineDblSep, *\StateLineWidth +%%% Dimmed states +% LineStyle,LineColor,LineCoef (*\StateLineWidth),LabelColor,FillColor +\FixDimState{solid}{gray}{1}{gray}{white} %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Edge drawing (Edge is understood here as transitions!) +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SetEdgeLineStyle{solid} %% aspect +\SetEdgeLineColor{black} %% color +\SetEdgeLineWidth{1pt} %% length +\EdgeLineDblfalse +% coefs*\EdgeLineWidth -> (width of lines, distance) +\FixEdgeLineDouble{0.5}{0.6} %% +\SetEdgeLabelColor{black} %% color +\SetEdgeLabelScale{1.7} %% float +%%% arrows +\SetEdgeArrowWidth{5pt} %width of the edge arrow +\SetEdgeArrowLengthCoef{1.4} % +\setlength{\EdgeDblArrowWidth}{5.5pt} % width for double transitions +\renewcommand{\EdgeDblArrowLengthCoef}{1.7} +\SetEdgeArrowInsetCoef{0.1} %float : coef*\EdgeArrowWidth +\SetEdgeArrowStyle{->} %style (other styles : <-, |-|, -|,...) +\renewcommand{\EdgeRevArrowStyle}{<-} %style for reverse transitions +%%% Dimmed edges +% LineStyle,LineCoef,LineColor,LabelColor +\FixDimEdge{solid}{1.2}{gray}{gray} %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Edge geometry +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SetEdgeOffset{0pt} %% length +\renewcommand{\ForthBackEdgeOffset}{5} %% coef*\EdgeLineWidth -> offset +\setlength{\EdgeNodeSep}{0pt} +% int,color : coef*\EdgeLineWidth -> width of border +\FixEdgeBorder{2}{white} %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% ZZ geometry +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setlength{\ZZSize}{.9cm} % length : apparent diameter +\renewcommand{\ZZShape}{0.5} % coef: opening of the ZZ +\SetZZLineWidth{1.7} % float +% coef*\ZZSize -> distance added for labels +\renewcommand{\TransLabelZZCoef}{0.6} % float +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Arc geometry +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SetArcAngle{15} %% int (degree) +\SetLArcAngle{30} %% int (degree) +\SetArcCurvature{0.8} %% float +\SetArcOffset{1pt} %% length +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Loop geometry +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand{\LoopAngle}{30} +\renewcommand{\CLoopAngle}{22} +\renewcommand{\LoopVarAngle}{28} +\SetLoopOffset{0pt} %% length +\setlength{\LoopVarOffset}{.7pt} +% loop curvature +\renewcommand{\LoopOnLargeState}{5.8} %float +\renewcommand{\LoopOnMediumState}{7} %float +\renewcommand{\LoopOnSmallState}{9.6} %float +\renewcommand{\LoopOnVariableState}{5.1} %float +\renewcommand{\CLoopOnLargeState}{6} %float +\renewcommand{\CLoopOnMediumState}{8} %float +\renewcommand{\CLoopOnSmallState}{12} %float +\renewcommand{\CLoopOnVariableState}{5.2} %float +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Edge labels positioning +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setlength{\TransLabelSep}{3.5pt} +% per cent (use \Fix..LabelPosit with values in [10;90]) +\renewcommand{\EdgeLabelPosit}{.45} % +\renewcommand{\EdgeLabelRevPosit}{.55} +\renewcommand{\ArcLabelPosit}{.40} +\renewcommand{\ArcLabelRevPosit}{.60} +\renewcommand{\LArcLabelPosit}{.40} +\renewcommand{\LArcLabelRevPosit}{.60} +\renewcommand{\LoopLabelPosit}{.25} +\renewcommand{\LoopLabelRevPosit}{.75} +\renewcommand{\CLoopLabelPosit}{.25} +\renewcommand{\CLoopLabelRevPosit}{.75} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Initial states parameters +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% float : coef *\StateDiameter for size of initial and final arrows +\renewcommand{\ArrowOnMediumState}{1.5} %float +\renewcommand{\ArrowOnSmallState}{1.7} %float +\renewcommand{\ArrowOnLargeState}{1.3} %float +\renewcommand{\ArrowOnVerySmallState}{5} %float +% +\renewcommand{\InitStateLabelPosit}{.10} +\renewcommand{\InitStateLabelRevPosit}{.90} +\renewcommand{\FinalStateLabelPosit}{.90} +\renewcommand{\FinalStateLabelRevPosit}{.10} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Initialization +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SetVCDirectory{} %default dir=current dir +\HideFrame +\HideGrid +\MediumPicture +\HideName +\RigidLabel +\FullState %% PlainState +\MediumState +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput diff --git a/Master/texmf-dist/tex/generic/vaucanson-g/VCPref-mystyle.tex b/Master/texmf-dist/tex/generic/vaucanson-g/VCPref-mystyle.tex new file mode 100644 index 00000000000..53df4849e2f --- /dev/null +++ b/Master/texmf-dist/tex/generic/vaucanson-g/VCPref-mystyle.tex @@ -0,0 +1,93 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Package `Vaucanson-G' version 0.4 +%% +%% This is file `VCPref-mystyle'. +%% +%% IMPORTANT NOTICE: +%% +%% Copyright (C) 2002-2008 Sylvain Lombardy and Jacques Sakarovitch +%% +%% This package may be distributed under the terms of the LaTeX Project +%% Public License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +%% DESCRIPTION: +%% +%% `VCPref-mystyle' is style file for Vaucanson-G. +%% The wrapper vaucanson-g.sty can be called with the option {mystyle} +%% in which case this file this read after the file Vaucanson-G.tex +%% The file is ready to be edited by any user. +%% The actual values are those that give figure a look like with +%% the GasTex package. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Scales --- +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand{\LargeScale}{1.2} %float : argument of a \scalebox +\renewcommand{\MediumScale}{1} %float +\renewcommand{\SmallScale}{.7} %float +\renewcommand{\TinyScale}{0.5} %float +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% State parameters --- Default settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setlength{\LargeStateDiameter}{1.2cm} %length +\setlength{\MediumStateDiameter}{.8cm} %length +\setlength{\SmallStateDiameter}{.6cm} %length +\renewcommand{\StateDblDimen}{outer} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% State aspect +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SetStateLineWidth{.14mm} %% length +\SetStateFillStatus{none} %% aspect +\SetStateFillColor{black} %% color +\SetStateLabelScale{1} %% float +\FixStateLineDouble{2}{5} %% Double style: +%%%%%%%%%%%%%% +% Edge aspect +%%%%%%%%%%%%%% +\SetEdgeLineWidth{.14mm} %% length +\SetEdgeLabelColor{black} %% color +\SetEdgeLabelScale{1} %% float +\FixEdgeLineDouble{1.5}{2} %% float : +%%% arrows +\SetEdgeArrowWidth{1.03mm} %width of the edge arrow +\SetEdgeArrowLengthCoef{1.37} %float : +\setlength{\EdgeDblArrowWidth}{1.3mm} %width : +\renewcommand{\EdgeDblArrowLengthCoef}{1.09} % +\SetEdgeArrowInsetCoef{0} %float : coef*\EdgeArrowSizeDim +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Arc geometry +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SetArcAngle{17} %% int (degree) +\SetLArcAngle{30} %% int (degree) +\SetArcCurvature{0.7} %% float +\SetArcOffset{1pt} %% length +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Loop geometry +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand{\LoopOnLargeState}{5.5} %float +\renewcommand{\LoopOnMediumState}{7} %float : curvature +\renewcommand{\LoopOnSmallState}{9} %float +\renewcommand{\LoopOnVariableState}{4.5} %float +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Edge labels positionning +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand{\EdgeLabelPosit}{.5} %per cent +\renewcommand{\EdgeLabelRevPosit}{.5} +\renewcommand{\ArcLabelPosit}{.5} +\renewcommand{\ArcLabelRevPosit}{.5} +\renewcommand{\LArcLabelPosit}{.5} +\renewcommand{\LArcLabelRevPosit}{.5} +\renewcommand{\LoopLabelPosit}{.5} +\renewcommand{\LoopLabelRevPosit}{.5} +\renewcommand{\CLoopLabelPosit}{.5} +\renewcommand{\CLoopLabelRevPosit}{.5} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Initial states parameters +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand{\ArrowOnMediumState}{1} %float +\renewcommand{\ArrowOnSmallState}{1} %float +\renewcommand{\ArrowOnLargeState}{1} %float +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput diff --git a/Master/texmf-dist/tex/generic/vaucanson-g/VCPref-slides.tex b/Master/texmf-dist/tex/generic/vaucanson-g/VCPref-slides.tex new file mode 100644 index 00000000000..e8295cdb327 --- /dev/null +++ b/Master/texmf-dist/tex/generic/vaucanson-g/VCPref-slides.tex @@ -0,0 +1,46 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Package `VauCanSon-G' version 0.4 +%% +%% This is file `VCPref-slides'. +%% +%% IMPORTANT NOTICE: +%% +%% Copyright (C) 2002-2008 Sylvain Lombardy and Jacques Sakarovitch +%% +%% This package may be distributed under the terms of the LaTeX Project +%% Public License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +%% DESCRIPTION: +%% +%% `VCPref-slides' contains initial values of VauCanSon-G +%% parameters suitable for drawing automata in slides. +%% Works with packages `slides', `prosper', or `youpla' for instance +%% `VCPref-beamer' exists which gives smaller scale values +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Scales --- slides settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand{\LargeScale}{1.5} +\renewcommand{\MediumScale}{1.16} +\renewcommand{\SmallScale}{0.92} +\renewcommand{\TinyScale}{0.75} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% State aspect +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\SetStateLineColor{blue} +\SetStateLineWidth{2pt} +\SetStateFillColor{Cyan} +\SetStateLabelColor{Sepia} +\FixDimState{solid}{YellowOrange}{1}{YellowOrange}{white} +%%%%%%%%%%%%%% +% Edge aspect +%%%%%%%%%%%%%% +\SetEdgeLineColor{Mahogany} +\SetEdgeLineWidth{1.2pt} +\SetEdgeLabelColor{OliveGreen} +%%% Dimmed edges +\FixDimEdge{dashed}{1.2}{Apricot}{Apricot} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput diff --git a/Master/texmf-dist/tex/generic/vaucanson-g/Vaucanson-G.tex b/Master/texmf-dist/tex/generic/vaucanson-g/Vaucanson-G.tex new file mode 100644 index 00000000000..e915239b7be --- /dev/null +++ b/Master/texmf-dist/tex/generic/vaucanson-g/Vaucanson-G.tex @@ -0,0 +1,1156 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Package `VauCanSon-G' version 0.4 +%% +%% This is file `VauCanSon-G'. +%% +%% IMPORTANT NOTICE: +%% +%% Copyright (C) 2002-2008 Sylvain Lombardy and Jacques Sakarovitch +%% +%% This package may be distributed under the terms of the LaTeX Project +%% Public License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +%% DESCRIPTION: +%% +%% `VauCanSon-G' is the main file of the package and contains all +%% macro definitions file. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Writing VauCanSon-G macro +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\VCSG}% + {\textsc{V$\overline{\text{au}}$C% + \raisebox{.3ex}{$\underline{\text{an}}$}S% + $\overline{\text{on}}$-G}\xspace} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Commands for geometric constructions +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% constants +\newcommand{\SQRTwo}{0.717} +\newcommand{\SQRThree}{1.732} +\newcommand{\GoldMean}{0.618} +\newcommand{\GoldMeanI}{1.618} +\newcommand{\SQRGoldMeanI}{1.272} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Edge label drawing macros +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Separator in compound labels (eg \IOL{input}{output}) +\newcommand{\IOL}[2]{#1\!\mid\! #2} +%%% Stacked labels +\newcommand{\StackTwoLabels}[2]% + {\renewcommand{\arraystretch}{0.75}% + \begin{array}{c}#1\\ #2 \end{array}% + \renewcommand{\arraystretch}{1.333}} +\newcommand{\StackThreeLabels}[3]% + {\renewcommand{\arraystretch}{0.75}% + \begin{array}{c}#1\\ #2 \\ #3 \end{array}% + \renewcommand{\arraystretch}{1.333}} +%%% Stacked labels with + +\newcommand{\StackTwoLabelsP}[2]% + {\renewcommand{\arraystretch}{0.75}% + \begin{array}{c}#1\\ + \\ #2 \end{array}% + \renewcommand{\arraystretch}{1.333}} +\newcommand{\StackThreeLabelsP}[3]% + {\renewcommand{\arraystretch}{0.75}% + \begin{array}{c}#1\\ + \\ #2 \\ + \\ #3 \end{array}% + \renewcommand{\arraystretch}{1.333}} +%%% Lined up labels (with +) +\newcommand{\LineTwoLabelsP}[2]{#1 + #2} +\newcommand{\LineThreeLabelsP}[3]{#1 + #2 + #3} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Scales --- Default settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\LargeScale}{0.85} +\newcommand{\MediumScale}{0.6} +\newcommand{\SmallScale}{0.5} +\newcommand{\TinyScale}{0.42} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% State parameters --- Default settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Size = StateDiameter +%%% The preset sizes are given in cm, and not in "psunits". +%%% This allows to use different scales for the whole figure +%%% and for the "drawing grid". +\newlength{\MediumStateDiameter} +\newlength{\SmallStateDiameter} +\newlength{\LargeStateDiameter} +\newlength{\VerySmallStateDiameter} +\setlength{\MediumStateDiameter}{.9cm} +\setlength{\SmallStateDiameter}{.6cm} +\setlength{\LargeStateDiameter}{1.2cm} +\setlength{\VerySmallStateDiameter}{.3cm} +%%% Border line = StateLine +\newlength{\StateLineWidth} % width +\setlength{\StateLineWidth}{1.8pt} +\newcommand{\StateLineStyle}{solid} % style +\newcommand{\StateLineColor}{black} +\newif\ifStateLineDbl \StateLineDblfalse +\newcommand{\StateLineDblCoef}{0.6} +\newcommand{\StateLineDblSep}{0.4} +\newcommand{\VSStateLineCoef}{.6} % coef. for very small state +%%% State background and label +\newcommand{\StateFillStatus}{solid} +\newcommand{\StateFillColor}{white} +\newcommand{\StateLabelColor}{black} +\newcommand{\StateLabelScale}{1.7} +\newcommand{\SmallStateFillStatus}{solid} % +\newcommand{\SmallStateFillColor}{white} % + % As they have usually no labels it useful + % to have a coloring facility for the "SmallState" +%%% Dimmed states (e.g. for non accessible states) +\newcommand{\DimStateLineStyle}{solid} +\newcommand{\DimStateLineCoef}{1} % +\newcommand{\DimStateLineColor}{gray} +\newcommand{\DimStateLabelColor}{gray} +\newcommand{\DimStateFillColor}{white} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Edge drawing parameters --- Default settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% line +\newlength{\EdgeLineWidth} +\setlength{\EdgeLineWidth}{1pt} +\newcommand{\EdgeLineStyle}{solid} +\newif\ifEdgeLineDbl \EdgeLineDblfalse +%\newcommand{\EdgeLineDblStatus}{false} +\newcommand{\EdgeLineDblCoef}{0.5} +\newcommand{\EdgeLineDblSep}{0.6} +\newcommand{\EdgeLineColor}{black} +% arrow +\newlength{\EdgeArrowWidth} +\setlength{\EdgeArrowWidth}{5pt} +\newlength{\EdgeDblArrowWidth} +\setlength{\EdgeDblArrowWidth}{5.5pt} +\newcommand{\EdgeArrowLengthCoef}{1.4} +\newcommand{\EdgeDblArrowLengthCoef}{1.7} +\newcommand{\EdgeArrowInset}{0.1} +\newcommand{\EdgeArrowStyle}{->} +\newcommand{\EdgeRevArrowStyle}{<-} +% border +\newcommand{\EdgeLineBorderCoef}{2} +\newcommand{\EdgeLineBorderColor}{white} +% label +\newcommand{\EdgeLabelColor}{black} +\newcommand{\EdgeLabelScale}{1.7} +%%% Dimmed edges +\newcommand{\DimEdgeLineCoef}{1.2} +\newcommand{\DimEdgeLineStyle}{solid} +\newcommand{\DimEdgeLineColor}{gray} +\newcommand{\DimEdgeLabelColor}{gray} +%%% Zigzag edges parameter +\newlength{\ZZSize} +\setlength{\ZZSize}{.9cm} % =\MediumStateDiameter +\newcommand{\ZZShape}{0.5} +\newcommand{\ZZLineWidth}{1.7} % coefficient multiplicateur +% coef*\ZZSize -> distance added for labels +\newcommand{\TransLabelZZCoef}{0.6} % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Edge geometric parameters --- Default settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Edge +\newlength{\EdgeOffset} +\setlength{\EdgeOffset}{0pt} +\newcommand{\ForthBackEdgeOffset}{5}% coef +\newlength{\EdgeNodeSep}\setlength{\EdgeNodeSep}{0pt} +% Arc parameters +\newcommand{\VaucArcAngle}{15} +\newcommand{\VaucArcCurvature}{0.8} +\newlength{\VaucArcOffset}\setlength{\VaucArcOffset}{1pt} +% Large Arc parameters +\newcommand{\VaucLArcAngle}{30} +\newcommand{\VaucLArcCurvature}{0.8} +\newlength{\LoopOffset}\setlength{\LoopOffset}{0pt} +\newlength{\LoopVarOffset}\setlength{\LoopVarOffset}{.7pt} +\newcommand{\LoopAngle}{30} +\newcommand{\CLoopAngle}{22} +\newcommand{\LoopVarAngle}{28} +% Size of loops (depending on the size of the state) +\newcommand{\LoopOnMediumState}{7} +\newcommand{\LoopOnSmallState}{9.6} +\newcommand{\LoopOnLargeState}{5.8} +\newcommand{\LoopOnVariableState}{5.1} +\newcommand{\LoopOnVerySmallState}{15} +\newcommand{\CLoopOnMediumState}{8} +\newcommand{\CLoopOnSmallState}{12} +\newcommand{\CLoopOnLargeState}{6} +\newcommand{\CLoopOnVariableState}{5.2} +%\newcommand{\CLoopOnVerySmallState}{14} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Edge label parameters --- Default settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% label distance from transition +\newlength{\TransLabelSep}\setlength{\TransLabelSep}{3.5pt} +% label position on transitions +\newcommand{\EdgeLabelPosit}{.45}\newcommand{\EdgeLabelRevPosit}{.55} +\newcommand{\ArcLabelPosit}{.4}\newcommand{\ArcLabelRevPosit}{.6} +\newcommand{\LArcLabelPosit}{.4}\newcommand{\LArcLabelRevPosit}{.6} +\newcommand{\LoopLabelPosit}{.25}\newcommand{\LoopLabelRevPosit}{.75} +\newcommand{\CLoopLabelPosit}{.25}\newcommand{\CLoopLabelRevPosit}{.75} +% label position on initial-final arrow +\newcommand{\InitStateLabelPosit}{.1} +\newcommand{\InitStateLabelRevPosit}{.9} +\newcommand{\FinalStateLabelPosit}{.9} +\newcommand{\FinalStateLabelRevPosit}{.1} +%%% Size of initial and final arrow +% the size is relative to the diameter +% and the coefficient varies with the diameter +\newcommand{\ArrowOnStateCoef}{} +\newcommand{\ArrowOnMediumState}{1.5} +\newcommand{\ArrowOnSmallState}{1.7} +\newcommand{\ArrowOnLargeState}{1.3} +\newcommand{\ArrowOnVerySmallState}{5} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Shift for aligned labels +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newlength{\VertShiftH} \settoheight{\VertShiftH}{$\{$} +\newlength{\VertShiftD} \settodepth{\VertShiftD}{$\{$} +\newlength{\VertShift} +\setlength{\VertShift}{.5\VertShiftD-.5\VertShiftH} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% flags +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newif\ifVCFrame +\newcommand{\HideFrame}{\VCFramefalse} +\newcommand{\ShowFrame}{\VCFrametrue} +\newif\ifVCGrid +\newcommand{\HideGrid}{\VCGridfalse} +\newcommand{\ShowGrid}{\VCGridtrue} +\newif\ifVCRigidLabel +\newcommand{\RigidLabel}{\VCRigidLabeltrue} +\newcommand{\SwivelLabel}{\VCRigidLabelfalse} +\newif\ifVCStateLabelBaseLine +\newcommand{\AlignedLabel}{\VCStateLabelBaseLinetrue} +\newcommand{\FloatingLabel}{\VCStateLabelBaseLinefalse} +\HideFrame +\HideGrid +\RigidLabel +\FloatingLabel +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% style for the frame around the picture +\psset{unit=1cm} +\newpsstyle{VaucFrameStyle}% + {arrows=-,% + framesep=0pt,% + linewidth=0.6pt,% + linecolor=black,% + linestyle=solid,% + doubleline=false,% + fillcolor=white,% + fillstyle=none,% + cornersize=relative,% + framearc=0}% +\newcommand{\FrameStyle}{\psset{style=VaucFrameStyle}} +\newpsstyle{VaucGridStyle}% + {gridwidth=0.6pt,% + griddots=10,% + subgriddiv=1,% + gridlabels=7pt} +\newcommand{\GridStyle}{\psset{style=VaucGridStyle}} +% figure, vertically centered by default +% draw frame according to VCFrame flag +% Set the shift for aligned label w.r.t the current size of characters +\newenvironment{VCPicture}[2][.5]% + {\settoheight{\VertShiftH}{$\{$}% + \settodepth{\VertShiftD}{$\{$}% + \setlength{\VertShift}{.5\VertShiftD-.5\VertShiftH}% + \begin{pspicture}[#1]#2% + \ifVCFrame \FrameStyle \psframe#2\fi% + \ifVCGrid \FrameStyle\GridStyle \psgrid#2\fi% + }% + {\RstState\RstEdge\end{pspicture}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Scaling matters +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% The "sizes" (for states) and the "line widths" are given +%%% as "lengthes" in a fixed unit (cm or pt), whereas the positions +%%% are supposed to be given in "psunits". +%%% This allows to use different scaling parameters +%%% for the whole figure and for the "drawing grid". +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Scaling commands +\newcommand{\VCScale}{0.6}% Global scale parameter +\newcommand{\VCGridScale}{1}% Global scale parameter +% +\newcommand{\FixVCScale}[1]{\renewcommand{\VCScale}{#1}} +\newcommand{\FixVCGridScale}[1]{\renewcommand{\VCGridScale}{#1}} +% +\newcommand{\LargePicture}{\FixVCScale{\LargeScale}} +\newcommand{\MediumPicture}{\FixVCScale{\MediumScale}} +\newcommand{\SmallPicture}{\FixVCScale{\SmallScale}} +\newcommand{\TinyPicture}{\FixVCScale{\TinyScale}} +%%%%% Typical figure would look like +% \scalebox{\VCScale}{% +% \begin{VCPicture}{(x0,y0)(x1,y1)} +% % figure description +% \end{VCPicture}% +% } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Using a special directory for the figure +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\VCDirectory}{} +\newcommand{\SetVCDirectory}[1]{\renewcommand{\VCDirectory}{#1}} +% flag for printing the name of the figure file +\newif\ifVCName +\newcommand{\HideName}{\VCNamefalse} +\newcommand{\ShowName}{\VCNametrue} +\newcommand{\VCDraw}[2][\VCGridScale]% + {\psset{unit=#1cm}% + \scalebox{\VCScale}{#2}% + \psset{unit=1cm}} +\newcommand{\VCCall}[2][\VCGridScale]% + {\psset{unit=#1cm}% + \ifVCName\makebox[0pt][r]{\fbox{{\scriptsize #2}}}\fi% + \scalebox{\VCScale}{\input{\VCDirectory #2}}% + \psset{unit=1cm}} +%%% commands +\newcommand{\VCPut}[3][0]{\rput{#1}#2{#3}}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% State internal parameters --- Initial settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newlength{\StateLineWid} +\setlength{\StateLineWid}{\StateLineWidth} +\newcommand{\StateLineSty}{\StateLineStyle} +\newcommand{\StateLineCol}{\StateLineColor} +%\newcommand{\StateLineDblSta}{\StateLineDblStatus} +\newcommand{\StateLineDblWid}{\StateLineDblWidth} +\newcommand{\StateLineDblSp}{\StateLineDblSep} +\newcommand{\StateFillCol}{\StateFillColor} +\newcommand{\StateFillSta}{\StateFillStatus} +\newcommand{\StateLabelSca}{1} +\newcommand{\StateLabelCol}{\StateLabelColor} +\newcommand{\StateDimen}{outer} +\newcommand{\StateDblDimen}{middle} +%%% Initial-final quality +\newcommand{\VCIFflag}{2}\newcommand{\VCIFflagtemp}{2} +\newcommand{\PlainState}% + {\renewcommand{\VCIFflag}{0}\renewcommand{\VCIFflagtemp}{0}} +\newcommand{\FullState}% + {\renewcommand{\VCIFflag}{2}\renewcommand{\VCIFflagtemp}{2}} +\newcommand{\IFState}{\renewcommand{\VCIFflag}{1}} +\newcommand{\IFXState}{\renewcommand{\VCIFflag}{2}} +\newcommand{\RstVCIF}{\renewcommand{\VCIFflag}{\VCIFflagtemp}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% State drawing style +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% flag for hiding -- showing states (used for overlays in slides) +% the trick is to have two different styles and instead of +% saving\restoring parameters +\newif\ifVCShowState +\newcommand{\HideState}{\VCShowStatefalse} +\newcommand{\ShowState}{\VCShowStatetrue} +\ShowState % initialisation +% the only difference between the two styles is the linestyle +\newpsstyle{VaucStateStyle}% + {framesep=0pt,% + linewidth=\StateLineWid,% + linecolor=\StateLineCol,% + linestyle=\StateLineSty,% + doubleline=false,% + fillcolor=\StateFillCol,% + fillstyle=\StateFillSta,% + border=0pt, + dimen=\StateDimen,% + cornersize=relative,% + framearc=1,% + framesep=0pt} +\newpsstyle{VaucStateDblStyle}% + {framesep=0pt,% + linewidth=\StateLineDblCoef\StateLineWid,% + linecolor=\StateLineCol,% + linestyle=\StateLineSty,% + doubleline=true,% + doublesep=\StateLineDblSep\StateLineWid,% + fillcolor=\StateFillCol,% + fillstyle=\StateFillSta,% + border=0pt,% + dimen=\StateDblDimen,% + cornersize=relative,% + framearc=1,% + framesep=0pt} +\newpsstyle{VaucHiddenStateStyle}% + {framesep=0pt,% + linewidth=\StateLineWid,% + linecolor=\StateLineCol,% + linestyle=none,% + fillcolor=\StateFillCol,% + fillstyle=none,% + border=0pt,% + dimen=outer,% + cornersize=relative,% + framearc=1,% + framesep=0pt} +\newcommand{\StateStyle}% + {\ifVCShowState% + \ifStateLineDbl\psset{style=VaucStateDblStyle}% + \else\psset{style=VaucStateStyle}% + \fi% + \else\psset{style=VaucHiddenStateStyle}% + \fi} +%%% used in StateVar +\newcommand{\VaucStateRBLabel}[1]% + {\textcolor{\StateLabelCol}% + {\scalebox{\StateLabelSca}% + {\scalebox{\StateLabelScale}% + {\rput[B]{0}(0,\VertShift){$#1$}}}}} +%%% +\newcommand{\VaucStateLabel}[1]% + {\ifVCShowState% + \ifVCRigidLabel% + \ifVCStateLabelBaseLine% + \textcolor{\StateLabelCol}% + {\scalebox{\StateLabelSca}% + {\scalebox{\StateLabelScale}% + {\rput[B]% + {*0}% + (0,\VertShift){$#1$}}}}% + \else% + \textcolor{\StateLabelCol}% + {\scalebox{\StateLabelSca}% + {\scalebox{\StateLabelScale}% + {\rput{*0}% + (0,0)% + {$ #1 $}}}}% + \fi% + \else% + \textcolor{\StateLabelCol}% + {\scalebox{\StateLabelSca}% + {\scalebox{\StateLabelScale}{$#1$}}}% + \fi% + \else% + \textcolor{white}% + {\scalebox{\StateLabelSca} + {\scalebox{\StateLabelScale}{$#1$}}}% + \fi} +%%% Write label without state (not documented) +%%% 080612 new version that takes into account color, scale and +%%% baseline +\newcommand{\VCStateLabel}[1]% + {\ifVCStateLabelBaseLine + \textcolor{\StateLabelCol}% + {\scalebox{\StateLabelSca}% + {\scalebox{\StateLabelScale}% + {\rput[B]{0}(0,\VertShift){$#1$}}}}% + \else + \textcolor{\StateLabelCol}% + {\scalebox{\StateLabelSca}% + {\scalebox{\StateLabelScale}{$#1$}}} + \fi + }% +\newcommand{\VCPutStateLabel}[2]{\VCPut{#1}{\VCStateLabel{#2}}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% State parameter changing and setting macros +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% line style +\newcommand{\ChgStateLineStyle}[1]{\renewcommand{\StateLineSty}{#1}} +\newcommand{\RstStateLineStyle}{\ChgStateLineStyle{\StateLineStyle}} +\newcommand{\SetStateLineStyle}[1]% + {\renewcommand{\StateLineStyle}{#1}\RstStateLineStyle}% +%%% doubleline status +\newcommand{\StateLineDouble}{\StateLineDbltrue} +\newcommand{\StateLineSimple}{\StateLineDblfalse} +%%% line width +\newcommand{\ChgStateLineWidth}[1]% + {\setlength{\StateLineWid}{#1\StateLineWidth}}% +\newcommand{\RstStateLineWidth}{\ChgStateLineWidth{1}}% +\newcommand{\SetStateLineWidth}[1]% ATTN the parameter is a length + {\setlength{\StateLineWidth}{#1}\RstStateLineWidth} +%%% line color +\newcommand{\ChgStateLineColor}[1]{\renewcommand{\StateLineCol}{#1}} +\newcommand{\RstStateLineColor}{\ChgStateLineColor{\StateLineColor}} +\newcommand{\SetStateLineColor}[1]% + {\renewcommand{\StateLineColor}{#1}\RstStateLineColor} +%%% background fill status +\newcommand{\ChgStateFillStatus}[1]{\renewcommand{\StateFillSta}{#1}} +\newcommand{\RstStateFillStatus}{\ChgStateFillStatus{\StateFillStatus}} +\newcommand{\SetStateFillStatus}[1]% + {\renewcommand{\StateFillStatus}{#1}\RstStateFillStatus} +%%% backgroud color +\newcommand{\ChgStateFillColor}[1]{\renewcommand{\StateFillCol}{#1}} +\newcommand{\RstStateFillColor}{\ChgStateFillColor{\StateFillColor}} +\newcommand{\SetStateFillColor}[1]% + {\renewcommand{\StateFillColor}{#1}\RstStateFillColor}% +%%% label color +\newcommand{\ChgStateLabelColor}[1]{\renewcommand{\StateLabelCol}{#1}} +\newcommand{\RstStateLabelColor}{\ChgStateLabelColor{\StateLabelColor}} +\newcommand{\SetStateLabelColor}[1]% + {\renewcommand{\StateLabelColor}{#1}\RstStateLabelColor} +%%% label scale +\newcommand{\ChgStateLabelScale}[1]{\renewcommand{\StateLabelSca}{#1}} +\newcommand{\RstStateLabelScale}{\ChgStateLabelScale{1}} +\newcommand{\SetStateLabelScale}[1]% + {\renewcommand{\StateLabelScale}{#1}\RstStateLabelScale} +%%% double line +\newcommand{\FixStateLineDouble}[2]% + {\renewcommand{\StateLineDblCoef}{#1}% + \renewcommand{\StateLineDblSep}{#2}} +%%% dimmed state +\newcommand{\FixDimState}[5]% + {\renewcommand{\DimStateLineStyle}{#1}% + \renewcommand{\DimStateLineCoef}{#3}% + \renewcommand{\DimStateLineColor}{#2}% + \renewcommand{\DimStateLabelColor}{#4}% + \renewcommand{\DimStateFillColor}{#5}} +\newcommand{\DimState}% + {\ChgStateLineStyle{\DimStateLineStyle}% + \ChgStateLineWidth{\DimStateLineCoef}% + \ChgStateLineColor{\DimStateLineColor}% + \ChgStateFillColor{\DimStateFillColor}% + \ChgStateLabelColor{\DimStateLabelColor}} +%%% restoring state parameters +\newcommand{\RstState}% + {\RstStateLineStyle% + \RstStateLineWidth% + \RstStateLineColor% + \RstStateFillStatus% + \RstStateFillColor% + \RstStateLabelColor% + \RstStateLabelScale} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% State drawing +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% preparation +\newlength{\StateDiam} +\newlength{\VaucAOS}\newlength{\VaucAOSdiag} +%%% A flag to remember the current size of state +\newcommand{\StateSizeFlag}{} +% +\newcommand{\SetAOS}% + {\setlength{\VaucAOS}{\ArrowOnStateCoef\StateDiam}% + \setlength{\VaucAOSdiag}{\SQRTwo\VaucAOS}} +%% parameter for variable width states +\newlength{\VariableStateIntDiam} +\newlength{\VariableStateWidth} +\newlength{\VariableStateITPos} +\newcommand{\SetStateIntDiam}% + {\setlength{\VariableStateIntDiam}{\StateDiam}% + \addtolength{\VariableStateIntDiam}{-2\StateLineWid}} +% Loop parameters +\newcommand{\LoopSize}{}\newcommand{\LoopSi}{} +\newcommand{\LoopVarSize}{}\newcommand{\LoopVarSi}{} +\newcommand{\CLoopSize}{}\newcommand{\CLoopSi}{} +% +\newcommand{\ChgLoopSize}[1]{\renewcommand{\LoopSi}{#1}} +\newcommand{\RstLoopSize}{\ChgLoopSize{\LoopSize}} +\newcommand{\SetLoopSize}[1]% + {\renewcommand{\LoopSize}{#1}\RstLoopSize} +% +\newcommand{\ChgCLoopSize}[1]{\renewcommand{\CLoopSi}{#1}} +\newcommand{\RstCLoopSize}{\ChgCLoopSize{\CLoopSize}} +\newcommand{\SetCLoopSize}[1]% + {\renewcommand{\CLoopSize}{#1}\RstCLoopSize} +% +\newcommand{\ChgLoopVarSize}[1]{\renewcommand{\LoopVarSi}{#1}} +\newcommand{\RstLoopVarSize}{\ChgLoopVarSize{\LoopVarSize}} +\newcommand{\SetLoopVarSize}[1]% + {\renewcommand{\LoopVarSize}{#1}\RstLoopVarSize} +% +%%% setting state diameter -- internal command +\newcommand{\SetStateDiam}[4]% + {\setlength{\StateDiam}{#1}% + \renewcommand{\ArrowOnStateCoef}{#2}% + \SetLoopSize{#3}% + \SetLoopVarSize{#3}% + \SetCLoopSize{#4}% + \SetStateIntDiam% + \SetAOS} +%%% setting state diameter -- external command +\newcommand{\FixStateDiameter}[1]% + {\setlength{\StateDiam}{#1}% + \SetStateIntDiam% + \SetAOS} +%%% setting coeff for initial/final arrows +\newcommand{\FixAOSLengthCoef}[1]% + {\renewcommand{\ArrowOnStateCoef}{#1}% + \SetAOS} +%%% +\newcommand{\MediumState}% + {\SetStateDiam{\MediumStateDiameter}% + {\ArrowOnMediumState}% + {\LoopOnMediumState}% + {\CLoopOnMediumState}% + \renewcommand{\StateSizeFlag}{0}} +\newcommand{\SmallState}% + {\SetStateDiam{\SmallStateDiameter}% + {\ArrowOnSmallState}% + {\LoopOnSmallState}% + {\CLoopOnSmallState}% + \renewcommand{\StateSizeFlag}{1}} +\newcommand{\LargeState}% + {\SetStateDiam{\LargeStateDiameter}% + {\ArrowOnLargeState}% + {\LoopOnLargeState} + {\CLoopOnLargeState}% + \renewcommand{\StateSizeFlag}{2}} +% +\newcommand{\RstStateSize}% + {\ifthenelse{\equal{\StateSizeFlag}{0}}% + {\MediumState}% + {\ifthenelse{\equal{\StateSizeFlag}{1}}% + {\SmallState}{\LargeState}}} +%%% Initialization +\MediumState +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\VaucState}[3][{}]% + {\rput#2% + {\Cnode[radius=.5\StateDiam](0,0){#3}% + \ifVCShowState% + \nput[labelsep=-.5\StateDiam]% + {0}{#3}{\makebox[0pt]{\VaucStateLabel{#1}}}% + \fi% + \ifthenelse{\equal{\VCIFflag}{0}}% + {}% + {\pnode(-\VaucAOS,0){#3w}% + \pnode(\VaucAOS,0){#3e}% + \pnode(0,\VaucAOS){#3n}% + \pnode(0,-\VaucAOS){#3s}% + \ifthenelse{\equal{\VCIFflag}{1}}% + {}% + {\pnode(-\VaucAOSdiag,\VaucAOSdiag){#3nw}% + \pnode(\VaucAOSdiag,\VaucAOSdiag){#3ne}% + \pnode(-\VaucAOSdiag,-\VaucAOSdiag){#3sw}% + \pnode(\VaucAOSdiag,-\VaucAOSdiag){#3se}}% + }% + }% + } +% +\newcommand{\State}[3][{}]{\StateStyle\VaucState[#1]{#2}{#3}} +% +\newcommand{\FinalState}[3][{}]% + {\psset{style=VaucStateDblStyle}% + \VaucState[#1]{#2}{#3}} +%%% ecological commands +\newcommand{\StateIF}[3][{}]{\IFState\State[#1]{#2}{#3}\RstVCIF}% +\newcommand{\StateIFX}[3][{}]{\IFXState\State[#1]{#2}{#3}\RstVCIF}% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Very Small State +\newcommand{\VSState}[2]% + {\renewcommand{\ArrowOnStateCoef}{\ArrowOnVerySmallState}% + \FixStateDiameter{\VerySmallStateDiameter}% + \ChgStateLineWidth{\VSStateLineCoef}% + \State{#1}{#2}% + \RstStateLineWidth% + \RstStateSize}% mod 020201 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% white brace, of no width, used to place the label vertically +%\newlength{\BraceLength} +\newcommand{\WB}{\textcolor{white}{\{\!\!\!}}% +\newcommand{\HS}{} +\newlength{\ExtraSpace}\setlength{\ExtraSpace}{1em} +% +\newcommand{\StateVar}[3][]% + {\StateStyle% + \settowidth{\VariableStateWidth}% + {\scalebox{\StateLabelSca}% + {\scalebox{\StateLabelScale}{$#1$}}}% + \addtolength{\VariableStateWidth}{\ExtraSpace}% + \ifthenelse{\lengthtest{\VariableStateWidth<\VariableStateIntDiam}}% + {\setlength{\VariableStateWidth}{\VariableStateIntDiam}}% + {}% + \setlength{\VariableStateITPos}{\ArrowOnStateCoef\StateDiam}% + \addtolength{\VariableStateITPos}{0.5\VariableStateWidth}% + \addtolength{\VariableStateITPos}{-0.5\StateDiam}% + \rput#2% + {\pnode(\VariableStateITPos,0){#3e}% + \pnode(-\VariableStateITPos,0){#3w}% + \pnode(0,\ArrowOnStateCoef\StateDiam){#3n}% + \pnode(0,-\ArrowOnStateCoef\StateDiam){#3s}}% + \rput#2% + {\rnode{#3}% + {\psframebox{\protect\rule[-.5\VariableStateIntDiam]% + {0pt}% + {\VariableStateIntDiam}% + \protect\rule{\VariableStateWidth}{0pt}}}}% + \rput#2{\VaucStateRBLabel{#1}}% + }% +%%%%% macro FinalStateVar %%%%%%%%%%%%%%%%%%% +\newcommand{\StateLineDblTemp}{0} +\newcommand{\FinalStateVar}[3][]% + {\ifStateLineDbl\renewcommand{\StateLineDblTemp}{1}% + \else\renewcommand{\StateLineDblTemp}{0}% + \fi% + \StateLineDouble% + \StateVar[#1]{#2}{#3}% + \ifthenelse{\equal{\StateLineDblTemp}{0}}% + {\StateLineSimple}{}% + } +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\VarLoopOn}% + {\ChgLoopOffset{\LoopVarOff}% + \ChgLoopSize{\LoopVarSi}% + \ChgLoopAngle{\LoopVarAng}} +\newcommand{\VarLoopOff}{\RstLoopOffset\RstLoopSize\RstLoopAngle} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Edge drawing parameters --- Initial settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newlength{\EdgeLineWid} +\setlength{\EdgeLineWid}{\EdgeLineWidth} +\newcommand{\EdgeLineSty}{\EdgeLineStyle} +\newcommand{\EdgeLineCol}{\EdgeLineColor} +% label +\newcommand{\EdgeLabelSca}{1} +\newcommand{\EdgeLabelCol}{\EdgeLabelColor} +% arrow +\newlength{\EdgeArrowSZDim} +\setlength{\EdgeArrowSZDim}{\EdgeArrowWidth} +\newcommand{\EdgeArrowSZNum}{\EdgeArrowLengthCoef} +\newcommand{\EdgeArrowSty}{\EdgeArrowStyle} +\newcommand{\EdgeArrowIns}{\EdgeArrowInset} +% border +\newlength{\EdgeLineBord}\setlength{\EdgeLineBord}{0pt} +%%% Zigzag edge parameters +\newlength{\ZZSiZ} +\setlength{\ZZSiZ}{\ZZSize}% +\newcommand{\ZZLineWid}{\ZZLineWidth}% multiplying coefficient +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% Edge geometric parameters --- Initial settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Edge +\newlength{\EdgeOff} +\setlength{\EdgeOff}{\EdgeOffset} +% Arc +\newcommand{\VaucArcAng}{\VaucArcAngle} +\newcommand{\VaucLArcAng}{\VaucLArcAngle} +\newlength{\VaucArcOff} +\setlength{\VaucArcOff}{\VaucArcOffset} +% Loop +\newcommand{\VaucArcCurv}{\VaucArcCurvature} +\newcommand{\VaucLArcCurv}{\VaucLArcCurvature} +\newcommand{\LoopAng}{\LoopAngle} +\newcommand{\CLoopAng}{\CLoopAngle} +\newcommand{\LoopVarAng}{\LoopVarAngle} +\newlength{\LoopOff}\setlength{\LoopOff}{\LoopOffset} +\newlength{\LoopVarOff}\setlength{\LoopVarOff}{\LoopVarOffset} +\newlength{\EdgeNodeSP}\setlength{\EdgeNodeSP}{\EdgeNodeSep} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Edge label parameters --- Initial settings +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% label distance from transition +\newlength{\TransLabelSP}\setlength{\TransLabelSP}{\TransLabelSep} +% label position on transitions +\newcommand{\EdgeLabelPos}{\EdgeLabelPosit} +\newcommand{\ArcLabelPos}{\ArcLabelPosit} +\newcommand{\LArcLabelPos}{\LArcLabelPosit} +\newcommand{\LoopLabelPos}{\LoopLabelPosit} +\newcommand{\CLoopLabelPos}{\CLoopLabelPosit} +% label position on initial-final arrow +\newcommand{\InitStateLabelPos}{\InitStateLabelPosit} +\newcommand{\FinalStateLabelPos}{\FinalStateLabelPosit} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Transition styles +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newpsstyle{VaucEdgeStyle}% + {arrows=\EdgeArrowSty,% + arrowsize=\EdgeArrowSZDim,% + arrowlength=\EdgeArrowSZNum,% + arrowinset=\EdgeArrowIns,% + linewidth=\EdgeLineWid,% + linecolor=\EdgeLineCol,% + linestyle=\EdgeLineSty,% + doubleline=false,% + bordercolor=\EdgeLineBorderColor,% + border=\EdgeLineBord,% + fillstyle=none,% + offset=\EdgeOff,% + labelsep=\TransLabelSP,% + nodesep=\EdgeNodeSP} +\newpsstyle{VaucEdgeDblStyle}% + {arrows=\EdgeArrowSty,% + arrowsize=\EdgeArrowSZDim,% + arrowlength=\EdgeArrowSZNum,% + arrowinset=\EdgeArrowIns,% + linewidth=\EdgeLineDblCoef\EdgeLineWid,% + linecolor=\EdgeLineCol, + linestyle=\EdgeLineSty,% + doubleline=true,% + doublesep=\EdgeLineDblSep\EdgeLineWid,% + bordercolor=\EdgeLineBorderColor,% + border=\EdgeLineBord,% + fillstyle=none,% + offset=\EdgeOff,% + labelsep=\TransLabelSP,% + nodesep=\EdgeNodeSP} +%%% Arc +\newpsstyle{VaucArcR}% + {ncurv=\VaucArcCurv,% + arcangle=-\VaucArcAng,% + labelsep=\TransLabelSP,% + offset=-\VaucArcOff} +\newpsstyle{VaucArcL}% + {ncurv=\VaucArcCurv,% + arcangle=\VaucArcAng,% + labelsep=\TransLabelSP,% + offset=\VaucArcOff} +\newpsstyle{VaucLArcR}% + {ncurv=\VaucLArcCurv,% + arcangle=-\VaucLArcAng,% + labelsep=\TransLabelSP,% + offset=-\VaucArcOff} +\newpsstyle{VaucLArcL}% + {ncurv=\VaucLArcCurv,% + arcangle=\VaucLArcAng,% + labelsep=\TransLabelSP,% + offset=\VaucArcOff} +%%% zig-zag +\newpsstyle{VaucZigzagStyle}% + {linewidth=\ZZLineWid\EdgeLineWid,% + linearc=1.6pt,% + coilwidth=1.2\ZZSiZ,% + coilheight=\ZZShape,% + coilarmA=0.1\ZZSiZ,% + coilarmB=0.3\ZZSiZ,% + labelsep=\TransLabelSP,% + nodesep=\EdgeNodeSP} +%%% +\newcommand{\EdgeStyle}% + {\ifEdgeLineDbl\psset{style=VaucEdgeDblStyle}% + \else\psset{style=VaucEdgeStyle}% + \fi} +\newcommand{\ZigzagStyle}% + {\addtolength{\TransLabelSP}{\TransLabelZZCoef\ZZSiZ}% + \psset{style=VaucZigzagStyle}% + \addtolength{\TransLabelSP}{-\TransLabelZZCoef\ZZSiZ}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Transition parameter changing and setting macros +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% geometric parameters +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% edges +\newcommand{\ChgEdgeOffset}[1]{\setlength{\EdgeOff}{#1}} +\newcommand{\RstEdgeOffset}{\ChgEdgeOffset{\EdgeOffset}} +\newcommand{\SetEdgeOffset}[1]% + {\setlength{\EdgeOffset}{#1}\RstEdgeOffset} +\newcommand{\ForthBackOffset}% + {\setlength{\EdgeOff}{\ForthBackEdgeOffset\EdgeLineWid}} +% +\newcommand{\ChgEdgeNodeSep}[1]{\setlength{\EdgeNodeSP}{#1\EdgeNodeSep}} +\newcommand{\RstEdgeNodeSep}{\ChgEdgeNodeSep{1}} +\newcommand{\SetEdgeNodeSep}[1]% + {\setlength{\EdgeNodeSep}{#1}\RstEdgeNodeSep} +%% arcs +\newcommand{\ChgArcAngle}[1]{\renewcommand{\VaucArcAng}{#1}} +\newcommand{\RstArcAngle}{\ChgArcAngle{\VaucArcAngle}} +\newcommand{\SetArcAngle}[1]% + {\renewcommand{\VaucArcAngle}{#1}\RstArcAngle} +% +\newcommand{\ChgLArcAngle}[1]{\renewcommand{\VaucLArcAng}{#1}} +\newcommand{\RstLArcAngle}{\ChgLArcAngle{\VaucLArcAngle}} +\newcommand{\SetLArcAngle}[1]% + {\renewcommand{\VaucLArcAngle}{#1}\RstLArcAngle} +% +\newcommand{\ChgArcCurvature}[1]{\renewcommand{\VaucArcCurv}{#1}} +\newcommand{\RstArcCurvature}{\ChgArcCurvature{\VaucArcCurvature}} +\newcommand{\SetArcCurvature}[1]% + {\renewcommand{\VaucArcCurvature}{#1}\RstArcCurvature} +% +\newcommand{\ChgLArcCurvature}[1]{\renewcommand{\VaucLArcCurv}{#1}} +\newcommand{\RstLArcCurvature}{\ChgLArcCurvature{\VaucLArcCurvature}} +\newcommand{\SetLArcCurvature}[1]% + {\renewcommand{\VaucLArcCurvature}{#1}\RstLArcCurvature} +% +\newcommand{\ChgArcOffset}[1]{\setlength{\VaucArcOff}{#1}} +\newcommand{\RstArcOffset}{\setlength{\VaucArcOff}{\VaucArcOffset}} +\newcommand{\SetArcOffset}[1]% + {\renewcommand{\VaucArcOffset}{#1}\RstArcOffset} +% +\newcommand{\ChgLoopOffset}[1]{\setlength{\LoopOff}{#1}} +\newcommand{\RstLoopOffset}{\setlength{\LoopOff}{\LoopOffset}} +\newcommand{\SetLoopOffset}[1]% + {\renewcommand{\LoopOffset}{#1}\RstLoopOffset} +% +\newcommand{\ChgLoopAngle}[1]{\renewcommand{\LoopAng}{#1}} +\newcommand{\RstLoopAngle}{\ChgLoopAngle{\LoopAngle}} +\newcommand{\SetLoopAngle}[1]% + {\renewcommand{\LoopAngle}{#1}\RstLoopAngle} +% +\newcommand{\ChgCLoopAngle}[1]{\renewcommand{\CLoopAng}{#1}} +\newcommand{\RstCLoopAngle}{\ChgCLoopAngle{\CLoopAngle}} +\newcommand{\SetCLoopAngle}[1]% + {\renewcommand{\CLoopAngle}{#1}\RstCLoopAngle} +%% labels +\newcommand{\ChgEdgeLabelSep}[1]% + {\setlength{\TransLabelSP}{#1\TransLabelSep}} +\newcommand{\RstEdgeLabelSep}{\ChgEdgeLabelSep{1}} +\newcommand{\SetEdgeLabelSep}[1]% + {\setlength{\TransLabelSep}{#1}\RstEdgeLabelSep} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% drawing parameters +\newcommand{\ChgEdgeLineColor}[1]{\renewcommand{\EdgeLineCol}{#1}} +\newcommand{\RstEdgeLineColor}{\ChgEdgeLineColor{\EdgeLineColor}} +\newcommand{\SetEdgeLineColor}[1]% + {\renewcommand{\EdgeLineColor}{#1}\RstEdgeLineColor} +% +\newcommand{\ChgEdgeLineStyle}[1]{\renewcommand{\EdgeLineSty}{#1}} +\newcommand{\RstEdgeLineStyle}{\ChgEdgeLineStyle{\EdgeLineStyle}} +\newcommand{\SetEdgeLineStyle}[1]% + {\renewcommand{\EdgeLineStyle}{#1}\RstEdgeLineStyle} +% +\newcommand{\ChgEdgeLineWidth}[1]% coefficient ! + {\setlength{\EdgeLineWid}{#1\EdgeLineWidth}} +\newcommand{\RstEdgeLineWidth}{\ChgEdgeLineWidth{1}} +\newcommand{\SetEdgeLineWidth}[1]% length ! + {\setlength{\EdgeLineWidth}{#1}\RstEdgeLineWidth} +% double line +\newcommand{\EdgeLineDouble}% + {\EdgeLineDbltrue% + \ChgEdgeArrowWidth{\EdgeDblArrowWidth}% + \ChgEdgeArrowLengthCoef{\EdgeDblArrowLengthCoef}} +\newcommand{\EdgeLineSimple}% + {\EdgeLineDblfalse\RstEdgeArrowWidth\RstEdgeArrowLengthCoef} +\newcommand{\FixEdgeLineDouble}[2]{% + \renewcommand{\EdgeLineDblCoef}{#1}% + \renewcommand{\EdgeLineDblSep}{#2}} +% edge labels +\newcommand{\ChgEdgeLabelColor}[1]{\renewcommand{\EdgeLabelCol}{#1}} +\newcommand{\RstEdgeLabelColor}{\ChgEdgeLabelColor{\EdgeLabelColor}} +\newcommand{\SetEdgeLabelColor}[1]% + {\renewcommand{\EdgeLabelColor}{#1}\RstEdgeLabelColor} +% +\newcommand{\ChgEdgeLabelScale}[1]{\renewcommand{\EdgeLabelSca}{#1}} +\newcommand{\RstEdgeLabelScale}{\ChgEdgeLabelScale{1}} +\newcommand{\SetEdgeLabelScale}[1]% + {\renewcommand{\EdgeLabelScale}{#1}\RstEdgeLabelScale} +% arrows +\newcommand{\ChgEdgeArrowStyle}[1]{\renewcommand{\EdgeArrowSty}{#1}} +\newcommand{\RstEdgeArrowStyle}{\ChgEdgeArrowStyle{\EdgeArrowStyle}} +\newcommand{\SetEdgeArrowStyle}[1]% + {\renewcommand{\EdgeArrowStyle}{#1}\RstEdgeArrowStyle} +% +\newcommand{\ChgEdgeArrowWidth}[1]% + {\setlength{\EdgeArrowSZDim}{#1}} % !! length !! +\newcommand{\RstEdgeArrowWidth}{\ChgEdgeArrowWidth{\EdgeArrowWidth}} +\newcommand{\SetEdgeArrowWidth}[1]% + {\setlength{\EdgeArrowWidth}{#1} \RstEdgeArrowWidth} +% +\newcommand{\ChgEdgeArrowLengthCoef}[1]{\renewcommand{\EdgeArrowSZNum}{#1}} +\newcommand{\RstEdgeArrowLengthCoef}{\ChgEdgeArrowLengthCoef{\EdgeArrowLengthCoef}} +\newcommand{\SetEdgeArrowLengthCoef}[1]% + {\renewcommand{\EdgeArrowLengthCoef}{#1}\RstEdgeArrowLengthCoef} +% +\newcommand{\ChgEdgeArrowInsetCoef}[1]{\renewcommand{\EdgeArrowIns}{#1}} +\newcommand{\RstEdgeArrowInsetCoef}{\ChgEdgeArrowInsetCoef{\EdgeArrowInset}} +\newcommand{\SetEdgeArrowInsetCoef}[1]% + {\renewcommand{\EdgeArrowInset}{#1}\RstEdgeArrowInsetCoef} +% +\newcommand{\ReverseArrow}% + {\ChgEdgeArrowStyle{\EdgeRevArrowStyle}% + \renewcommand{\EdgeLabelPos}{\EdgeLabelRevPosit}% + \renewcommand{\ArcLabelPos}{\ArcLabelRevPosit}% + \renewcommand{\LArcLabelPos}{\LArcLabelRevPosit}% + \renewcommand{\LoopLabelPos}{\LoopLabelRevPosit}% + \renewcommand{\CLoopLabelPos}{\CLoopLabelRevPosit}% + \renewcommand{\InitStateLabelPos}{\InitStateLabelRevPosit}% + \renewcommand{\FinalStateLabelPos}{\FinalStateLabelRevPosit}} +\newcommand{\StraightArrow}% + {\ChgEdgeArrowStyle{\EdgeArrowStyle}% + \renewcommand{\EdgeLabelPos}{\EdgeLabelPosit}% + \renewcommand{\ArcLabelPos}{\ArcLabelPosit}% + \renewcommand{\LArcLabelPos}{\LArcLabelPosit}% + \renewcommand{\LoopLabelPos}{\LoopLabelPosit}% + \renewcommand{\CLoopLabelPos}{\CLoopLabelPosit}% + \renewcommand{\InitStateLabelPos}{\InitStateLabelPosit}% + \renewcommand{\FinalStateLabelPos}{\FinalStateLabelPosit}} +% border +\newcommand{\FixEdgeBorder}[2]% + {\renewcommand{\EdgeLineBorderCoef}{#1}% + \renewcommand{\EdgeLineBorderColor}{#2}} +\newcommand{\EdgeBorder}% + {\setlength{\EdgeLineBord}{\EdgeLineBorderCoef\EdgeLineWid}} +\newcommand{\EdgeBorderOff}{\setlength{\EdgeLineBord}{0pt}} +% dimmed edges +\newcommand{\FixDimEdge}[4]{% + \renewcommand{\DimEdgeLineStyle}{#1}% + \renewcommand{\DimEdgeLineCoef}{#2}% + \renewcommand{\DimEdgeLineColor}{#3}% + \renewcommand{\DimEdgeLabelColor}{#4}}% +% +\newcommand{\DimEdge}% + {\ChgEdgeLineStyle{\DimEdgeLineStyle}% + \ChgEdgeLineWidth{\DimEdgeLineCoef}% + \ChgEdgeLineColor{\DimEdgeLineColor}% + \ChgEdgeLabelColor{\DimEdgeLabelColor}} +% zigzag edges +\newcommand{\ChgZZSize}[1]{\setlength{\ZZSiZ}{#1}} +\newcommand{\RstZZSize}{\setlength{\ZZSiZ}{\ZZSize}} +\newcommand{\SetZZSize}[1]{\setlength{\ZZSiZe}{#1}\RstZZSize} +% +\newcommand{\ChgZZLineWidth}[1]{\renewcommand{\ZZLineWid}{#1}} +\newcommand{\RstZZLineWidth}{\ChgZZLineWidth{\ZZLineWidth}} +\newcommand{\SetZZLineWidth}[1]% + {\renewcommand{\ZZLineWidth}{#1}\RstZZLineWidth} +%%% +\newcommand{\RstEdge}% + {\RstEdgeOffset% + \RstArcAngle% + \RstLArcAngle% + \RstArcCurvature% + \RstLArcCurvature% + \RstArcOffset% + \RstLoopOffset% + \RstLoopSize% + \RstEdgeLineColor% + \RstEdgeLineStyle% + \RstEdgeLineWidth% + \EdgeLineSimple% + \StraightArrow%\EdgeBorderOff% + \RstEdgeLabelScale% + \RstEdgeLabelColor} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Transition drawing +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% composition of transition label +\newcommand{\VaucEdgeLabel}[1]% + {\textcolor{\EdgeLabelCol}% + {\scalebox{\EdgeLabelSca}% + {\scalebox{\EdgeLabelScale}{$#1$}}}}% +%%% Edges +\newcommand{\EdgeL}[4][{\EdgeLabelPos}]% + {\EdgeStyle \ncline{#2}{#3} \naput[npos=#1]{\VaucEdgeLabel{#4}}} +\newcommand{\EdgeR}[4][{\EdgeLabelPos}]% + {\EdgeStyle \ncline{#2}{#3} \nbput[npos=#1]{\VaucEdgeLabel{#4}}} +%%% Arcs +\newcommand{\ArcL}[4][{\ArcLabelPos}]% + {\EdgeStyle% + \psset{style=VaucArcL}% + \ncarc{#2}{#3}% + \naput[npos=#1]{\VaucEdgeLabel{#4}}} +\newcommand{\ArcR}[4][{\ArcLabelPos}]% + {\EdgeStyle% + \psset{style=VaucArcR}% + \ncarc{#2}{#3}% + \nbput[npos=#1]{\VaucEdgeLabel{#4}}} +\newcommand{\LArcL}[4][{\LArcLabelPos}]% + {\EdgeStyle% + \psset{style=VaucLArcL}% + \ncarc{#2}{#3}% + \naput[npos=#1]{\VaucEdgeLabel{#4}}} +\newcommand{\LArcR}[4][{\LArcLabelPos}]% + {\EdgeStyle% + \psset{style=VaucLArcR}% + \ncarc{#2}{#3}% + \nbput[npos=#1]{\VaucEdgeLabel{#4}}} +%%% Loops +\newcounter{anglea}\newcounter{angleb} +\newcommand{\LoopXR}[7]% + {{\setcounter{anglea}{#2-#4}}% + {\setcounter{angleb}{#2+#4}}% + {\EdgeStyle% + \psset{angleA=\theanglea,angleB=\theangleb,offset=#5,ncurv=#6}% + \nccurve{#3}{#3}% + \nbput[npos=#1]{\VaucEdgeLabel{#7}}}} +\newcommand{\LoopXL}[7]% + {{\setcounter{anglea}{#2+#4}}% + {\setcounter{angleb}{#2-#4}}% + {\EdgeStyle% + \psset{angleA=\theanglea,angleB=\theangleb,offset=-#5,ncurv=#6}% + \nccurve{#3}{#3}% + \naput[npos=#1]{\VaucEdgeLabel{#7}}}} +% +\newcommand{\LoopR}[4][{\LoopLabelPos}]% + {\LoopXR{#1}{#2}{#3}{\LoopAng}{\LoopOff}{\LoopSi}{#4}} +\newcommand{\LoopL}[4][{\LoopLabelPos}]% + {\LoopXL{#1}{#2}{#3}{\LoopAng}{\LoopOff}{\LoopSi}{#4}} +\newcommand{\CLoopR}[4][{\CLoopLabelPos}]% + {\LoopXR{#1}{#2}{#3}{\CLoopAng}{\LoopOff}{\LoopSi}{#4}} +\newcommand{\CLoopL}[4][{\CLoopLabelPos}]% + {\LoopXL{#1}{#2}{#3}{\CLoopAng}{\LoopOff}{\LoopSi}{#4}} +\newcommand{\LoopVarR}[4][{\LoopLabelPos}]% + {\LoopXR{#1}{#2}{#3}{\LoopVarAng}{\LoopVarOff}{\LoopVarSi}{#4}} +\newcommand{\LoopVarL}[4][{\LoopLabelPos}]% + {\LoopXL{#1}{#2}{#3}{\LoopVarAng}{\LoopVarOff}{\LoopVarSi}{#4}} +% +\newcommand{\LoopW}[3][{\LoopLabelPos}]{\LoopR[#1]{180}{#2}{#3}} +\newcommand{\LoopE}[3][{\LoopLabelPos}]{\LoopL[#1]{0}{#2}{#3}} +\newcommand{\LoopN}[3][{\LoopLabelPos}]{\LoopL[#1]{90}{#2}{#3}} +\newcommand{\LoopS}[3][{\LoopLabelPos}]{\LoopR[#1]{-90}{#2}{#3}} +\newcommand{\LoopNW}[3][{\LoopLabelPos}]{\LoopR[#1]{135}{#2}{#3}} +\newcommand{\LoopNE}[3][{\LoopLabelPos}]{\LoopL[#1]{45}{#2}{#3}} +\newcommand{\LoopSW}[3][{\LoopLabelPos}]{\LoopL[#1]{-135}{#2}{#3}} +\newcommand{\LoopSE}[3][{\LoopLabelPos}]{\LoopR[#1]{-45}{#2}{#3}} +\newcommand{\CLoopW}[3][{\CLoopLabelPos}]{\CLoopR[#1]{180}{#2}{#3}} +\newcommand{\CLoopE}[3][{\CLoopLabelPos}]{\CLoopL[#1]{0}{#2}{#3}} +\newcommand{\CLoopN}[3][{\CLoopLabelPos}]{\CLoopL[#1]{90}{#2}{#3}} +\newcommand{\CLoopS}[3][{\CLoopLabelPos}]{\CLoopR[#1]{-90}{#2}{#3}} +\newcommand{\CLoopNW}[3][{\CLoopLabelPos}]{\CLoopR[#1]{135}{#2}{#3}} +\newcommand{\CLoopNE}[3][{\CLoopLabelPos}]{\CLoopL[#1]{45}{#2}{#3}} +\newcommand{\CLoopSW}[3][{\CLoopLabelPos}]{\CLoopL[#1]{-135}{#2}{#3}} +\newcommand{\CLoopSE}[3][{\CLoopLabelPos}]{\CLoopR[#1]{-45}{#2}{#3}} +\newcommand{\LoopVarN}[3][{\CLoopLabelPos}]{\LoopVarL[#1]{90}{#2}{#3}} +\newcommand{\LoopVarS}[3][{\CLoopLabelPos}]{\LoopVarR[#1]{-90}{#2}{#3}} +%%% Zigzag edges +\newcommand{\ZZEdge}[2]% + {\EdgeStyle% + \ZigzagStyle% + \nczigzag{#1}{#2}} +\newcommand{\ZZEdgeL}[4][{\EdgeLabelRevPosit}]% + {\EdgeStyle% + \ZigzagStyle% + \nczigzag{#2}{#3}% + \naput[npos=#1]{\VaucEdgeLabel{#4}}} +\newcommand{\ZZEdgeR}[4][{\EdgeLabelRevPosit}]% + {\EdgeStyle% + \ZigzagStyle% + \nczigzag{#2}{#3}% + \nbput[npos=#1]{\VaucEdgeLabel{#4}}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Initial-final arrow drawing +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% implicit parameter +\newcommand{\InitialDir}{w}\newcommand{\FinalDir}{e} +% without label +\newcommand{\Initial}[2][\InitialDir]{\EdgeStyle\ncline{#2#1}{#2}} +\newcommand{\Final}[2][\FinalDir]{\EdgeStyle\ncline{#2}{#2#1}} +% with label +% NB modified syntax eg \InitialL[pos]{dir}{statename}{label} +\newcommand{\InitialL}[4][{\InitStateLabelPos}]% + {\EdgeStyle% + \ncline{#3#2}{#3}% + \naput[npos=#1]{\VaucEdgeLabel{#4}}} +\newcommand{\InitialR}[4][{\InitStateLabelPos}]% + {\EdgeStyle% + \ncline{#3#2}{#3}% + \nbput[npos=#1]{\VaucEdgeLabel{#4}}} +\newcommand{\FinalL}[4][{\FinalStateLabelPos}]% + {\EdgeStyle% + \ncline{#3}{#3#2}% + \naput[npos=#1]{\VaucEdgeLabel{#4}}} +\newcommand{\FinalR}[4][{\FinalStateLabelPos}]% + {\EdgeStyle% + \ncline{#3}{#3#2}% + \nbput[npos=#1]{\VaucEdgeLabel{#4}}} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%% Reprise des macros pstricks +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\newcommand{\Point}[2]{\pnode#1{#2}} +\newcommand{\Edge}[2]{\EdgeStyle\ncline{#1}{#2}} +% +\newcommand{\VArcL}[5][{\ArcLabelPos}]% + {\EdgeStyle% + \psset{style=VaucLArcL}% + \ncarc[#2]{#3}{#4}% + \naput[npos=#1]{\VaucEdgeLabel{#5}}} +\newcommand{\VArcR}[5][{\ArcLabelPos}]% + {\EdgeStyle% + \psset{style=VaucLArcR}% + \ncarc[#2]{#3}{#4}% + \nbput[npos=#1]{\VaucEdgeLabel{#5}}} +% +\newcommand{\VCurveL}[5][{\ArcLabelPos}]% + {\EdgeStyle% + \psset{angleA=0,angleB=180,ncurv=1}% + \nccurve[#2]{#3}{#4}% + \naput[npos=#1]{\VaucEdgeLabel{#5}}} +\newcommand{\VCurveR}[5][{\ArcLabelPos}]% + {\EdgeStyle% + \psset{angleA=0,angleB=0,ncurv=1}% + \nccurve[#2]{#3}{#4}% + \nbput[npos=#1]{\VaucEdgeLabel{#5}}} +% +\newcommand{\LabelL}[2][{\EdgeLabelPos}]% + {\naput[npos=#1]{\VaucEdgeLabel{#2}}} +\newcommand{\LabelR}[2][{\EdgeLabelPos}]% + {\nbput[npos=#1]{\VaucEdgeLabel{#2}}} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/Master/texmf-dist/tex/generic/vaucanson-g/vaucanson-g.sty b/Master/texmf-dist/tex/generic/vaucanson-g/vaucanson-g.sty new file mode 100644 index 00000000000..33c6513dbc2 --- /dev/null +++ b/Master/texmf-dist/tex/generic/vaucanson-g/vaucanson-g.sty @@ -0,0 +1,71 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Package `VauCanSon-G' version 0.4 +%% +%% This is file `vaucanson-g.sty'. +%% +%% IMPORTANT NOTICE: +%% +%% Copyright (C) 2002-2008 Sylvain Lombardy and Jacques Sakarovitch +%% +%% This package may be distributed under the terms of the LaTeX Project +%% Public License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +%% DESCRIPTION: +%% +%% `vaucanson-g.sty' is the wrapper for the package `VauCanSon-G' +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{vaucanson-g}% + [2008/10/27 package wrapper for VauCanSon-G v. 0.4] + \def\fileversion{0.4} + \def\filedate{2008/10/27} +\DeclareOption{default}{} % default option +\DeclareOption{slides}{\AtEndOfPackage{\input VCPref-slides.tex}} +\DeclareOption{beamer}{\AtEndOfPackage{\input VCPref-beamer.tex}} +% next is preparation for a user defined style file +\DeclareOption{mystyle}{\AtEndOfPackage{\input VCPref-mystyle.tex}} +%%%% option for compatibility with 0.3 (thanks, Akim, for the option) +\DeclareOption{pstricks1-10}{} % explicit option is now unnecessary +\ProcessOptions +%%%% +\RequirePackage{ifthen} +\RequirePackage[pst]{xcolor} +% compatibility with older version of xcolor +\input{VCColor-names.def} +% +\RequirePackage{pstricks} +% PSTricks 1.10 changed \scalebox. Compatibility hack. +\@ifpackagelater{pstricks}{2005/08/20}% + {\def\scalebox{\psscalebox}}{}% +\RequirePackage{pst-node} +\RequirePackage{pst-plot} +\RequirePackage{pst-coil} +\RequirePackage{multido} +\RequirePackage{pst-3d} +\RequirePackage{calc} +\input Vaucanson-G.tex +% PSTricks 1.10 changed the interface. Compatibility hack. +\@ifpackagelater{pstricks}{2005/08/20} + {% + \def\VaucProjectionOnSecondComponent(#1,#2)(#3,#4){#2}% + \def\VaucProjectionOnFourthComponent(#1,#2)(#3,#4){#4}% + \newlength{\VaucMinHeight}% + \newlength{\VaucMaxHeight}% + \renewenvironment{VCPicture}[2][.5]% + {\settoheight{\VertShiftH}{$\{$}% + \settodepth{\VertShiftD}{$\{$}% + \setlength{\VertShift}{.5\VertShiftD-.5\VertShiftH}% + \pssetlength{\VaucMinHeight}{\VaucProjectionOnSecondComponent#2}% + \pssetlength{\VaucMaxHeight}{\VaucProjectionOnFourthComponent#2}% + \addtolength{\VaucMinHeight}{-\VaucMaxHeight}% + \begin{pspicture}[shift=#1\VaucMinHeight]#2% + \ifVCFrame \FrameStyle \psframe#2\fi% + \ifVCGrid \FrameStyle\GridStyle \psgrid#2\fi}% + {\RstState\RstEdge\end{pspicture}}% + }% + {} +\input VCPref-default.tex % Initialization with default values +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput diff --git a/Master/texmf-dist/tex/generic/vaucanson-g/vaucanson.sty b/Master/texmf-dist/tex/generic/vaucanson-g/vaucanson.sty new file mode 100644 index 00000000000..d0cff731f59 --- /dev/null +++ b/Master/texmf-dist/tex/generic/vaucanson-g/vaucanson.sty @@ -0,0 +1,73 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Package `VauCanSon-G' version 0.4 +%% +%% This is file `vaucanson-g.sty'. +%% +%% IMPORTANT NOTICE: +%% +%% Copyright (C) 2002-2008 Sylvain Lombardy and Jacques Sakarovitch +%% +%% This package may be distributed under the terms of the LaTeX Project +%% Public License, as described in lppl.txt in the base LaTeX distribution. +%% Either version 1.0 or, at your option, any later version. +%% +%% DESCRIPTION: +%% +%% `vaucanson-g.sty' is the wrapper for the package `VauCanSon-G' +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\ProvidesPackage{vaucanson-g}% + [2008/10/27 package wrapper for VauCanSon-G v. 0.4] + \def\fileversion{0.4} + \def\filedate{2008/10/27} +\typeout{vaucanson.sty is an obsolete name for vaucanson-g.sty. A file is kept +under that name in order to ensure upward compatibility.} +\DeclareOption{default}{} % default option +\DeclareOption{slides}{\AtEndOfPackage{\input VCPref-slides.tex}} +\DeclareOption{beamer}{\AtEndOfPackage{\input VCPref-beamer.tex}} +% next is preparation for a user defined style file +\DeclareOption{mystyle}{\AtEndOfPackage{\input VCPref-mystyle.tex}} +%%%% option for compatibility with 0.3 (thanks, Akim, for the option) +\DeclareOption{pstricks1-10}{} % explicit option is now unnecessary +\ProcessOptions +%%%% +\RequirePackage{ifthen} +\RequirePackage[pst]{xcolor} +% compatibility with older version of xcolor +\input{VCColor-names.def} +% +\RequirePackage{pstricks} +% PSTricks 1.10 changed \scalebox. Compatibility hack. +\@ifpackagelater{pstricks}{2005/08/20}% + {\def\scalebox{\psscalebox}}{}% +\RequirePackage{pst-node} +\RequirePackage{pst-plot} +\RequirePackage{pst-coil} +\RequirePackage{multido} +\RequirePackage{pst-3d} +\RequirePackage{calc} +\input Vaucanson-G.tex +% PSTricks 1.10 changed the interface. Compatibility hack. +\@ifpackagelater{pstricks}{2005/08/20} + {% + \def\VaucProjectionOnSecondComponent(#1,#2)(#3,#4){#2}% + \def\VaucProjectionOnFourthComponent(#1,#2)(#3,#4){#4}% + \newlength{\VaucMinHeight}% + \newlength{\VaucMaxHeight}% + \renewenvironment{VCPicture}[2][.5]% + {\settoheight{\VertShiftH}{$\{$}% + \settodepth{\VertShiftD}{$\{$}% + \setlength{\VertShift}{.5\VertShiftD-.5\VertShiftH}% + \pssetlength{\VaucMinHeight}{\VaucProjectionOnSecondComponent#2}% + \pssetlength{\VaucMaxHeight}{\VaucProjectionOnFourthComponent#2}% + \addtolength{\VaucMinHeight}{-\VaucMaxHeight}% + \begin{pspicture}[shift=#1\VaucMinHeight]#2% + \ifVCFrame \FrameStyle \psframe#2\fi% + \ifVCGrid \FrameStyle\GridStyle \psgrid#2\fi}% + {\RstState\RstEdge\end{pspicture}}% + }% + {} +\input VCPref-default.tex % Initialization with default values +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\endinput |