]> git.donarmstrong.com Git - lilypond.git/blobdiff - ps/lilyponddefs.ps
Remove trailing whitespace.
[lilypond.git] / ps / lilyponddefs.ps
index 6c903a5290874cc1f29b16e3e8ccfe5637ae0710..71a59115c11b86e98a3f28e7c9c24808730cdf54 100644 (file)
@@ -1,53 +1,32 @@
-%!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
-
-/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
+/set-ps-scale-to-lily-scale {
+    lily-output-units output-scale mul
+    lily-output-units output-scale mul scale } bind 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
+       gsave
+       .1 setlinewidth
+       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
+       grestore
 } bind def
 
+
 /place-box
 {
        /object exch def
@@ -59,170 +38,55 @@ 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
-
-/large-font {
-       /Palatino-Roman findfont 14.4 scalefont setfont
-} bind def
+%% http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/encoding-vectors.html
 
-/large-smallcaps-font {
-       % urg
-       /Bookman-Light findfont 14.4 scalefont setfont
-} bind def
+%/FONTLENGTH 256 bind def
 
-/normal-font {
-       /Palatino-Roman findfont 12 scalefont setfont
-} bind def
-
-/footnote-font {
-       /Palatino-Roman findfont 10 scalefont setfont
-} bind def
-
-/get-text-dimensions % path .. width height
+%<font> <encoding> <name> reencode-font
+/reencode-dict 5 dict def
+/reencode-font
 {
-       dup true charpath pathbbox
-       newpath
-       line-x line-y moveto
-       exch 4 -1 roll
-       sub
-       3 1 roll
-       exch sub
-} bind def
-
-/set-centered
+    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-system % x y
 {
-       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
+    gsave
+    0
+    vsize translate
 } 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
-} bind def
-
-/make-lilypond-title
+/stop-system
 {
-       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
+    /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
-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
+pstack
 
 % end lilyponddefs.ps