% lily-ps-defs.tex
%
\edef\lilypsdefsELC{\the\endlinechar}%
\endlinechar -1\relax

% Header info (macros/defs, etc) should go into a \special{! ... };
% note the ! sign.  See dvips.info for details.
%
% We protect punctuation characters with \string to avoid problems with
% language specific shorthands (e.g. `:' for French, `"' for German, etc.).

\gdef\lilypondsetdimen#1{
  \expandafter\gdef\csname #1ps\endcsname{}
  \special{
    \string!
    /#1 (\csname #1\endcsname) set_tex_dimen
  }
}

\gdef\lilypondspace{ }

\gdef\lilypondpostscript{
  % A document processed with lilypond-book can contain music fragments in
  % different sizes.  To reduce overhead, we define `lyscaleXXX' PS macros
  % only once.
  \lilypondifundefined{lyscale\lilypondpaperoutputscale}
    {
      \expandafter\gdef\csname lyscale\lilypondpaperoutputscale\endcsname{}
      % This sets CTM so that you get to the currentpoint
      % by executing a 0 0 moveto
      \special{
        \string!
        /lyscale\lilypondpaperoutputscale
          {\lilypondpaperoutputscale\lilypondspace\scaletounit %
           dup scale} def
      }
    }
    {}
                      
  \def\embeddedps##1{
    \special{
      \string"
      lyscale\lilypondpaperoutputscale\lilypondspace ##1}
  }

  \lilypondifundefined{lilypondpaperblotdiameterps}
    {\lilypondsetdimen{lilypondpaperblotdiameter}}
    {}
}

\gdef\lilypondexperimentalfeatures{}

\endlinechar \lilypsdefsELC
\endinput
