X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ps%2Flilyponddefs.ps;h=b4116e2b21276363c483052fb4b85d47852856f0;hb=c43893c79c40c0308c253d043334de9b34d3a211;hp=6c903a5290874cc1f29b16e3e8ccfe5637ae0710;hpb=a2136cd8e59947183b765d3ff5e507f1e5e8cde2;p=lilypond.git diff --git a/ps/lilyponddefs.ps b/ps/lilyponddefs.ps index 6c903a5290..b4116e2b21 100644 --- a/ps/lilyponddefs.ps +++ b/ps/lilyponddefs.ps @@ -1,49 +1,35 @@ -%!PS-Adobe-1.0: lilyponddefs.ps +%!PS-Adobe-2.0: lilyponddefs.ps +% TODO: +% * junk all magic, start-line/stop-line just: placebox @ x.y % % Functions for direct PostScript output -% hmm % /setgray { 1 add } bind def % To let gs load fonts from builddir, do: -% export GS_LIB=$(pwd)/mf/out: +% export GS_LIB=$(pwd)/mf/out:/usr/share/texmf/fonts/type1/bluesky/cm /staff-line-thickness lilypondpaperlinethickness def /staff-height lilypondpaperstaffheight def /line-width lilypondpaperlinewidth def -% FIXME: why isn't this set (by default) by lily? -% /text-height lilypondpapertextheight def - /lily-output-units 2.83464 def %% milimeter % /lily-output-units 0.996264 def %% true points. -/output-scale -lilypondpaperoutputscale lily-output-units mul -def +/output-scale lilypondpaperoutputscale lily-output-units mul def -/set-ps-scale-to-lily-scale -{ -output-scale output-scale scale -} bind def +/set-ps-scale-to-lily-scale { output-scale output-scale scale } bind def /paper-size { lilypondpaperpapersize } bind def -% FIXME -% urg, read from paper block -% fixed base line skip value, for single line staves -/base-line-skip lilypondpaperlineheight def - /init-paper { gsave .1 setlinewidth clippath pathbbox newpath /vsize exch def - /hsize exch def pop pop pop - - %FIXME: - %vsize text-height sub 2 div /top-margin exch def - 144 2 div /top-margin exch def + /hsize exch def pop pop pop pop + % FIXME + /top-margin 2 def hsize line-width sub 2 div /left-margin exch def grestore } bind def @@ -59,156 +45,63 @@ output-scale output-scale scale grestore } bind def -/start-system % height -{ - dup base-line-skip gt { - /line-height exch def - } - { - pop /line-height base-line-skip def - } ifelse - line-y top-margin sub base-line-skip lt { - showpage - /line-y vsize top-margin sub def - } if - gsave - line-x line-y translate -} bind def - -/stop-system -{ - /the-line exch def - the-line - stroke - grestore - line-y line-height output-scale mul sub /line-y exch def -} bind def - -% FIXME: font definitions should come from LilyPond -% built-in ps fonts are ugly -/huge-bold-font { - /Palatino-Bold findfont 20.7 scalefont setfont -} bind def - -/Large-bold-font { - /Palatino-Bold findfont 17.3 scalefont setfont -} bind def - -/large-bold-font { - /Palatino-Bold findfont 14.4 scalefont setfont -} bind def +%% http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/encoding-vectors.html -/large-font { - /Palatino-Roman findfont 14.4 scalefont setfont -} bind def - -/large-smallcaps-font { - % urg - /Bookman-Light findfont 14.4 scalefont setfont -} bind def - -/normal-font { - /Palatino-Roman findfont 12 scalefont setfont -} bind def - -/footnote-font { - /Palatino-Roman findfont 10 scalefont setfont -} bind def +%/FONTLENGTH 256 bind def -/get-text-dimensions % path .. width height +% reencode-font +/reencode-dict 5 dict def +/reencode-font +{ + reencode-dict + begin + /name exch def + /encoding exch def + /base-font exch def + % note: Needs ps level 2 + /font base-font maxlength dict def + base-font { + exch dup dup /FID ne exch /Encoding ne and + { exch font 3 1 roll put } + { pop pop } ifelse + } forall + font /FontName name put + font /Encoding encoding put + name font definefont pop + end +} bind def + +/start-page { - dup true charpath pathbbox - newpath - line-x line-y moveto - exch 4 -1 roll - sub - 3 1 roll - exch sub } bind def -/set-centered +/stop-page { - line-x line-y moveto - get-text-dimensions - neg line-y add /line-y exch def - neg line-width add 2 div 0 rmoveto - show + showpage } bind def -/set-left +/stop-last-page { - line-x line-y moveto - get-text-dimensions - neg line-y add /line-y exch def - pop - show } bind def -/set-right +/start-system % x y { - line-x line-y moveto - get-text-dimensions - neg line-y add /line-y exch def - neg line-width add 0 rmoveto - show + gsave + exch output-scale mul exch + output-scale mul vsize exch sub translate } bind def -/make-lilypond-title -{ - currentdict /lilyponddedication known { - normal-font lilyponddedication set-centered - line-y 10 sub /line-y exch def - } if - currentdict /lilypondtitle known { - huge-bold-font lilypondtitle set-centered - line-y 5 sub /line-y exch def - } if - currentdict /lilypondsubtitle known { - Large-bold-font lilypondsubtitle set-centered - line-y 5 sub /line-y exch def - } if - currentdict /lilypondsubsubtitle known { - large-bold-font lilypondsubsubtitle set-centered - } if - line-y /mini-page exch def - currentdict /lilypondcomposer known { - large-smallcaps-font lilypondcomposer set-right - line-y 2 sub /line-y exch def - } if - currentdict /lilypondopus known { - normal-font lilypondopus set-right - line-y 3 sub /line-y exch def - } if - currentdict /lilypondarranger known { - normal-font lilypondarranger set-right - line-y 3 sub /line-y exch def - } if - currentdict /lilypondpoet known { - mini-page /line-y exch def - normal-font lilypondpoet set-left - line-y 3 sub /line-y exch def - } if - currentdict /lilypondtexttranslator known { - normal-font lilypondtexttranslator set-left - line-y 3 sub /line-y exch def - } if - currentdict /lilypondinstrument known { - large-font lilypondinstrument set-centered - } if - currentdict /lilypondpiece known { - large-smallcaps-font lilypondpiece set-left - } if +/stop-system +{ + /the-line exch def + the-line stroke grestore } bind def /end-lilypond-output { - /line-y top-margin def - footnote-font lilypondtagline set-left - showpage +% showpage } bind def -/turnOnExperimentalFeatures { } bind def - staff-line-thickness setlinewidth % set postscript paper size @@ -217,12 +110,4 @@ paper-size % initialise paper dimensions staff-height init-paper -/line-x left-margin output-scale div def -/line-y vsize top-margin sub def - -make-lilypond-title - -% see if we're there... -% 10 setlinewidth 0 0 moveto 400 800 lineto stroke - % end lilyponddefs.ps