X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tex%2Flily-ps-defs.tex;h=4a05f9d46fba820359d498e7d56eb8a9f41f3cef;hb=96e14d746b102f223acf6b6f4cdb8b0f0a11cd24;hp=99a7e13c2cc83c882feb389c0f39d6d01b4421d6;hpb=8ef3c0a1a21dfa4d86481130b9a61bbdd27d9e22;p=lilypond.git diff --git a/tex/lily-ps-defs.tex b/tex/lily-ps-defs.tex index 99a7e13c2c..4a05f9d46f 100644 --- a/tex/lily-ps-defs.tex +++ b/tex/lily-ps-defs.tex @@ -1,66 +1,43 @@ -% -% WARNING: don't leave blank lines in the PS-code; they are -% transformed into \par -% +%% 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. -% +%% 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.). -% Use of -% /foo { operatorname } bind def -% -% ``compiles'' operatorname binding in the body of foo, making -% the code faster, and more reliable (less flexible) +\gdef\lilypondsetdimen#1{ + \expandafter\gdef\csname #1ps\endcsname{} + \special{ + \string! + /#1 (\csname #1\endcsname) set_tex_dimen}} -% transplant a TeX dimension into the PS output. -\def\PSsetTeXdimen#1{\expandafter\special{! /#1 (\the\csname #1\endcsname) deftexdimen}} +\gdef\lilypondspace{ } -\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} -} +\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}}} -\def\turnOnExperimentalFeatures{% -\special{ps: -}} +\endlinechar \lilypsdefsELC +\endinput +%% end lily-ps-defs.tex