lilypond-0.1.33
[lilypond.git] / tex / fetdefs.tex
blobf3d5ccba993f8875f82af7d021dc253bc0a5ec6d
1 % fetdefs.tex
2 % encapsulating tex backend for auto-generated font-en-tja definitions
4 \def\fetsixteendefs{
5 \font\fontentja=feta16
6 \font\vetfont=feta-beams16
7 \font\fetanummer=feta-nummer8
8 \font\dynfont=feta-din10 scaled \magstep1
10 \def\fettwentydefs{
11 \font\fontentja=feta20
12 \font\vetfont=feta-beams20
13 \font\fetanummer=feta-nummer10
14 \font\dynfont=feta-din10 scaled \magstep2
16 \def\fetdef#1#2{\def#1{%
17 % what the fuck is this?
18 %\lower.3884\staffrulethickness
19 \hbox{\fetchar{#2}}}}
21 \def\fetchar#1{\fontentja\char#1}
23 %\input feta16
24 \input feta20
26 \def\beamslope#1#2{{\count0=#2\advance\count0 by#1
27 \advance\count0by128
28 {\vetfont\char\count0}}}
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}}
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
51 \def\embedcountid{feta-embed}
52 \inputifexists{\embedcountid.aux}
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
60 \def\turnOnExperimentalFeatures{
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
72 % for mo*tex shift
73 % exch
74 % 1 copy /dx exch def
75 % exch
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
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
88 % add z4, z1
89 len 0
90 0 0
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
102 % reverse order, must be cycle
103 8 6 roll
104 6 2 roll
105 4 2 roll
106 8 6 roll
108 % set z1..z4
109 16 8 roll
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 }
124 \def\embeddedtex#1{#1}
125 \def\embeddedps#1{
126 \special{ps: @beginspecial @setspecial #1 @endspecial}
128 \def\embeddedmf#1{
129 \edef\embedid{feta-sleur-\number\embedcount}
130 \immediate\openout\embedfile=\embedid.mf
131 \global\advance\embedcount by 1
133 % should write ``automatically generated.''
134 % \immediate\write\embedfile{\def\
138 \immediate\write\embedfile{#1}
140 \immediate\closeout\embedfile
141 \font\expandafter\embedid\expandafter=\embedid
142 \embedid\char0
145 \def\notex{\def\embeddedtex##1{}}
146 \def\nopostscript{\def\embeddedps##1{}}
147 \def\nometafont{\def\embeddedmf##1{}}
149 % dat heb je handig gedaan, lieverd!
150 \nometafont
151 \nopostscript
152 %\notex
154 \def\EndLilyPondOutput{
155 \storeembedcount
156 \csname bye\endcsname