+2002-10-21 Werner Lemberg <wl@gnu.org>
+
+ * tex/lily-ps-defs.tex (\lilypondsetdimen): Define ID macro.
+ (\lilypondpostscript): Define PS macros `lyscaleXXX' (`XXX' is the
+ scaling factor) only once and use them in the definition of
+ \embeddedps.
+ * ps/music-drawing-routines.ps (skeel): Removed.
+
2002-10-21 Jan Nieuwenhuizen <janneke@gnu.org>
* Documentation/topdocs/INSTALL.texi: Add note about using ksh for
% Header info (macros/defs, etc) should go into a \special{! ... };
% note the ! sign. See dvips.info for details.
%
-% Escape the colon with \string to avoid problems with French while using
-% the Babel package.
+% We protect punctuation characters with \string to avoid problems with
+% language specific shorthands (e.g. `:' for French, `"' for German, etc.).
\gdef\lilypondsetdimen#1{
- \expandafter\special{
- ! /#1 (\csname #1\endcsname) set_tex_dimen
+ \expandafter\gdef\csname #1ps\endcsname{}
+ \special{
+ \string!
+ /#1 (\csname #1\endcsname) set_tex_dimen
}
}
\gdef\lilypondspace{ }
\gdef\lilypondpostscript{
- % This sets CTM so that you get to the currentpoint
- % by executing a 0 0 moveto
+ % 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{
- ps\string: @beginspecial @setspecial %
- \lilypondpaperoutputscale\lilypondspace\scaletounit %
- \lilypondpaperoutputscale\lilypondspace\scaletounit %
- % FUCKING REDHAT XDVI -- ARG!
- skeel ##1 @endspecial
- }
+ \string"
+ lyscale\lilypondpaperoutputscale\lilypondspace ##1}
}
- \lilypondsetdimen{lilypondpaperblotdiameter}
+
+ \lilypondifundefined{lilypondpaperblotdiameterps}
+ {\lilypondsetdimen{lilypondpaperblotdiameter}}
+ {}
}
\gdef\lilypondexperimentalfeatures{}