]> git.donarmstrong.com Git - lilypond.git/blob - tex/fetdefs.tex
release: 0.1.29
[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 % oeps: \meter 12/8;
32 \def\generalmeter#1#2{%
33         \vbox to 0pt{\vss%
34         \hbox to0.42\balkheight{\hss\fetanummer #1\hss}%
35         \nointerlineskip%
36         \hbox to0.42\balkheight{\hss\fetanummer #2\hss}%
37         \vss}}
38
39 \newcount\embedcount\embedcount=0
40 \newwrite\checkexists
41 \newwrite\embedfile
42 \def\inputifexists#1{%
43         \openin\checkexists #1
44         \ifeof\checkexists
45                  \closein\checkexists
46         \else
47                 \closein\checkexists
48                 \input #1
49         \fi
50 }
51 \def\embedcountid{feta-embed}
52 \inputifexists{\embedcountid.aux}
53 %
54 % let's not overwrite -- and be sure to create new
55 \def\storeembedcount{%
56         \immediate\openout\embedfile=\embedcountid.aux
57         \immediate\write\embedfile{\embedcount=\the\embedcount}
58         \immediate\closeout\embedfile
59 }
60 \def\turnOnExperimentalFeatures{
61
62 % draw a slur in embedded postscript
63 \special{ps:
64 /xbow 1 3 div def
65 /ybow 1 4 div def
66 /thin 0.2 def
67 /thick thin 5 mul def
68 /draw_slur { 
69         % up or down?
70         /dir exch def
71 %       
72 %       for mo*tex shift
73 %       exch
74 %       1 copy /dx exch def
75 %       exch
76 %
77         % calc angle alpha
78         2 copy exch atan /alpha exch def
79         % calc len(gth)
80         2 exp exch 2 exp add sqrt /len exch def
81 %
82         % add and calc z2, z3
83         len xbow mul
84         len ybow mul dir mul
85         1 xbow sub len mul
86         len ybow mul dir mul
87 %       
88         % add z4, z1
89         len 0 
90         0 0
91 %
92         % add and calc z5..z8 
93         8 copy
94         thin dir mul sub
95         8 2 roll
96         thin dir mul sub
97         8 2 roll
98         thick dir mul sub
99         8 2 roll
100         thick dir mul sub
101 %
102         % reverse order, must be cycle
103         8 6 roll
104         6 2 roll
105         4 2 roll
106         8 6 roll
107 %       
108         % set z1..z4
109         16 8 roll
110 %
111         alpha rotate
112 %       silly mo*tex convention
113 %       dx 2 div -1 mul 0 translate
114         % draw z1..z4
115         moveto curveto
116         % draw z5..z8
117         lineto curveto
118         % cycle
119         0 0 lineto
120         fill
121 } def }
122 }
123
124 \def\embeddedtex#1{#1}
125 \def\embeddedps#1{
126         \special{ps: @beginspecial @setspecial #1 @endspecial}       
127 }
128 \def\embeddedmf#1{
129         \edef\embedid{feta-sleur-\number\embedcount}
130         \immediate\openout\embedfile=\embedid.mf
131         \global\advance\embedcount by 1
132
133 % should write ``automatically generated.''
134 %        \immediate\write\embedfile{\def\
135 %       
136 %      }
137
138         \immediate\write\embedfile{#1}
139
140         \immediate\closeout\embedfile
141         \font\expandafter\embedid\expandafter=\embedid
142         \embedid\char0
143 }
144
145 \def\notex{\def\embeddedtex##1{}}
146 \def\nopostscript{\def\embeddedps##1{}}
147 \def\nometafont{\def\embeddedmf##1{}}
148
149 % dat heb je handig gedaan, lieverd!
150 \nometafont
151 \nopostscript
152 %\notex
153
154 \def\EndLilyPondOutput{
155         \storeembedcount
156         \csname bye\endcsname
157 }
158
159