]> git.donarmstrong.com Git - lilypond.git/blob - ps/lilyponddefs.ps
add start-page, start-system doesn't
[lilypond.git] / ps / lilyponddefs.ps
1 %!PS-Adobe-2.0: lilyponddefs.ps
2 % TODO:
3 %  * junk all magic, start-line/stop-line just: placebox @ x.y
4 %
5 % Functions for direct PostScript output
6
7 % /setgray { 1 add } bind def
8
9 % To let gs load fonts from builddir, do:
10 % export GS_LIB=$(pwd)/mf/out:/usr/share/texmf/fonts/type1/bluesky/cm
11
12
13 /set-ps-scale-to-lily-scale {
14         lily-output-units output-scale mul
15         lily-output-units output-scale mul scale
16 } bind def
17
18
19 /init-paper {
20         gsave
21         .1 setlinewidth
22         clippath pathbbox newpath
23         /vsize exch def
24         /hsize exch def pop pop pop
25         % FIXME
26         /top-margin 2 def
27         hsize line-width sub 2 div /left-margin exch def
28         grestore
29 } bind def
30
31
32 /place-box {
33         /object exch def
34         gsave
35         % exch translate
36         translate
37         0 0 moveto
38         object
39         grestore
40 } bind def
41
42 %% http://bibliofile.mc.duke.edu/gww/fonts/postscript-utilities/encoding-vectors.html
43
44 %/FONTLENGTH 256 bind def
45
46
47 /reencode-dict 5 dict def
48
49
50 %<font> <encoding> <name> reencode-font
51 /reencode-font {
52         reencode-dict begin
53                 /name exch def
54                 /encoding exch def
55                 /base-font exch def
56                 % note: Needs ps level 2
57                 /font base-font maxlength dict def
58                 base-font {
59                         exch dup dup /FID ne exch /Encoding ne and
60                         { exch font 3 1 roll put }
61                         { pop pop } ifelse
62                 } forall
63                 font /FontName name put
64                 font /Encoding encoding put
65                 name font definefont pop
66         end
67 } bind def
68
69
70 % start-system
71 /start-system {
72     gsave
73 } bind def
74
75 /start-page {
76     gsave
77     0
78     vsize translate
79 } bind def
80
81
82 /stop-system {
83         /the-line exch def
84         the-line stroke grestore
85 } bind def
86
87
88 /end-lilypond-output {
89 %       showpage
90 } bind def
91
92
93 /init-lilypond-parameters {
94         staff-line-thickness setlinewidth
95         staff-height init-paper
96         pstack
97 } bind def
98
99
100 % end lilyponddefs.ps