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