%
% WARNING: don't leave blank lines in the PS-code; they are
% transformed into \par 
%

%
% header info (macros/defs, etc) should go into a \special{! ... }, 
% note the ! sign.  See dvips.info for details.
%

% Use of 
% /foo { operatorname } bind def
%
% ``compiles'' operatorname binding in the body of foo, making
% the code faster, and more reliable (less flexible)

% transplant a TeX dimension into the PS output.
\def\PSsetTeXdimen#1{\expandafter\special{! /#1 (\the\csname #1\endcsname) deftexdimen}}

\def\turnOnPostScript{%
\special{!
% PS helper: convert (0.2pt) to the token 0.2
/settexdimen
{
	/thestring exch def
        thestring 0 thestring length 2 sub
        getinterval
        token
        pop exch pop 
} def
%
/deftexdimen
{
        settexdimen
        def     
} def
}
\PSsetTeXdimen{staffrulethickness}
\PSsetTeXdimen{staffheight}
% urg, no dvips.info over here...
%\special{! \input lily.ps }
\special{!
(lily.ps) findlibfile 
{
	exch pop //systemdict /run get exec
} 
{ 
	/undefinedfilename signalerror 
} ifelse
}
%
\def\embeddedps##1{%
        % This sets CTM so that you get to the currentpoint
        % by executing a 0 0 moveto
        \special{ps: @beginspecial @setspecial ##1 @endspecial}       
}
%
%
%\PSsetTeXdimen{staffrulethickness}
%\PSsetTeXdimen{staffheight}
}

\def\turnOnExperimentalFeatures{%
\special{ps:
}}

