\ifx\PSTricksLoaded\endinput \else \input pstricks \fi\relax \catcode`@=11 \def\@enamedef#1{\expandafter\edef\csname #1\endcsname} \def\lingmkactive#1{% \@enamedef{ling@restore\string#1}{\@makeaux#1=\the\catcode`#1}% \catcode`#1=13\ignorespaces} \def\lingmkletter#1{% \@enamedef{ling@restore\string#1}{\@makeaux#1=\the\catcode`#1}% \catcode`#1=11\ignorespaces} \def\@makeaux{\noexpand\catcode\noexpand`\noexpand} \def\lingrestore#1{\edef\tempa{ling@restore\string#1}% \expandafter\csname\tempa\endcsname} \def\writeln#1{\immediate\write16{#1}\ignorespaces} \def\@gobbleignore#1{\ignorespaces} \begingroup \def\:{\ling@gobblespace} \expandafter\gdef\: {} \endgroup \def\ling@getpars#1{% \def\k@@p{#1}\@ifnextchar[\ling@getpars@a\ling@getpars@e} \def\ling@getpars@a[#1]{\def\pst@pars{#1}\ling@getpars@b} \def\ling@getpars@b{\futurelet\TTemp\ling@getpars@c} \def\ling@getpars@c{\ifx\TTemp\@sptoken \let\next\ling@getpars@d \else \let\next\k@@p \fi \next} \def\ling@getpars@d{\expandafter\k@@p\ling@gobblespace} \def\ling@getpars@e{\let\pst@pars\@empty \k@@p} \def\get{\begingroup \get@A \get@B} \def\get@A{\bgroup \catcode`_=11 \catcode`~=11} \def\get@B #1 {\get@C #1 \endgroup} \def\getinput{\get@A \get@C} \def\get@C #1 {\gdef\@filename{#1}\egroup \mark{\@filename} \input\@filename} %% public dimensions \newdimen\dimpuba \newdimen\dimpubb \newdimen\dimpubc \newdimen\dimpubd \newdimen\dimpube \newdimen\YA \newdimen\YB \newdimen\YC \def\interpolate(#1)(#2)#3#4{{\SpecialCoor \pst@getcoor{#1}\pst@tempa% \pst@getcoor{#2}\pst@tempb% \pnode(!% \pst@tempa /YA exch \pst@number\psyunit div def /XA exch \pst@number\psxunit div def \pst@tempb /YB exch \pst@number\psyunit div def /XB exch \pst@number\psxunit div def /dx XB XA sub def /dy YB YA sub def dx #3\space mul XA add dy #3\space mul YA add){#4}}\ignorespaces } %% parameter setting \pst@addfams{ling} \def\newlingkey{\@ifnextchar!\newlingkey@a\newlingkey@b} \def\newlingkey@a#1#2{% \define@key[lingset]{ling}{#2}% {\@lingvalue{#2}##1\@nil \@enamedef{ling@#2}{\the\pst@dima}}% } \def\newlingkey@b#1{% \define@key[lingset]{ling}{#1}% {\@enamedef{ling@#1}{##1}}% } \def\@lingvalue#1#2#3\@nil{\ifx#2!% \pssetlength\pst@dimb{#3} \expandafter\pst@dima\csname ling@#1\endcsname \advance\pst@dima by \pst@dimb \else \pssetlength\pst@dima{#2#3}\fi } \def\lingsetkeys{\setkeys[lingset]{ling}} \def\Lingsetkeys#1{\setkeys*[lingset]{ling}{#1}% \ifx\XKV@rm\@empty \else \expandafter\psset\expandafter{\XKV@rm}\fi} \define@key[lingset]{ling}{style}{% \edef\temp{\csname ling@#1style\endcsname}% \expandafter\lingsetkeys\expandafter{\temp}} \def\newlingstyle#1#2{% \expandafter\def\csname ling@#1style\endcsname{#2}} \catcode`@=12