From 468aed10889c4f7742f7e0e053879bb97e5fec94 Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Mon, 21 Oct 2002 19:20:40 +0000 Subject: [PATCH] * 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. --- ChangeLog | 8 +++++++ ps/music-drawing-routines.ps | 3 --- tex/lily-ps-defs.tex | 42 +++++++++++++++++++++++++----------- 3 files changed, 37 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index de2be3b9c7..b2992e9335 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2002-10-21 Werner Lemberg + + * 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 * Documentation/topdocs/INSTALL.texi: Add note about using ksh for diff --git a/ps/music-drawing-routines.ps b/ps/music-drawing-routines.ps index 9ca5846657..4cee740b1b 100644 --- a/ps/music-drawing-routines.ps +++ b/ps/music-drawing-routines.ps @@ -4,9 +4,6 @@ /blot-diameter { lilypondpaperblotdiameter } bind def -% fucking redhat xdvi patch. -/skeel { scale } bind def - /set_tex_dimen { cvr def } bind def diff --git a/tex/lily-ps-defs.tex b/tex/lily-ps-defs.tex index 71e31e8aab..8a4522a2e7 100644 --- a/tex/lily-ps-defs.tex +++ b/tex/lily-ps-defs.tex @@ -6,30 +6,46 @@ % 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{} -- 2.39.2