]> git.donarmstrong.com Git - lilypond.git/blob - tex/fetdefs.tex
patch::: 0.1.33.jcn1: om je wat op te vrolijken
[lilypond.git] / tex / fetdefs.tex
1 % fetdefs.tex
2 % encapsulating tex backend for auto-generated font-en-tja definitions
3
4 \def\fetsixteendefs{
5         \font\fontentja=feta16
6         \font\vetfont=feta-beams16
7         \font\fetanummer=feta-nummer8
8         \font\dynfont=feta-din10 scaled \magstep1
9 }
10 \def\fettwentydefs{
11         \font\fontentja=feta20
12         \font\vetfont=feta-beams20
13         \font\fetanummer=feta-nummer10
14         \font\dynfont=feta-din10 scaled \magstep2
15 }
16 \def\fetdef#1#2{\def#1{%
17         % what the fuck is this?
18         %\lower.3884\staffrulethickness
19         \hbox{\fetchar{#2}}}}
20
21 \def\fetchar#1{\fontentja\char#1}
22
23 %\input feta16
24 \input feta20
25
26 \def\beamslope#1#2{{\count0=#2\advance\count0 by#1
27         \advance\count0by128
28         {\vetfont\char\count0}}}
29
30 % stacked numbers; overrules def in lilyponddefs
31 % widest num should be .4 balkheight
32 % oeps: \meter 12/8;
33 \def\generalmeter#1#2{%
34         \vbox to 0pt{\vss%
35         \hbox to0.45\balkheight{\hfill\fetanummer #1\hfill}%
36         \nointerlineskip%
37         \hbox to0.45\balkheight{\hfill\fetanummer #2\hfill}%
38         \vss}}
39
40 \newcount\embedcount\embedcount=0
41 \newwrite\checkexists
42 \newwrite\embedfile
43 \def\inputifexists#1{%
44         \openin\checkexists #1
45         \ifeof\checkexists
46                  \closein\checkexists
47         \else
48                 \closein\checkexists
49                 \input #1
50         \fi
51 }
52 \def\embedcountid{feta-embed}
53 \inputifexists{\embedcountid.aux}
54 %
55 % let's not overwrite -- and be sure to create new
56 \def\storeembedcount{%
57         \immediate\openout\embedfile=\embedcountid.aux
58         \immediate\write\embedfile{\embedcount=\the\embedcount}
59         \immediate\closeout\embedfile
60 }
61 \def\turnOnExperimentalFeatures{
62
63 % draw a slur in embedded postscript
64 \special{ps:
65 /xbow 1 3 div def
66 /ybow 1 4 div def
67 /thin 0.2 def
68 /thick thin 5 mul def
69 /draw_slur { 
70         % up or down?
71         /dir exch def
72 %       
73 %       for mo*tex shift
74 %       exch
75 %       1 copy /dx exch def
76 %       exch
77 %
78         % calc angle alpha
79         2 copy exch atan /alpha exch def
80         % calc len(gth)
81         2 exp exch 2 exp add sqrt /len exch def
82 %
83         % add and calc z2, z3
84         len xbow mul
85         len ybow mul dir mul
86         1 xbow sub len mul
87         len ybow mul dir mul
88 %       
89         % add z4, z1
90         len 0 
91         0 0
92 %
93         % add and calc z5..z8 
94         8 copy
95         thin dir mul sub
96         8 2 roll
97         thin dir mul sub
98         8 2 roll
99         thick dir mul sub
100         8 2 roll
101         thick dir mul sub
102 %
103         % reverse order, must be cycle
104         8 6 roll
105         6 2 roll
106         4 2 roll
107         8 6 roll
108 %       
109         % set z1..z4
110         16 8 roll
111 %
112         alpha rotate
113 %       silly mo*tex convention
114 %       dx 2 div -1 mul 0 translate
115         % draw z1..z4
116         moveto curveto
117         % draw z5..z8
118         lineto curveto
119         % cycle
120         0 0 lineto
121         fill
122 } def }
123 }
124
125 \def\embeddedtex#1{#1}
126 \def\embeddedps#1{
127         \special{ps: @beginspecial @setspecial #1 @endspecial}       
128 }
129 \def\embeddedmf#1{
130         \edef\embedid{feta-sleur-\number\embedcount}
131         \immediate\openout\embedfile=\embedid.mf
132         \global\advance\embedcount by 1
133
134 % should write ``automatically generated.''
135 %        \immediate\write\embedfile{\def\
136 %       
137 %      }
138
139         \immediate\write\embedfile{#1}
140
141         \immediate\closeout\embedfile
142         \font\expandafter\embedid\expandafter=\embedid
143         \embedid\char0
144 }
145
146 \def\notex{\def\embeddedtex##1{}}
147 \def\nopostscript{\def\embeddedps##1{}}
148 \def\nometafont{\def\embeddedmf##1{}}
149
150 % dat heb je handig gedaan, lieverd!
151 \nometafont
152 \nopostscript
153 %\notex
154
155 \def\EndLilyPondOutput{
156         \storeembedcount
157         \csname bye\endcsname
158 }
159
160