X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=ps%2Flilyponddefs.ps;h=a53b452af7ba59e3785cc01c0c23a5bfd2e4763f;hb=822d24d83e62ebf23bf06a42544a973561211f27;hp=cc4bf26f4e8ad04c02b0de118c66667c41b5ea0c;hpb=e7b0597d595e3499b6bad53c204f2497fc814980;p=lilypond.git diff --git a/ps/lilyponddefs.ps b/ps/lilyponddefs.ps index cc4bf26f4e..a53b452af7 100644 --- a/ps/lilyponddefs.ps +++ b/ps/lilyponddefs.ps @@ -1,225 +1,98 @@ -%!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 -/staff-line-thickness lilypondpaperlinethickness def -/staff-height lilypondpaperstaffheight def -/line-width lilypondpaperlinewidth def +% To let gs load fonts from builddir, do: +% export GS_LIB=$(pwd)/mf/out:/usr/share/texmf/fonts/type1/bluesky/cm -% 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 - -/set-ps-scale-to-lily-scale -{ -output-scale output-scale scale +/set-ps-scale-to-lily-scale { + lily-output-units output-scale mul + lily-output-units output-scale mul 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 + clippath pathbbox newpath + /vsize exch def + /hsize exch def pop pop pop + % FIXME + /top-margin 2 def hsize line-width sub 2 div /left-margin exch def grestore } bind def -/place-box -{ + +/place-box { /object exch def gsave - %exch translate + % exch translate translate 0 0 moveto object 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 +%% http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/encoding-vectors.html -/stop-system -{ - /the-line exch def - the-line - stroke - grestore - line-y line-height output-scale mul sub /line-y exch def -} bind def +%/FONTLENGTH 256 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 +/reencode-dict 5 dict def -/large-bold-font { - /Palatino-Bold findfont 14.4 scalefont setfont -} bind def -/large-font { - /Palatino-Roman findfont 14.4 scalefont setfont +% reencode-font +/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 -/large-smallcaps-font { - % urg - /Bookman-Light findfont 14.4 scalefont setfont -} bind def -/normal-font { - /Palatino-Roman findfont 12 scalefont setfont +% start-system +/start-system { + gsave } bind def -/footnote-font { - /Palatino-Roman findfont 10 scalefont setfont +/start-page { + gsave + 0 + vsize translate } bind def -/get-text-dimensions % path .. width height -{ - dup true charpath pathbbox - newpath - line-x line-y moveto - exch 4 -1 roll - sub - 3 1 roll - exch sub -} bind def -/set-centered -{ - 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 +/stop-system { + /the-line exch def + the-line stroke grestore } bind def -/set-left -{ - line-x line-y moveto - get-text-dimensions - neg line-y add /line-y exch def - pop - show -} bind def -/set-right -{ - line-x line-y moveto - get-text-dimensions - neg line-y add /line-y exch def - neg line-width add 0 rmoveto - show +/end-lilypond-output { +% showpage } 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 -} bind def -/end-lilypond-output -{ - /line-y top-margin def - footnote-font lilypondtagline set-left - showpage +/init-lilypond-parameters { + staff-line-thickness setlinewidth + staff-height init-paper } bind def -/turnOnExperimentalFeatures { } bind def - -staff-line-thickness setlinewidth - -% set postscript paper size -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