From: Han-Wen Nienhuys Date: Mon, 29 Sep 1997 10:55:05 +0000 (+0200) Subject: release: 0.1.18 X-Git-Tag: release/0.1.18 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=8b875ee66fa889c5d141a495b33650157787b5bb;p=lilypond.git release: 0.1.18 --- diff --git a/AUTHORS.text b/AUTHORS.text index c37d5dfba1..3cf19e8c59 100644 --- a/AUTHORS.text +++ b/AUTHORS.text @@ -61,6 +61,6 @@ CCCCOOOONNNNTTTTRRRRIIIIBBBBUUUUTTTTOOOORRRRSS -23/Sep/97 LilyPond 0.1.17 1 +23/Sep/97 LilyPond 0.1.18 1 diff --git a/Documentation/INSTALL.pod b/Documentation/INSTALL.pod index ae5da8da87..d15fbc7332 100644 --- a/Documentation/INSTALL.pod +++ b/Documentation/INSTALL.pod @@ -100,6 +100,11 @@ with the perl's Plain Old Documentation. (I use 5.003) =item * +Python. Although perl is nice, python is better. We will shift +towards python for build scripts + +=item * + GNU find =item * diff --git a/INSTALL.text b/INSTALL.text index 88723a48bb..7861a349c0 100644 --- a/INSTALL.text +++ b/INSTALL.text @@ -61,7 +61,7 @@ RRRRUUUUNNNNNNNNIIIINNNNGGGG -8/Aug/97 LilyPond 0.1.14 1 +26/Sep/97 LilyPond 0.1.18 1 @@ -93,6 +93,10 @@ RRRREEEECCCCOOOOMMMMMMMMEEEENNNNDDDDEEEEDDDD documentation was created with the perl's Plain Old Documentation. (I use 5.003) + +o Python. Although perl is nice, python is + better. We will shift towards python for build + scripts + +o GNU find +o A fast computer (a full page of music typically @@ -120,14 +124,10 @@ CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRIIIINNNNGGGG a The TeX include directory is detected dynamically, but it can be adjusted with --------eeeennnnaaaabbbblllleeee----tttteeeexxxx----pppprrrreeeeffffiiiixxxx and --------eeeennnnaaaabbbblllleeee----tttteeeexxxx---- - ddddiiiirrrr. The above assumes that you are root and have the GNU - development tools, and your make is GNU make. If this is - not the case, you can adjust your environment variables to - your taste: -8/Aug/97 LilyPond 0.1.14 2 +26/Sep/97 LilyPond 0.1.18 2 @@ -136,6 +136,11 @@ CCCCOOOONNNNFFFFIIIIGGGGUUUURRRRIIIINNNNGGGG a INSTALL(1) LilyPond documentation INSTALL(1) + ddddiiiirrrr. The above assumes that you are root and have the GNU + development tools, and your make is GNU make. If this is + not the case, you can adjust your environment variables to + your taste: + export CPPFLAGS="-I /home/me/my_include -DWEIRD_FOOBAR" configure @@ -185,15 +190,10 @@ INSTALL(1) LilyPond documentation INSTALL(1) Set then directory TeX input is in (detected as a subdir of tex-prefix) - --enable-mf-dir - Set the directory mf input is in (idem) - [obsolete] - - -8/Aug/97 LilyPond 0.1.14 3 +26/Sep/97 LilyPond 0.1.18 3 @@ -202,6 +202,10 @@ INSTALL(1) LilyPond documentation INSTALL(1) INSTALL(1) LilyPond documentation INSTALL(1) + --enable-mf-dir + Set the directory mf input is in (idem) + [obsolete] + --enable-out-dir Set the directory for machine generated output. @@ -252,14 +256,10 @@ IIIINNNNSSSSTTTTAAAALLLLLLLLIIIINNNNGGGG make install - should do the trick. - Install the musixtex fonts in a directory which TeX and MF - knows (if you are root, look for a directory which - -8/Aug/97 LilyPond 0.1.14 4 +26/Sep/97 LilyPond 0.1.18 4 @@ -268,6 +268,10 @@ IIIINNNNSSSSTTTTAAAALLLLLLLLIIIINNNNGGGG INSTALL(1) LilyPond documentation INSTALL(1) + should do the trick. + + Install the musixtex fonts in a directory which TeX and MF + knows (if you are root, look for a directory which contains the directories with AMS and CM source (*.mf) files. Create a subdir lilypond or musixtex and copy the fonts into that). Do not forget to rehash TeX (if @@ -318,14 +322,10 @@ RRRREEEEDDDDHHHHAAAATTTT LLLLIIIINNNNUUUUXXXX file is in _m_a_k_e_/_o_u_t_/_l_i_l_y_p_o_n_d_._s_p_e_c. You should be able to create an rpm as a normal user. Be sure you have a ~/.rpmrc, and edit the RPM-dir in _V_a_r_i_a_b_l_e_s_._m_a_k_e. (If you - create the RPM as a normal user the permissions will not - be set correctly, unfortunately) - - -8/Aug/97 LilyPond 0.1.14 5 +26/Sep/97 LilyPond 0.1.18 5 @@ -334,6 +334,9 @@ RRRREEEEDDDDHHHHAAAATTTT LLLLIIIINNNNUUUUXXXX INSTALL(1) LilyPond documentation INSTALL(1) + create the RPM as a normal user the permissions will not + be set correctly, unfortunately) + DDDDEEEEBBBBIIIIAAAANNNN GGGGNNNNUUUU////LLLLIIIINNNNUUUUXXXX A Debian package is in the works @@ -388,9 +391,6 @@ AAAAUUUUTTTTHHHHOOOORRRRSSSS - - - -8/Aug/97 LilyPond 0.1.14 6 +26/Sep/97 LilyPond 0.1.18 6 diff --git a/NEWS b/NEWS index de36da862a..72917102fb 100644 --- a/NEWS +++ b/NEWS @@ -1,23 +1,30 @@ -pl 17.jcn2 + +pl 18 + - bf: Box[X_AXIS] = b + - sharp sign, natural sign + - linethickness parametric + - bin/mf-deps.py script + - split into size/generic mf-files + - moved beams out of font-en-tja into vette-beams. + - Made corresponding .cc changes. + + +jcn patches - egcs compile (no link yet) - nicer 4rest - beam font (je kunt wel tegen een grapje, eva?) - mf-to-table: * "breapth" (x-depth) feature * handle generic stuff such as beams - -pl 17.jcn1 - - all of the above - -pl 16.jcn3 - polished noteheads - fixed 8-128 rests - 4rest - mf-to-table generates tex defs - bf:mf-to-table and conflily outname check - -pl 16.jcn2 - 8-128 rests + +****** +sep 24 pl 17 - bf: ledgerline width diff --git a/VERSION b/VERSION index dc2827164c..f1fb7e7cf2 100644 --- a/VERSION +++ b/VERSION @@ -1,6 +1,6 @@ TOPLEVEL_MAJOR_VERSION = 0 TOPLEVEL_MINOR_VERSION = 1 -TOPLEVEL_PATCH_LEVEL = 17 +TOPLEVEL_PATCH_LEVEL = 18 +TOPLEVEL_MY_PATCH_LEVEL = -# use to send patches, always empty for released version: -TOPLEVEL_MY_PATCH_LEVEL = .jcn2 +# use the above to send patches, always empty for released version: diff --git a/bin/Makefile b/bin/Makefile index 87c5cb3bcc..8f5410eec0 100644 --- a/bin/Makefile +++ b/bin/Makefile @@ -5,7 +5,7 @@ include $(depth)/make/Include.make # list of distribution files: SCRIPTS = clearlily cpgento make-patch lily.efence \ - make-version release conflily clean-fonts + make-version release conflily clean-fonts mf-deps.py PERL_SCRIPTS_IN = $(wildcard *.in) PERL_SCRIPTS = $(addprefix $(outdir)/, $(PERL_SCRIPTS_IN:.in=)) EXTRA_DISTFILES = $(SCRIPTS) $(PERL_SCRIPTS_IN) diff --git a/bin/clean-fonts b/bin/clean-fonts index ae65586662..8494ff68a5 100755 --- a/bin/clean-fonts +++ b/bin/clean-fonts @@ -1,5 +1,7 @@ #!/bin/sh # remove possibly stale .pk/.tfm files - -rm `locate font-en-tja| egrep '.*pk$|.*tfm$'` +echo> /tmp/cleaning-font +FILES=`find /var/lib/texmf/ -name 'font-en-tja*'` # -or -name 'vette-beam*'` +echo removing $FILES +rm $FILES /tmp/cleaning-font diff --git a/bin/make-website.in b/bin/make-website.in index 6c65e645dd..37d318957d 100644 --- a/bin/make-website.in +++ b/bin/make-website.in @@ -44,7 +44,9 @@ sub set_html_footer my $username=$pw[6]; $footstr = - "\n
Please take me back to the LilyPond index\n
+ "\n
Please take me back to the index\n +of LilyPond -- The GNU Project Music typesetter +
This page was built using " . $id_str . " from lilypond-" . $lily_version . diff --git a/bin/mf-deps.py b/bin/mf-deps.py new file mode 100644 index 0000000000..d0784ab5c5 --- /dev/null +++ b/bin/mf-deps.py @@ -0,0 +1,72 @@ +#!@PYTHON@ + +"""look into metafont source for dependencies. + + fixme: python path + fixme: error reporting + fixem: why doesn't python have closures.. + +""" + +from regex import * ; +from regsub import * ; +import sys; +import os; + +input_re = compile('^ *input *\([^;]+\);') +postfixes = ['log', 'dvi', '2602gf', 'tfm'] + + +def print_one(x): + print x + +def line_concat(x,y): + return x + '\n' + y + +class Targetdeps: + """Dependencies for one toplevel sourcefile + + """ + + def __init__(self,nm): + split = os.path.splitext(nm) + self.basename=split[0]; + self.depfiles = [] + self.checkdep(nm) + + def checkdep(self, name): + split = os.path.splitext(name) + name = split[0] + '.mf'; + + if name not in self.depfiles: + self.get_filedeps(name) + + def get_filedeps(self,filename): +# print sys.stderr.write( 'checking ' + filename + '\n'); + try: + file = open(filename) + except IOError: +# print sys.stderr.write( 'can\'t open ' + filename + '\n') + return + + self.depfiles.append(filename) +_ lines = file.readlines() + file.close() + for line in lines: + if input_re.match ( line) <> -1: + self.checkdep( input_re.group(1)) + + def target_string(self): + targets = map (lambda x,y = self.basename: 'out/' + y + '.' + x, postfixes) + depstring = reduce(lambda x,y: x + ' ' + y, self.depfiles) + dependencies = map (lambda x, y=depstring: x + ': ' + y, targets) + + return reduce(line_concat, dependencies) + + + +for file in sys.argv[1:]: + t = Targetdeps(file) + print t.target_string() + + diff --git a/init/dyn10.ly b/init/dyn10.ly index 80a224c5c0..a5cc969220 100644 --- a/init/dyn10.ly +++ b/init/dyn10.ly @@ -1,4 +1,4 @@ -% generated at Fri Sep 26 09:25:28 1997 from out/dyn10.log +% generated at Fri Sep 26 14:26:49 1997 from out/dyn10.log % changes will be lost % dyn=\symboltables { diff --git a/init/font-en-tja16.ly b/init/font-en-tja16.ly index f060334fd9..bed24e7c2d 100644 --- a/init/font-en-tja16.ly +++ b/init/font-en-tja16.ly @@ -1,4 +1,4 @@ -% generated at Fri Sep 26 09:25:30 1997 from out/font-en-tja16.log +% generated at Mon Sep 29 11:32:20 1997 from out/font-en-tja16.log % changes will be lost % font-en-tja=\symboltables { @@ -17,9 +17,8 @@ "-2" "\sixtyfourthrest" -0.00\pt 5.33\pt 19.47\pt -0.00\pt "-2" "\hundredtwentyeighthrest" -0.00\pt 5.33\pt 23.47\pt -0.00\pt } - "beamslopes" = \table { - "uslope" "\beamuslope{%}{%}" 2.00\pt 32.00\pt 0.00\pt -0.00\pt - "dslope" "\beamdslope{%}{%}" 2.00\pt 32.00\pt 0.00\pt -0.00\pt - "horizontal" "\rulesym{%}{%}" -0.00\pt 0.00\pt 0.00\pt -0.00\pt + "foobars" = \table { + "1" "\sharp" -0.00\pt 4.40\pt 6.00\pt -6.00\pt + "0" "\natural" -0.00\pt 2.67\pt 6.00\pt -6.00\pt } % } % font-en-tja diff --git a/init/font-en-tja20.ly b/init/font-en-tja20.ly index b9a1c2f314..69b2154982 100644 --- a/init/font-en-tja20.ly +++ b/init/font-en-tja20.ly @@ -1,25 +1,24 @@ -% generated at Fri Sep 26 09:25:32 1997 from out/font-en-tja20.log +% generated at Mon Sep 29 11:32:24 1997 from out/font-en-tja20.log % changes will be lost % font-en-tja=\symboltables { "balls" = \table { - "0" "\wholeball" -0.00\pt 10.08\pt 5.60\pt -0.00\pt - "1" "\halfball" -0.00\pt 7.01\pt 5.60\pt -0.00\pt - "2" "\quartball" -0.00\pt 6.73\pt 5.60\pt -0.00\pt + "0" "\wholeball" -0.00\pt 10.35\pt 5.75\pt -0.00\pt + "1" "\halfball" -0.00\pt 7.20\pt 5.75\pt -0.00\pt + "2" "\quartball" -0.00\pt 6.91\pt 5.75\pt -0.00\pt "-1" "\breveball" -0.00\pt 10.00\pt 5.00\pt -0.00\pt "-2" "\longaball" -0.00\pt 10.00\pt 5.00\pt -0.00\pt } "almostrests" = \table { "4" "\quartrest" -0.00\pt 5.00\pt 20.00\pt -0.00\pt - "-2" "\eighthrest" -0.00\pt 6.67\pt 9.13\pt -0.00\pt - "-2" "\sixteenthrest" -0.00\pt 6.67\pt 14.13\pt -0.00\pt - "-2" "\thirtysecondrest" -0.00\pt 6.67\pt 19.13\pt -0.00\pt - "-2" "\sixtyfourthrest" -0.00\pt 6.67\pt 24.13\pt -0.00\pt - "-2" "\hundredtwentyeighthrest" -0.00\pt 6.67\pt 29.13\pt -0.00\pt + "-2" "\eighthrest" -0.00\pt 6.67\pt 9.33\pt -0.00\pt + "-2" "\sixteenthrest" -0.00\pt 6.67\pt 14.33\pt -0.00\pt + "-2" "\thirtysecondrest" -0.00\pt 6.67\pt 19.33\pt -0.00\pt + "-2" "\sixtyfourthrest" -0.00\pt 6.67\pt 24.33\pt -0.00\pt + "-2" "\hundredtwentyeighthrest" -0.00\pt 6.67\pt 29.33\pt -0.00\pt } - "beamslopes" = \table { - "uslope" "\beamuslope{%}{%}" 2.00\pt 32.00\pt 0.00\pt -0.00\pt - "dslope" "\beamdslope{%}{%}" 2.00\pt 32.00\pt 0.00\pt -0.00\pt - "horizontal" "\rulesym{%}{%}" -0.00\pt 0.00\pt 0.00\pt -0.00\pt + "foobars" = \table { + "1" "\sharp" -0.00\pt 5.50\pt 7.50\pt -7.50\pt + "0" "\natural" -0.00\pt 3.33\pt 7.50\pt -7.50\pt } % } % font-en-tja diff --git a/init/symbol.ly b/init/symbol.ly index 115b6dbb14..3efcaa9b0b 100644 --- a/init/symbol.ly +++ b/init/symbol.ly @@ -1,4 +1,6 @@ % symbol.ly +% +% FIXME other name \version "0.1.6"; diff --git a/init/table16.ly b/init/table16.ly index 46ff184838..2be017c49f 100644 --- a/init/table16.ly +++ b/init/table16.ly @@ -75,9 +75,6 @@ table_sixteen= "tenor_change" "\caltoclef" 0.0\pt 11.2\pt 0.0\pt 16.0\pt } - % ugh what's our outdir called? - \include "font-en-tja16.ly" - "slur" = \table { "whole" "\slurchar%{%}" "half" "\hslurchar%{%}" @@ -86,8 +83,8 @@ table_sixteen= "accidentals" = \table { "-2" "\flatflat" 0.0\pt 8.16\pt -2.5\pt 7.5\pt "-1" "\flat" 0.0\pt 4.8\pt -2.5\pt 7.5\pt - "0" "\natural" 0.0\pt 4.8\pt -7.5\pt 7.5\pt - "1" "\sharp" 0.0\pt 3.6\pt -7.5\pt 7.5\pt + "0" "\natural" 0.0\pt 4.0\pt -6.\pt 6.\pt + "1" "\sharp" 0.0\pt 4.4\pt -6.\pt 6.\pt "2" "\sharpsharp" 0.0\pt 4.8\pt -2.5\pt 7.5\pt } @@ -165,11 +162,13 @@ table_sixteen= "d7" "\dhundredtwentyeighthflag" 0.0\pt 4.0\pt 0.0\pt 0.0\pt } - "oldbeamslopes" = \table { - "uslope" "\beamuslope{%}{%}" 2.0\pt 64.0\pt 0.0\pt 0.0\pt - "dslope" "\beamdslope{%}{%}" 2.0\pt 64.0\pt 0.0\pt 0.0\pt + "beamslopes" = \table { + "slope" "\beamslope{%}{%}" 2.0\pt 64.0\pt 0.0\pt 0.0\pt "horizontal" "\rulesym{%}{%}" } + % ugh what's our outdir called? + \include "font-en-tja16.ly" + } diff --git a/init/table20.ly b/init/table20.ly index 2d276a6af4..b39f16334a 100644 --- a/init/table20.ly +++ b/init/table20.ly @@ -11,7 +11,6 @@ table_twenty = % index TeXstring, xmin xmax ymin ymax - % not yet updated "scripts" = \table { "fermata" "\fermata" 0.0\pt 0.0\pt 0.0\pt 6.0\pt "-fermata" "\ifermata" 0.0\pt 0.0\pt -6.0\pt 0.0\pt @@ -78,8 +77,6 @@ table_twenty = "tenor_change" "\caltoclef" 0.0\pt 16.0\pt 0.0\pt 20.0\pt } - % ugh what's our outdir called? - \include "font-en-tja20.ly" "slur" = \table { "whole" "\slurchar%{%}" 0.0\pt 0.0\pt 0.0\pt 0.0\pt @@ -165,10 +162,12 @@ table_twenty = "d7" "\dhundredtwentyeighthflag" 0.0\pt 5.0\pt 0.0\pt 0.0\pt } - "oldbeamslopes" = \table { - "uslope" "\beamuslope{%}{%}" 2.0\pt 64.0\pt 0.0\pt 0.0\pt - "dslope" "\beamdslope{%}{%}" 2.0\pt 64.0\pt 0.0\pt 0.0\pt + "beamslopes" = \table { + "slope" "\beamslope{%}{%}" 2.0\pt 64.0\pt 0.0\pt 0.0\pt "horizontal" "\rulesym{%}{%}" - } + } + + % ugh what's our outdir called? + \include "font-en-tja20.ly" } diff --git a/init/vette-beams16.ly b/init/vette-beams16.ly new file mode 100644 index 0000000000..55fc84888e --- /dev/null +++ b/init/vette-beams16.ly @@ -0,0 +1,3 @@ +% generated at Fri Sep 26 15:26:29 1997 from out/vette-beams16.log +% changes will be lost + diff --git a/init/vette-beams20.ly b/init/vette-beams20.ly new file mode 100644 index 0000000000..438f27e89a --- /dev/null +++ b/init/vette-beams20.ly @@ -0,0 +1,3 @@ +% generated at Fri Sep 26 15:26:46 1997 from out/vette-beams20.log +% changes will be lost + diff --git a/input/font.ly b/input/font.ly index 738871d15f..4f659db61e 100644 --- a/input/font.ly +++ b/input/font.ly @@ -20,7 +20,8 @@ TestedFeatures font-en-tja [c8 c] [a' a'] % [c a'] [a' c] [c d e f] [a' g' f' e'] - r1 r2 r4 r8 r16 r32 r64 r128 + [cis' dis' c' d'] [cisis' disis' ceses' deses'] + r1 r2 r4 r8 r16 r32 r64 r128 } \paper{ \paper_twenty diff --git a/lily/Stable.make b/lily/Stable.make index 079e634ce3..9214c7fb0b 100644 --- a/lily/Stable.make +++ b/lily/Stable.make @@ -1,7 +1,7 @@ -# kept in dist bo stripping stable stuff, still to copy... -# a bit of a hack to keep exec size under control. -stablecc=atom.cc offset.cc meter.cc boxes.cc \ + +# a hack to keep exec size under control. +stablecc= offset.cc meter.cc boxes.cc \ keyword.cc leastsquares.cc \ lookup.cc meter.cc\ parser.cc notename-table.cc lexer.cc\ diff --git a/lily/VERSION b/lily/VERSION index c905573ecc..783f85e049 100644 --- a/lily/VERSION +++ b/lily/VERSION @@ -1,6 +1,6 @@ MAJOR_VERSION = 0 MINOR_VERSION = 1 -PATCH_LEVEL = 17 +PATCH_LEVEL = 18 # use to send patches, always empty for released version: # include separator: ".postfix", "-pl" makes rpm barf diff --git a/lily/atom.cc b/lily/atom.cc index 0f1f205289..423181603d 100644 --- a/lily/atom.cc +++ b/lily/atom.cc @@ -57,7 +57,7 @@ Atom::TeX_string() const Offset off = off_; /* infinity checks. */ - for (int a =X_AXIS; a < NO_AXES; a++) + for (int a = X_AXIS; a < NO_AXES; a++) { Axis ax = (Axis)a; if (abs (off[ax]) >= 100 CM) @@ -75,3 +75,15 @@ Atom::TeX_string() const s += tex_str + "}"; return s; } + +void +Atom::translate (Real r, Axis a) +{ + off_[a] += r; +} + +void +Atom::translate (Offset o) +{ + off_ += o; +} diff --git a/lily/boxes.cc b/lily/boxes.cc index 1bf7177336..28fdeade83 100644 --- a/lily/boxes.cc +++ b/lily/boxes.cc @@ -9,9 +9,23 @@ #include "boxes.hh" #include "varray.hh" +void +Box::translate (Offset o) +{ + x().translate (o.x ()); + y().translate (o.y ()); +} + +void +Box::unite (Box b) +{ + x().unite (b.x ()); + y().unite (b.y ()); +} Box::Box() { + } Box::Box (Interval ix, Interval iy) @@ -20,3 +34,14 @@ Box::Box (Interval ix, Interval iy) y() = iy; } +Interval & +Box::operator[] (Axis a) +{ + return interval_a_[a]; +} + +Interval +Box::operator[] (Axis a)const +{ + return interval_a_[a]; +} diff --git a/lily/include/atom.hh b/lily/include/atom.hh index d25942c336..66c4a6cbba 100644 --- a/lily/include/atom.hh +++ b/lily/include/atom.hh @@ -22,13 +22,9 @@ struct Atom { String str() const; // for printing. Atom (String, Box); - Atom (); - void translate (Offset o) { - off_ += o; - } - void translate (Real r,Axis a){ - off_[a] += r; - } + Atom (); + void translate (Offset o); + void translate (Real r,Axis a); /// how big is #this#? Box extent() const; void print() const; diff --git a/lily/include/boxes.hh b/lily/include/boxes.hh index 45490033bd..0e5addc8af 100644 --- a/lily/include/boxes.hh +++ b/lily/include/boxes.hh @@ -12,28 +12,20 @@ #include "axes.hh" struct Box { - Interval interval_a_[NO_AXES]; + Interval interval_a_[NO_AXES]; - Interval &x() {return interval_a_[X_AXIS]; } - Interval &y(){ return interval_a_[Y_AXIS]; } - Interval x() const{ return interval_a_[X_AXIS]; } - Interval y() const{return interval_a_[Y_AXIS]; } - Interval operator[](Axis a) { - return interval_a_[a]; - } + Interval &x() {return interval_a_[X_AXIS]; } + Interval &y(){ return interval_a_[Y_AXIS]; } + Interval x() const{ return interval_a_[X_AXIS]; } + Interval y() const{return interval_a_[Y_AXIS]; } + Interval operator[](Axis a) const; + Interval &operator[] (Axis a); - void translate (Offset o) { - x().translate (o.x ()); - y().translate (o.y ()); - } - - /// smallest box enclosing #b# - void unite (Box b) { - x().unite (b.x ()); - y().unite (b.y ()); - } - Box(); - Box (Interval ix, Interval iy); + void translate (Offset o); + /// smallest box enclosing #b# + void unite (Box b); + Box(); + Box (Interval ix, Interval iy); }; diff --git a/lily/tex-beam.cc b/lily/tex-beam.cc index 193e6d4e6f..c5b356a604 100644 --- a/lily/tex-beam.cc +++ b/lily/tex-beam.cc @@ -23,8 +23,7 @@ Atom Lookup::beam_element (int sidx, int widx, Real slope) const { - char dir_char = slope >0 ? 'u' : 'd'; - String name = dir_char + String("slope"); + String name = String("slope"); Atom bs=(*symtables_)("beamslopes")->lookup (name); Array args; @@ -38,24 +37,6 @@ Lookup::beam_element (int sidx, int widx, Real slope) const return bs; } -// ugh.. hard wired tex-code. -static int -slope_index (Real &s) -{ - if (abs (s) > 0.5) - { - WARN << "beam steeper than 0.5 (" << s << ")\n"; - s = sign (s) * 0.5; - } - - int i = int (rint (s * 20.0)); - - s = i/20.0; - if (s>0) - return 6*i; - else - return -6 * i; -} Atom Lookup::rule_symbol (Real height, Real width) const @@ -73,24 +54,32 @@ Lookup::rule_symbol (Real height, Real width) const Atom Lookup::beam (Real &slope, Real width) const { - int sidx = slope_index (slope); - if (!slope) - return rule_symbol (2 PT, width); + int sidx = 0; + if (abs (slope) > 1.0) + { + WARN << "beam steeper than 1.0 (" << slope << ")\n"; + slope = sign (slope); + } - Interval xdims = (*symtables_)("beamslopes")->lookup ("uslope").dim_[X_AXIS]; + sidx = int (rint (slope * 20.0)); + slope = sidx / 20.0; + + Interval xdims = (*symtables_)("beamslopes")->lookup ("slope").dim_[X_AXIS]; Real min_wid = xdims[LEFT]; Real max_wid = xdims[RIGHT]; - + assert(max_wid > 0); + int widths = intlog2 (int (max_wid/min_wid)) + 1; + if (width < min_wid) { WARN<<"Beam too narrow. (" << print_dimen (width) <<")\n"; width = min_wid; } + Real elemwidth = max_wid; - int widx = intlog2 (int (max_wid/min_wid)); - - Molecule m; + int widx =widths - 1; + Molecule m; while (elemwidth > width) { widx --; @@ -99,7 +88,7 @@ Lookup::beam (Real &slope, Real width) const Real overlap = elemwidth/4; Real last_x = width - elemwidth; Real x = overlap; - Atom elem (beam_element (sidx, widx, slope)); + Atom elem (beam_element (sidx * widths, widx, slope)); m.add (elem); while (x < last_x) { diff --git a/lily/tex-slur.cc b/lily/tex-slur.cc index 664460f8b9..58783600f5 100644 --- a/lily/tex-slur.cc +++ b/lily/tex-slur.cc @@ -55,8 +55,8 @@ Lookup::half_slur_middlepart (Real &dx, Direction dir) const Atom s; - s.dim_.y() = Interval (min (0,0), max (0,0)); // todo - s.dim_.x() = Interval (0,dx); + s.dim_[Y_AXIS] = Interval (min (0, 0), max (0, 0)); // todo + s.dim_[X_AXIS] = Interval (-dx/2, dx/2); String f = String ("\\hslurchar"); f += direction_char (CENTER); @@ -74,6 +74,11 @@ Lookup::half_slur_middlepart (Real &dx, Direction dir) const return s; } +/* + The halfslurs have their center at the end pointing away from the notehead. + This lookup translates so that width() == [0, w] + */ + Atom Lookup::half_slur (int dy, Real &dx, Direction dir, int xpart) const { @@ -99,8 +104,8 @@ Lookup::half_slur (int dy, Real &dx, Direction dir, int xpart) const } Atom s; - s.dim_.x() = Interval (0,dx); - s.dim_.y() = Interval (min (0,dy), max (0,dy)); + s.dim_[X_AXIS] = Interval (0, dx); + s.dim_[Y_AXIS] = Interval (min (0, dy), max (0, dy)); String f = String ("\\hslurchar"); @@ -171,17 +176,18 @@ Lookup::slur (int dy , Real &dx, Direction dir) const } Atom s; - s.dim_.x() = Interval (-dx/2,dx/2); - s.dim_.y() = Interval (min (0,dy), max (0,dy)); + s.dim_[X_AXIS] = Interval (0, dx); + s.dim_[Y_AXIS] = Interval (min (0, dy), max (0, dy)); String f = String ("\\slurchar") + String (direction_char (y_sign)); int idx=-1; - if (y_sign) { - idx = hidx * 16 + widx; - if (dir < 0) - idx += 128; - } + if (y_sign) + { + idx = hidx * 16 + widx; + if (dir < 0) + idx += 128; + } else { if (dx >= 4*54 PT) @@ -222,17 +228,18 @@ Lookup::big_slur (int dy , Real &dx, Direction dir) const Real right_wid = left_wid; Atom l = half_slur (l_dy, left_wid, dir, -1); + + Atom r = half_slur (r_dy, right_wid, dir, 1); Real mid_wid = dx - left_wid - right_wid; Molecule mol; mol.add (l); Atom a (half_slur (0, mid_wid, dir, 0)); - a.translate (slur_extra * internote_f, Y_AXIS); mol.add_at_edge (X_AXIS, RIGHT, a); mol.add_at_edge (X_AXIS, RIGHT, r); + mol.translate (l_dy * internote_f, Y_AXIS); - Atom s; s.tex_ = mol.TeX_string(); s.dim_ = mol.extent(); diff --git a/make/lilypond.lsm b/make/lilypond.lsm index 41a21342ba..857917a619 100644 --- a/make/lilypond.lsm +++ b/make/lilypond.lsm @@ -1,7 +1,7 @@ Begin3 Title: LilyPond -Version: 0.1.17 -Entered-date: 24SEP97 +Version: 0.1.18 +Entered-date: 26SEP97 Description: LilyPond is the GNU Project music typesetter. This program converts music definition files into visual or auditive output: it can typeset formatted @@ -14,8 +14,8 @@ Author: hanwen@stack.nl (Han-Wen Nienhuys) jan@digicash.com (Jan Nieuwenhuizen) Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys) Primary-site: sunsite.unc.edu /pub/Linux/apps - 395k lilypond-0.1.17.tar.gz + 395k lilypond-0.1.18.tar.gz Original-site: pcnov095.win.tue.nl /pub/lilypond/ - 395k lilypond-0.1.17.tar.gz + 395k lilypond-0.1.18.tar.gz Copying-policy: GPL End diff --git a/make/lilypond.spec b/make/lilypond.spec index b9415b39bd..9797e390d4 100644 --- a/make/lilypond.spec +++ b/make/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 0.1.17 +Version: 0.1.18 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.1.17.tar.gz +Source0: pcnov095.win.tue.nl:/pub/lilypond/lilypond-0.1.18.tar.gz Summary: A preprocessor to make TeX typeset music. URL: http://www.stack.nl/~hanwen/lilypond Packager: Han-Wen Nienhuys diff --git a/mf/Makefile b/mf/Makefile index 6e6446bcfe..26bc3f01df 100644 --- a/mf/Makefile +++ b/mf/Makefile @@ -16,10 +16,12 @@ EXTRA_DISTFILES = $(MFFILES) $(TEXFILES) TODO # FONT_FILES = $(wildcard *[0-9].mf) +FET_FILES = $(wildcard font-en-tja*[0-9].mf) + lyout = $(depth)/init texout = $(depth)/tex -LYTABLES = $(addprefix $(lyout)/, $(FONT_FILES:.mf=.ly)) -TEXTABLES = $(addprefix $(texout)/, $(FONT_FILES:.mf=.tex)) +LYTABLES = $(addprefix $(lyout)/, $(FET_FILES:.mf=.ly)) +TEXTABLES = $(addprefix $(texout)/, $(FET_FILES:.mf=.tex)) # all: $(LYTABLES) $(TEXTABLES) @@ -27,14 +29,20 @@ all: $(LYTABLES) $(TEXTABLES) localclean: rm -f $(LYTABLES) $(TEXTABLES) +$(outdir)/%.dvi: %.mf + mf $< + gftodvi $(basename $<) + mv $(basename $<).dvi $(outdir) + rm $(basename $<).*gf + $(outdir)/%.log: %.mf mf $< mv $(@F) $@ - rm $(shell basename $< .mf).*gf + rm $(basename $< ).*gf $(lyout)/%.ly $(texout)/%.tex: $(outdir)/%.log mf-to-table -l $(lyout)/$( $@ + python $(depth)/bin/mf-deps.py $^ >> $@ + diff --git a/mf/TODO b/mf/TODO index ac3f4a796a..b69830eee9 100644 --- a/mf/TODO +++ b/mf/TODO @@ -8,5 +8,6 @@ - check out Adobe Sonata/Petrucci font layout. They are the standard for Music fonts - rewrite : make a metafont iso font + - perl script to generate dependencies for mf l diff --git a/mf/bolletjes.mf b/mf/bolletjes.mf index bbc31feed2..305660525b 100644 --- a/mf/bolletjes.mf +++ b/mf/bolletjes.mf @@ -4,7 +4,6 @@ % most beautiful bolletjes are pronounced, not circular, % and not even symmetric. -interline#:=staffsize#/(stafflines-1); %noteheight#:=interline#; % even more pronounced (almost overdone), just like the original noteheight#:=interline#+1.5stafflinethickness#; diff --git a/mf/dimen.tex b/mf/dimen.tex index acba4b1d5b..78fc5369af 100644 --- a/mf/dimen.tex +++ b/mf/dimen.tex @@ -2,16 +2,13 @@ % A tex file to help determine dims. % -\font\musicfont=musix16 -\font\slurfont=xslu16 -\font\specfont=musixspx % tildes? beams, circles, (de)-crescendos, pianobraces -\font\eglerfont=opus16 % notes, clefs, beams -\font\eglerspec=opussps % tabulars, circles, glissandi, pianobraces -\font\tjafont=font-en-tja16 -%\def\thefont{\musicfont} +\font\taupin=musix16 +\font\fet=font-en-tja16 +\font\vet=vette-beams16 +\font\slurs=xslhd16 +\font\specfont=musixspx +\def\thefont{\slurs} %\def\thefont{\specfont} -%\def\thefont{\eglerfont} -\def\thefont{\tjafont} \def\mb#1{{\thefont\char#1}} diff --git a/mf/eindelijk.mf b/mf/eindelijk.mf index 56541e11c3..deabf71fac 100644 --- a/mf/eindelijk.mf +++ b/mf/eindelijk.mf @@ -1,8 +1,6 @@ % eindelijk.mf % LilyPond's own rest(s) -define_pixels(interline); -define_pixels(stafflinethickness); % MO*TeX stuff % nhh#:=interline#; % nhw#:=6/5*interline#; diff --git a/mf/font-en-tja16.mf b/mf/font-en-tja16.mf index f82dc30dbb..c43c04c6ed 100644 --- a/mf/font-en-tja16.mf +++ b/mf/font-en-tja16.mf @@ -13,12 +13,9 @@ test:=0; staffsize#:=16pt#; stafflines:=5; -stafflinethickness#:=0.4pt#; code:=-1; -input bolletjes; -input eindelijk; -input wat-zie-ik; +input generic-tja; fet_endfont("font-en-tja"); diff --git a/mf/font-en-tja20.mf b/mf/font-en-tja20.mf index 0015e173cf..ab7d914e35 100644 --- a/mf/font-en-tja20.mf +++ b/mf/font-en-tja20.mf @@ -9,14 +9,11 @@ fet_beginfont("font-en-tja", 20); test:=0; staffsize#:=20pt#; -% staffsize#:=16pt#; stafflines:=5; stafflinethickness#:=0.4pt#; code:=-1; -input bolletjes; -input eindelijk; -input wat-zie-ik; +input generic-tja; fet_endfont("font-en-tja"); diff --git a/mf/generic-params.mf b/mf/generic-params.mf new file mode 100644 index 0000000000..1e8053dc14 --- /dev/null +++ b/mf/generic-params.mf @@ -0,0 +1,9 @@ + +interline#:=staffsize#/(stafflines-1); + + % [D.K.Roush & J.S.Gourlay] say this should be 0.072 + % We know better +stafflinethickness#:=0.1 interline#; + +define_pixels(interline); +define_pixels(stafflinethickness); diff --git a/mf/generic-tja.mf b/mf/generic-tja.mf new file mode 100644 index 0000000000..9d0dc58794 --- /dev/null +++ b/mf/generic-tja.mf @@ -0,0 +1,25 @@ + + +% better versions of Taupin/Egler savepic cmds +% +% +picture save_picture_stack[]; +numeric stack_idx; +stack_idx := 0; + +def push_picture(expr p) = save_picture_stack[incr stack_idx] := p enddef; +def push_current = push_picture (currentpicture) enddef; +def pop_picture = save_picture_stack[ decr stack_idx] enddef; +def top_picture = save_picture_stack[stack_idx] enddef; + + +def scaledabout(expr point, scale) = + shifted -point scaled scale shifted point +enddef; + + +input generic-params; +input bolletjes; +input eindelijk; +input toevallig; + diff --git a/mf/toevallig.mf b/mf/toevallig.mf new file mode 100644 index 0000000000..0d61863455 --- /dev/null +++ b/mf/toevallig.mf @@ -0,0 +1,87 @@ +% +% Real accidentals + +%\tracingequations:= tracingonline := 1; +%proofing := 2; + +fet_begingroup("foobars"); + +begingroup; + +fet_beginchar(incr code, 1.1 interline#, 1.5 interline#, + 1.5 interline#, 0, "Sharp" , "1", "sharp"); + + save interbeam, interstem, beamheight, beamwidth, + stemwidth; + + interbeam := 1.1 interline; + interstem := 7/16 ; + beamheight := 4 stafflinethickness; + beamwidth := w; + stemwidth := 1.3 stafflinethickness; + + 2 horizontal_protrusion + interstem * beamwidth + stemwidth + = beamwidth; + + pickup pensquare xscaled horizontal_protrusion yscaled beamheight; + pair center; + center = (.5 w, 0); + + z2 - z1 = (beamwidth - horizontal_protrusion, beamheight/2); + z1 + z2 = 2*center; + beamslope = (y2-y1)/(x2-x1); + path beam; + beam:= z1 .. z2; + draw beam shifted (0, -interbeam/2); + draw beam shifted (0,interbeam/2); + + pickup pencircle scaled stemwidth; + x3 = x4 = xpart center; + bot y3 = -1.5 interline + ypart center; + top y4 = 1.5 interline + ypart center; + + path stem; + stem := z3 .. z4; + numeric xs; + xs := interstem* beamwidth / 2; + draw stem shifted (- xs, - xs* beamslope); + draw stem shifted (xs , xs *beamslope); + endchar; + +fet_beginchar(incr code, 8/12 interline#, 1.5 interline#, 1.5 interline#, 0, + "Natural", "0", "natural") + + + save interbeam, interstem, beamheight, beamwidth, + stemwidth; + + beamheight = 4.5 stafflinethickness; + interstem + stemwidth = w; + stemwidth = 1.3 stafflinethickness; + + z2 -z1 = (interstem, slope * interstem); + xpart .5 [z2,z1] = xcenter ; + xcenter = w/2; + + + pickup penrazor scaled beamheight rotated 90; + top y2 = interline - 3/2 stafflinethickness ; + slope = stafflinethickness / interstem; + + draw z1 .. z2; + draw (xpart z1, -y2) .. (xpart z2, -y1); + beamtop = top y2; + + pickup pencircle scaled stemwidth; + xpart z3 = xpart z1; + xpart z4 = xpart z2; + top y3 = 1.5 interline; + top y4 = beamtop; + + draw (xpart z1, -y4) .. z3; + draw (xpart z2, -y3) .. z4; + + labels(1,2,3,4); + endchar; +endgroup; +fet_endgroup("foobars"); diff --git a/mf/vette-beams16.mf b/mf/vette-beams16.mf new file mode 100644 index 0000000000..48921a25c2 --- /dev/null +++ b/mf/vette-beams16.mf @@ -0,0 +1,18 @@ +% font-en-tja16.mf +% part of LilyPond's pretty-but-neat music font + +% font_identifier:="font-en-tja16"; +% font_size 16pt#; +font_identifier:="vette-beams16"; +font_size 16; +mode_setup; + +test:=0; + +staffsize#:=16pt#; +stafflines:=5; +stafflinethickness#:=0.4pt#; +input generic-params; +input wat-zie-ik; +end. + diff --git a/mf/vette-beams20.mf b/mf/vette-beams20.mf new file mode 100644 index 0000000000..49f4ffd547 --- /dev/null +++ b/mf/vette-beams20.mf @@ -0,0 +1,18 @@ +% font-en-tja16.mf +% part of LilyPond's pretty-but-neat music font + +% font_identifier:="font-en-tja16"; +% font_size 16pt#; + +font_identifier:="vette-beams16"; +font_size 20; +mode_setup; + +test:=0; + +staffsize#:=20pt#; +stafflines:=5; +stafflinethickness#:=0.4pt#; +input generic-params; +input wat-zie-ik; +end. diff --git a/mf/wat-zie-ik.mf b/mf/wat-zie-ik.mf index 0f835ae512..507d377496 100644 --- a/mf/wat-zie-ik.mf +++ b/mf/wat-zie-ik.mf @@ -2,7 +2,8 @@ % part of LilyPond's pretty-but-neat music font % beams: plat en steil -fet_begingroup("beamslopes"); +%\tracingequations:= tracingonline := 1; + beamheight#:=0.48interline#; define_pixels(beamheight); @@ -12,47 +13,20 @@ beam_pen:=penrazor scaled beamheight rotated 90; % mimic taupin-SLOPES for now -- because lily knows them ELEM_TAN:=0.05; -SLOPES:=10; -LENGTHS:=5; -ELEM_LEN:=2; +SLOPES:=20; +LENGTHS:=6; +ELEM_FACTOR := 2; +ELEM_INITIAL_LEN:=2; -% fake char for tables; will be overwritten by mf -% misuse breapth for minimum length (mf-to-table negates breapth again) -fet_beginchar(code+1,ELEM_LEN**LENGTHS,0,0,-ELEM_LEN,"Beamslopes up","uslope","beamuslope{%}{%}"); - endchar; % Beamslopes up -for i:=1 upto SLOPES: - width:=ELEM_LEN; +for i := -SLOPES upto SLOPES: + width:= ELEM_INITIAL_LEN; for j:=1 upto LENGTHS: - beginchar(incr code,width,0,0); + beginchar(128 + i * LENGTHS + j -1 ,width,0,0); pickup beam_pen; draw origin--(lft w,w*i*ELEM_TAN); endchar; - width:=2*width; - endfor; - endfor; - -% fake char for tables; will be overwritten by mf -% misuse breapth for minimum length (mf-to-table negates breapth again) -fet_beginchar(code+1,ELEM_LEN**LENGTHS,0,0,-ELEM_LEN,"Beamslopes down","dslope","beamdslope{%}{%}"); - endchar; - -% Beamslopes down -for i:=1 upto SLOPES: - width:=ELEM_LEN; - for j:=1 upto LENGTHS: - beginchar(incr code,width,0,0); - pickup beam_pen; - draw origin--(lft w,-w*i*ELEM_TAN); - endchar; - width:=2*width; + width:=ELEM_FACTOR *width; endfor; endfor; - -% fake char for tables -fet_beginchar(code+1*SLOPES*LENGTHS,0,0,0,0,"Horizontal beams","horizontal","rulesym{%}{%}"); - endchar; - -fet_endgroup("beamslopes"); - diff --git a/tex/dyn10.tex b/tex/dyn10.tex index 3d9a26df80..dce4aeab11 100644 --- a/tex/dyn10.tex +++ b/tex/dyn10.tex @@ -1,4 +1,4 @@ -% generated at Fri Sep 26 09:25:28 1997 from out/dyn10.log +% generated at Fri Sep 26 14:26:49 1997 from out/dyn10.log % changes will be lost % dyn diff --git a/tex/fetdefs.tex b/tex/fetdefs.tex index 39c7e36418..857f5121c1 100644 --- a/tex/fetdefs.tex +++ b/tex/fetdefs.tex @@ -3,9 +3,11 @@ \def\fetsixteendefs{ \font\fontentja=font-en-tja16 + \font\vetfont=vette-beams16 } \def\fettwentydefs{ - \font\fontentja=font-en-tja20 + \font\fontentja=font-en-tja20 + \font\vetfont=vette-beams20 } % \def\fetdef#1#2{\def#1{\fetchar{#2}}} @@ -15,14 +17,6 @@ \input font-en-tja20 -\def\beamuslope#1#2{{\count0=#2\advance\count0 by#1 - \advance\count0 by \beamuslopestart - % huh?? -- think i followed taupin beam convention - % is lily confused? - \advance\count0 by -8 - \fetchar\count0}} -\def\beamdslope#1#2{{\count0=#2\advance\count0 by#1 - \advance\count0 by \beamdslopestart - % huh?? - \advance\count0 by -8 - \fetchar\count0}} +\def\beamslope#1#2{{\count0=#2\advance\count0 by#1 + \advance\count0by128 + {\vetfont\char\count0}}} diff --git a/tex/font-en-tja16.tex b/tex/font-en-tja16.tex index 3419d253d6..f48b24729e 100644 --- a/tex/font-en-tja16.tex +++ b/tex/font-en-tja16.tex @@ -1,4 +1,4 @@ -% generated at Fri Sep 26 09:25:30 1997 from out/font-en-tja16.log +% generated at Mon Sep 29 11:32:20 1997 from out/font-en-tja16.log % changes will be lost % font-en-tja @@ -17,8 +17,7 @@ \fetdef\sixtyfourthrest{9} \fetdef\hundredtwentyeighthrest{10} -% beamslopes -\def\beamuslopestart{11} -\def\beamdslopestart{61} -\def\rulesymstart{160} +% foobars +\fetdef\sharp{11} +\fetdef\natural{12} diff --git a/tex/font-en-tja20.tex b/tex/font-en-tja20.tex index 2dd7bb4ad9..bee8faec97 100644 --- a/tex/font-en-tja20.tex +++ b/tex/font-en-tja20.tex @@ -1,4 +1,4 @@ -% generated at Fri Sep 26 09:25:32 1997 from out/font-en-tja20.log +% generated at Mon Sep 29 11:32:24 1997 from out/font-en-tja20.log % changes will be lost % font-en-tja @@ -17,8 +17,7 @@ \fetdef\sixtyfourthrest{9} \fetdef\hundredtwentyeighthrest{10} -% beamslopes -\def\beamuslopestart{11} -\def\beamdslopestart{61} -\def\rulesymstart{160} +% foobars +\fetdef\sharp{11} +\fetdef\natural{12} diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex index 20986c443f..319d45f2f7 100644 --- a/tex/lilyponddefs.tex +++ b/tex/lilyponddefs.tex @@ -66,7 +66,6 @@ \balkheight=20pt \notewidth=7.15pt \noteheight=5pt - \staffrulethickness=0.4pt \musixtwentyfonts \font\textmusic=cmmi12 \musixcalc @@ -74,7 +73,6 @@ \def\musixsixteendefs{ \balkheight=16pt - \staffrulethickness=0.4pt \notewidth=5.93pt \noteheight=4pt \musixsixteenfonts @@ -97,6 +95,10 @@ \smallspace=.3\interlinedist \interstaffrule=\balkheight \divide\interstaffrule by 4 + + % [D.K.Roush & J.S.Gourlay] say this should be 0.072 + % We know better + \staffrulethickness=0.1\interlinedist } diff --git a/tex/taupindefs.tex b/tex/taupindefs.tex index 4a47f9dcc8..12080f171a 100644 --- a/tex/taupindefs.tex +++ b/tex/taupindefs.tex @@ -1,4 +1,3 @@ -\input fetdefs \def\musixtwentyfonts{ \font\normaltextfont=cmr10 %\textfont is a primitive \font\smalltextfont=cmr8 @@ -135,3 +134,5 @@ % \advance\count0 by 186 % \musicfnt\char\count0}} + +\input fetdefs diff --git a/tex/vette-beams16.tex b/tex/vette-beams16.tex new file mode 100644 index 0000000000..55fc84888e --- /dev/null +++ b/tex/vette-beams16.tex @@ -0,0 +1,3 @@ +% generated at Fri Sep 26 15:26:29 1997 from out/vette-beams16.log +% changes will be lost + diff --git a/tex/vette-beams20.tex b/tex/vette-beams20.tex new file mode 100644 index 0000000000..438f27e89a --- /dev/null +++ b/tex/vette-beams20.tex @@ -0,0 +1,3 @@ +% generated at Fri Sep 26 15:26:46 1997 from out/vette-beams20.log +% changes will be lost +