From: fred Date: Tue, 26 Mar 2002 22:46:09 +0000 (+0000) Subject: lilypond-1.3.28 X-Git-Tag: release/1.5.59~1869 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=3ec2d328fb4ccddbad1cd1aabd191d625f075509;p=lilypond.git lilypond-1.3.28 --- diff --git a/Documentation/topdocs/INSTALL.texi b/Documentation/topdocs/INSTALL.texi index b0a5d56567..8678c583b1 100644 --- a/Documentation/topdocs/INSTALL.texi +++ b/Documentation/topdocs/INSTALL.texi @@ -12,10 +12,10 @@ This document explains what you need to install LilyPond, and what you should do. If you are going to compile and install LilyPond often, -e.g. when doing development, you might want to check out the -@file{buildscripts/set-lily.sh} script. It sets some environment -variables and symlinks, which comes in handly when you have to compile -LilyPond more often. +e.g. when doing development, you might want to check out the +@file{buildscripts/set-lily.sh} script. It sets some environment +variables and symlinks, which comes in handy when you have to compile +LilyPond more often. @section Obtaining diff --git a/Documentation/topdocs/index.tely b/Documentation/topdocs/index.tely index e87837690f..e1211293a7 100644 --- a/Documentation/topdocs/index.tely +++ b/Documentation/topdocs/index.tely @@ -70,7 +70,7 @@ almost no restrictions. LilyPond is part of the The version numbers are in Linux-kernel style: even numbered versions are `stable'. The webpages for the stable version (1.2) reside at GNU, here: @uref{http://www.gnu.org/software/lilypond}. Big enhancements go -into the latest odd numbered version (1.3), which webpages are on +into the latest odd numbered version (1.3); its webpages are on @uref{http://www.cs.uu.nl/~hanwen/lilypond/,Han-Wen's site}. If want more information, you can browse the @@ -91,8 +91,8 @@ For the latest and greatest features, check out the If you are interested in sheet music typeset by LilyPond, have a look at -the examples included. We have @uref{./input/out-www/index.html,short -examples} and @uref{./mutopia/out-www/index.html,longer examples}. The +the examples included. We have @uref{short-examples.html,short +examples} and @uref{long-examples.html,longer examples}. The examples include sound bites in MIDI, pictures in PNG, printable scores in PostScript, and LilyPond input. @@ -112,9 +112,9 @@ large archive of public domain sheet music under construction. If you want to compile LilyPond from source, download here: @itemize @bullet -@item Download stable releases at +@item Download stable releases at @uref{ftp://ftp.gnu.org/gnu/lilypond/} -@item Download development releases at +@item Download development releases at @uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/development/} @item Canadian mirror @uref{http://sca.uwaterloo.ca/lilypond/} and @uref{ftp://sca.uwaterloo.ca/pub/} @item Another site in Europe @@ -122,7 +122,8 @@ If you want to compile LilyPond from source, download here: @end itemize Installing and compiling requires many additional packages, which are -listed in the @uref{Documentation/topdocs/out-www/INSTALL.html, installation instructions}. +listed in the @uref{Documentation/topdocs/out-www/INSTALL.html, +installation instructions}. There are binaries available, but alas they are not updated for every version released. @itemize @bullet @@ -144,25 +145,6 @@ If you have questions, do write to the mailing lists! (But don't forget to read the @uref{Documentation/out-www/faq.html, Frequently Asked Questions} first.) -@html -

-[ - Download - | - FAQ - | - Documentation - | - Music archives - | - Mailing lists - | - - Regression test - | - News -] -@end html @table @samp @item info-gnu-music@@gnu.org diff --git a/buildscripts/mutopia-index.py b/buildscripts/mutopia-index.py index be4163087b..9e05102b94 100644 --- a/buildscripts/mutopia-index.py +++ b/buildscripts/mutopia-index.py @@ -46,7 +46,7 @@ yourself.""" # FIXME breaks on multiple strings. # def read_mudela_header (fn): - s = gulp_file(fn) + s = open(fn).read () s = re.sub('%.*$', '', s) s = re.sub('\n', ' ', s) @@ -77,47 +77,36 @@ def help (): sys.stdout.write (r"""Usage: mutopia-index [options] INFILE OUTFILE Generate index for mutopia\n Options: - -h, --help print this help - --prefix=PRE specify prefix + -h, --help print this help + -o,-output=FILE write output to file. -s, --subdirs=DIR add subdir --suffix=SUF specify suffix""" ) sys.exit (0) # ugh. -def gen_list(inputs, subdir, filename): - (pre, subdirs, post)=subdir +def gen_list(inputs, filename): print "generating HTML list %s\n" % filename - list = open(filename, 'w') + if filename: + list = open(filename, 'w') + else: + list = sys.stdout list.write ('Rendered Examples\n') list.write ('') - if subdirs: - list.write ('

subdirectories

') - list.write ('') - - - + if inputs: - list.write('

Contents of this directory

\n'); - list.write (headertext) else: list.write (headertext_nopics) for ex in inputs: - ex_ext = '.ly' + (base, ext) = os.path.splitext (ex) + (base, ext2) = os.path.splitext (base) + ext = ext2 + ext + print '%s, ' % ex - try: - header = read_mudela_header(ex + ex_ext + '.txt') - except: - ex_ext = '.fly' - header = read_mudela_header(ex + ex_ext + '.txt') + header = read_mudela_header(ex) def read_dict(s, default, h =header): try: @@ -125,7 +114,7 @@ def gen_list(inputs, subdir, filename): except KeyError: ret = default return ret - head = read_dict('title', ex) + head = read_dict('title', os.path.basename (base)) composer = read_dict('composer', '') desc = read_dict('description', '') list.write('
') @@ -142,14 +131,15 @@ def gen_list(inputs, subdir, filename): l.write (' (%s %dk)' % (type, (size + 512) / 1024)) pictures = ['jpeg', 'png', 'xpm'] l.write ('\n') - list_item(ex + ex_ext + '.txt', 'The input', 'ASCII') + + list_item(base + ext, 'The input', 'ASCII') for pageno in range(1,100): - f = ex + '-page%d.png' % pageno + f = base + '-page%d.png' % pageno if not file_exist_b (f): break list_item(f, 'The output, page %d' % pageno, 'png') - list_item(ex + '.ps.gz', 'The output', 'gzipped PostScript') - list_item(ex + '.midi', 'The output', 'MIDI') + list_item(base + '.ps.gz', 'The output', 'gzipped PostScript') + list_item(base + '.midi', 'The output', 'MIDI') list.write (""); list.write( ""); @@ -158,23 +148,31 @@ def gen_list(inputs, subdir, filename): import getopt (options, files) = getopt.getopt(sys.argv[1:], - 'hp:s:', ['help', 'subdirs=', 'suffix=', 'prefix=']) -subdir_pre='' -subdir_suf ='' + 'ho:', ['help', 'output=']) +outfile = 'examples.html' subdirs =[] for opt in options: o = opt[0] a = opt[1] - if o == '--subdirs' or o == '-s': - subdirs.append (a) - elif o == '--prefix': - subdir_pre = a - elif o == '--suffix': - subdir_suf = a + if o == '--help' or o == '-h': + help() + elif o == '--output' or o == '-o': + outfile = a - -allfiles = find.find ('*.ly') + find.find ('*.ly.txt') +dirs = [] +for f in files: + dirs = dirs + find.find ('out-www', f); + +if not dirs: + dirs = ['.'] + +allfiles = [] + +for d in dirs: + allfiles = allfiles + find.find ('*.ly.txt', d) + +print allfiles -gen_list (files, (subdir_pre, subdirs, subdir_suf), 'index.html') +gen_list (allfiles, outfile) diff --git a/input/test/GNUmakefile b/input/test/GNUmakefile index 00cddc0806..0923318b99 100644 --- a/input/test/GNUmakefile +++ b/input/test/GNUmakefile @@ -1,7 +1,7 @@ # input/test/Makefile depth = ../.. -examples=font20 sleur +examples=font20 LOCALSTEPMAKE_TEMPLATES=mutopia include $(depth)/make/stepmake.make diff --git a/input/test/sleur.ly b/input/test/sleur.ly index f9f6cd1d8f..0b69da1a7b 100644 --- a/input/test/sleur.ly +++ b/input/test/sleur.ly @@ -1,8 +1,8 @@ \header{ +title = "sleur"; +subtitle = "test slurs."; enteredby = "jcn"; copyright = "public domain"; -TestedFeatures = "This file tests Feta embedded slurs" + - "(Feta definitively is not an abbreviation of Font-En-TjA)"; } \version "1.3.5"; diff --git a/lily/crescendo.cc b/lily/crescendo.cc index b8d1744fb4..481d30bca7 100644 --- a/lily/crescendo.cc +++ b/lily/crescendo.cc @@ -83,14 +83,14 @@ Crescendo * me = (Crescendo*)this; m->dim_.x () = Interval (0, width); m->dim_.y () = Interval (-2*height, 2*height); - Atom *a = new Atom(gh_list (ly_symbol2scm (hairpin), + SCM at = gh_list (ly_symbol2scm (hairpin), gh_double2scm (thick), gh_double2scm (width), gh_double2scm (height), gh_double2scm (continued ? height/2 : 0.0), - SCM_UNDEFINED)); + SCM_UNDEFINED); - m->add_atom (a->self_scm_); + m->add_atom (at); m->translate_axis (extra_left, X_AXIS); return m; } diff --git a/lily/dimension-cache.cc b/lily/dimension-cache.cc index 005499624b..69ff282b0a 100644 --- a/lily/dimension-cache.cc +++ b/lily/dimension-cache.cc @@ -90,16 +90,16 @@ Dimension_cache::get_offset () const Dimension_cache * Dimension_cache::common_refpoint (Dimension_cache const* s) const { - Link_array my_groups; - for (Dimension_cache const *c = this; c ; c = c->parent_l_) - my_groups.push ((Dimension_cache*)c); - - Dimension_cache const *common=0; - - for (Dimension_cache const * d = s; !common && d; d = d->parent_l_) - common = (Dimension_cache const*)my_groups.find_l (d); - - return (Dimension_cache*) common; + /* + I don't like the quadratic aspect of this code. Maybe this should + be rewritten some time, but the largest chain of parents might be + 10 high or so, so it shouldn't be a real issue. */ + for (Dimension_cache const *c = this; c; c = c->parent_l_) + for (Dimension_cache const * d = s; d; d = d->parent_l_) + if (d == c) + return (Dimension_cache*)d; + + return 0; } Interval diff --git a/lily/include/atom.hh b/lily/include/atom.hh index 877cdd999e..10b6fcb364 100644 --- a/lily/include/atom.hh +++ b/lily/include/atom.hh @@ -9,35 +9,12 @@ #ifndef ATOM_HH #define ATOM_HH -#include "protected-scm.hh" -#include "string.hh" -#include "box.hh" #include "lily-proto.hh" +#include "box.hh" #include "lily-guile.hh" -#include "smobs.hh" - -/** - Atoms should only be created on the heap, ie. with - "new Atom" - */ -class Atom { - Offset off_; - - friend class Molecule; - friend class Paper_outputter; -public: - Atom (SCM s); - Atom (Atom const&); - - DECLARE_SMOBS; - - /* - SCM expression that (when evaluated) gives a TeX string -representing a musical notation symbol. */ - SCM func_; - void fontify (Font_metric*); -}; -Atom* unsmob_atom (SCM); +SCM translate_atom (Offset, SCM); +SCM translate_atom_axis (Real, Axis,SCM); +SCM fontify_atom (Font_metric*, SCM atom); #endif diff --git a/lily/include/lily-guile.hh b/lily/include/lily-guile.hh index 28cf68fa91..8d808ac403 100644 --- a/lily/include/lily-guile.hh +++ b/lily/include/lily-guile.hh @@ -21,7 +21,7 @@ SCM ly_symbol2scm (char const *); String ly_symbol2string (SCM); SCM ly_offset2scm (Offset o); - +Offset ly_scm2offset (SCM s); SCM ly_eval (SCM a); SCM ly_parse_scm (char const* s, int* n); SCM ly_quote_scm (SCM s); diff --git a/lily/include/lily-proto.hh b/lily/include/lily-proto.hh index 52a930409c..af8c468994 100644 --- a/lily/include/lily-proto.hh +++ b/lily/include/lily-proto.hh @@ -18,7 +18,6 @@ struct Adobe_font_metric; struct Align_element; struct All_font_metrics; struct Articulation_req; -struct Atom; struct Audio_column; struct Audio_element; struct Audio_element_info; diff --git a/lily/include/tuplet-spanner.hh b/lily/include/tuplet-spanner.hh index de429e8954..e201413197 100644 --- a/lily/include/tuplet-spanner.hh +++ b/lily/include/tuplet-spanner.hh @@ -25,7 +25,8 @@ public: void add_column (Note_column*); void add_beam (Beam*); protected: - void calc_position_and_height (Real*,Real*)const; + void calc_dy (Real *) const; + void calc_position_and_height (Real*,Real *dy)const; virtual Molecule* do_brew_molecule_p () const; VIRTUAL_COPY_CONS(Score_element); diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc index 036bd19039..0ed09ec2de 100644 --- a/lily/lily-guile.cc +++ b/lily/lily-guile.cc @@ -91,9 +91,6 @@ ly_parse_scm (char const* s, int* n) return answer; } -/* - scm_m_quote doesn't use any env, but needs one for a good signature in GUILE. -*/ SCM ly_quote_scm (SCM s) { @@ -335,3 +332,10 @@ ly_offset2scm (Offset o) { return gh_cons (gh_double2scm (o[X_AXIS]), gh_double2scm(o[Y_AXIS])); } + +Offset +ly_scm2offset (SCM s) +{ + return Offset (gh_scm2double (gh_car (s)), + gh_scm2double (gh_cdr (s))); +} diff --git a/lily/lookup.cc b/lily/lookup.cc index f074bab26a..28a50a073e 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -66,13 +66,13 @@ Lookup::afm_find (String s, bool warn) const return m; } - Atom* at = new Atom (gh_list (ly_symbol2scm ("char"), + SCM at = (gh_list (ly_symbol2scm ("char"), gh_int2scm (cm->code), SCM_UNDEFINED)); - at->fontify (afm_l_); + at= fontify_atom (afm_l_,at); m.dim_ = afm_bbox_to_box (cm->charBBox); - m.add_atom (at->self_scm_); + m.add_atom (at); return m; } @@ -182,14 +182,13 @@ Lookup::beam (Real slope, Real width, Real thick) m.dim_[Y_AXIS] = Interval (min_y, max_y); - Atom *at = new Atom - (gh_list (ly_symbol2scm ("beam"), + SCM at = (gh_list (ly_symbol2scm ("beam"), gh_double2scm (width), gh_double2scm (slope), gh_double2scm (thick), SCM_UNDEFINED)); - m.add_atom (at->self_scm_); + m.add_atom (at); return m; } @@ -204,13 +203,13 @@ Lookup::dashed_slur (Bezier b, Real thick, Real dash) l = gh_cons (ly_offset2scm (b.control_[i]), l); } - Atom *at = new Atom(gh_list (ly_symbol2scm ("dashed-slur"), + SCM at = (gh_list (ly_symbol2scm ("dashed-slur"), gh_double2scm (thick), gh_double2scm (dash), ly_quote_scm (l), SCM_UNDEFINED)); Molecule m; - m.add_atom (at->self_scm_); + m.add_atom (at); return m; } @@ -231,7 +230,7 @@ Lookup::filledbox (Box b ) { Molecule m; - Atom* at = new Atom(gh_list (ly_symbol2scm ("filledbox"), + SCM at = (gh_list (ly_symbol2scm ("filledbox"), gh_double2scm (-b[X_AXIS][LEFT]), gh_double2scm (b[X_AXIS][RIGHT]), gh_double2scm (-b[Y_AXIS][DOWN]), @@ -239,7 +238,7 @@ Lookup::filledbox (Box b ) SCM_UNDEFINED)); m.dim_ = b; - m.add_atom (at->self_scm_); + m.add_atom (at); return m; } @@ -364,12 +363,12 @@ Lookup::text (String style, String text, Paper_def *paper_l) m.dim_ = metric_l->text_dimension (text); - Atom *at = new Atom (gh_list (ly_symbol2scm ("text"), + SCM at = (gh_list (ly_symbol2scm ("text"), ly_str02scm (text.ch_C()), SCM_UNDEFINED)); - at->fontify (metric_l); + at = fontify_atom (metric_l,at); - m.add_atom (at->self_scm_); + m.add_atom (at); return m; } @@ -393,13 +392,13 @@ Lookup::staff_brace (Real y, int staff_size) nm = ly_scm2string (gh_cdr (l)); nm += to_str (staff_size); SCM e =gh_list (ly_symbol2scm ("char"), gh_int2scm (idx), SCM_UNDEFINED); - Atom *at = new Atom (e); + SCM at = (e); - at->fontify (all_fonts_global_p->find_font (nm)); + at = fontify_atom (all_fonts_global_p->find_font (nm), at); m.dim_[Y_AXIS] = Interval (-y/2,y/2); m.dim_[X_AXIS] = Interval (0,0); - m.add_atom (at->self_scm_); + m.add_atom (at); return m; } @@ -434,7 +433,7 @@ Lookup::slur (Bezier curve, Real curvethick, Real linethick) } - Atom *at = new Atom (gh_list (ly_symbol2scm ("bezier-sandwich"), + SCM at = (gh_list (ly_symbol2scm ("bezier-sandwich"), ly_quote_scm (list), gh_double2scm (linethick), SCM_UNDEFINED)); @@ -442,7 +441,7 @@ Lookup::slur (Bezier curve, Real curvethick, Real linethick) Molecule m; m.dim_[X_AXIS] = curve.extent (X_AXIS); m.dim_[Y_AXIS] = curve.extent (Y_AXIS); - m.add_atom (at->self_scm_); + m.add_atom (at); return m; } @@ -450,7 +449,7 @@ Molecule Lookup::staff_bracket (Real height, Paper_def* paper_l) { Molecule m; - Atom *at = new Atom ( gh_list (ly_symbol2scm ("bracket"), + SCM at = ( gh_list (ly_symbol2scm ("bracket"), gh_double2scm (paper_l->get_var("bracket_arch_angle")), gh_double2scm (paper_l->get_var("bracket_arch_width")), gh_double2scm (paper_l->get_var("bracket_arch_height")), @@ -460,7 +459,7 @@ Lookup::staff_bracket (Real height, Paper_def* paper_l) gh_double2scm (paper_l->get_var("bracket_thick")), SCM_UNDEFINED)); - m.add_atom (at->self_scm_); + m.add_atom (at); m.dim_[Y_AXIS] = Interval (-height/2,height/2); m.dim_[X_AXIS] = Interval (0,4 PT); diff --git a/lily/paper-score.cc b/lily/paper-score.cc index 0b487a077b..6bd6e33e05 100644 --- a/lily/paper-score.cc +++ b/lily/paper-score.cc @@ -110,7 +110,6 @@ Paper_score::calc_breaking () void Paper_score::process () { - print (); progress_indication (_ ("Preprocessing elements...") + " "); line_l_->breakable_col_processing (); @@ -133,7 +132,7 @@ Paper_score::process () Score_element *sc = unsmob_element (gh_car (s)); sc->handle_broken_dependencies (); } - + outputter_l_ = new Paper_outputter ; outputter_l_->output_header (); diff --git a/lily/tie.cc b/lily/tie.cc index 989861002c..b96a815dfa 100644 --- a/lily/tie.cc +++ b/lily/tie.cc @@ -241,7 +241,7 @@ Tie::get_curve () const Real y0 = c.control_ [0][Y_AXIS]; c.control_[2][Y_AXIS] = c.control_[1][Y_AXIS] = - (c.control_[1][Y_AXIS] - y0) * (newy / y) + y0; + (c.control_[1][Y_AXIS] - y0) * ((newy - y0) / (y - y0)) + y0; } else programming_error ("Tie is nowhere horizontal"); diff --git a/lily/tuplet-spanner.cc b/lily/tuplet-spanner.cc index 2a10981813..766b636fe0 100644 --- a/lily/tuplet-spanner.cc +++ b/lily/tuplet-spanner.cc @@ -90,16 +90,16 @@ Tuplet_spanner::do_brew_molecule_p () const { Real gap = paper_l () -> get_var ("tuplet_spanner_gap"); Real height = staff_space; - Atom *at = new Atom (gh_list(ly_symbol2scm ("tuplet"), + SCM at =gh_list(ly_symbol2scm ("tuplet"), gh_double2scm (height), gh_double2scm (gap), gh_double2scm (w), gh_double2scm (dy), gh_double2scm (thick), gh_int2scm (dir), - SCM_UNDEFINED)); + SCM_UNDEFINED); - mol_p->add_atom (at->self_scm_); + mol_p->add_atom (at); } mol_p->translate_axis (dir * staff_space, Y_AXIS); @@ -120,6 +120,8 @@ Tuplet_spanner::do_add_processing () } } + + /* use first -> last note for slope, and then correct for disturbing notes in between. */ @@ -131,8 +133,26 @@ Tuplet_spanner::calc_position_and_height (Real *offset, Real * dy) const Direction d = directional_element (this).get (); - *dy = column_arr.top ()->extent (Y_AXIS) [d] - - column_arr[0]->extent (Y_AXIS) [d]; + + /* + Use outer non-rest columns to determine slope + */ + int l = 0; + while (l rest_b()) + l ++; + + int r = column_arr.size ()- 1; + while (r >= l && column_arr[r]->rest_b()) + r--; + + if (l < r) + { + *dy = column_arr[r]->extent (Y_AXIS) [d] + - column_arr[l]->extent (Y_AXIS) [d]; + } + else + * dy = 0; + *offset = - d * infinity_f; @@ -152,6 +172,21 @@ Tuplet_spanner::calc_position_and_height (Real *offset, Real * dy) const } } +/* + use first -> last note for slope, +*/ +void +Tuplet_spanner::calc_dy (Real * dy) const +{ + Link_array column_arr= + Group_interface__extract_elements (this, (Note_column*)0, "columns"); + + + Direction d = directional_element (this).get (); + *dy = column_arr.top ()->extent (Y_AXIS) [d] + - column_arr[0]->extent (Y_AXIS) [d]; +} + void Tuplet_spanner::do_post_processing () { @@ -174,7 +209,9 @@ Tuplet_spanner::do_post_processing () } Real dy, offset; - calc_position_and_height (&offset, &dy); +calc_position_and_height (&offset,&dy); + // calc_position (&offset, dy); + set_elt_property ("delta-y", gh_double2scm (dy)); translate_axis (offset, Y_AXIS); diff --git a/lily/volta-spanner.cc b/lily/volta-spanner.cc index 72ace70c4f..fba5da4831 100644 --- a/lily/volta-spanner.cc +++ b/lily/volta-spanner.cc @@ -70,7 +70,7 @@ Volta_spanner::do_brew_molecule_p () const Molecule volta; - Atom *at = new Atom(gh_list (ly_symbol2scm ("volta"), + SCM at = (gh_list (ly_symbol2scm ("volta"), gh_double2scm (h), gh_double2scm (w), gh_double2scm (t), @@ -80,7 +80,7 @@ Volta_spanner::do_brew_molecule_p () const volta.dim_[Y_AXIS] = Interval (- h/2, h/2); volta.dim_[X_AXIS] = Interval (0, w); - volta.add_atom (at->self_scm_); + volta.add_atom (at); Molecule num (lookup_l ()->text ("volta", ly_scm2string (get_elt_property("text")), diff --git a/make/mutopia-targets.make b/make/mutopia-targets.make index 35b8afd3be..8fd9880957 100644 --- a/make/mutopia-targets.make +++ b/make/mutopia-targets.make @@ -3,8 +3,8 @@ all: $(OUT_FILES) local-WWW: $(ly_examples) $(fly_examples) $(ps_examples) $(png_examples) - (cd $(outdir); $(PYTHON) ../$(buildscripts)/mutopia-index.py --prefix=../ --suffix=/$(outdir) $(html_subdirs) $(all_examples)) - echo $^ > $(depth)/wwwlist +# (cd $(outdir); $(PYTHON) ../$(buildscripts)/mutopia-index.py --prefix=../ --suffix=/$(outdir) $(html_subdirs) $(all_examples)) +# echo $^ > $(depth)/wwwlist # $(footify) $(outdir)/index.html local-web: diff --git a/make/toplevel.make.in b/make/toplevel.make.in index f23ac55661..ed42272d1a 100644 --- a/make/toplevel.make.in +++ b/make/toplevel.make.in @@ -36,6 +36,10 @@ examples: $(MAKE) CONFIGSUFFIX='www' -C input WWW $(MAKE) CONFIGSUFFIX='www' -C mutopia WWW $(footify-all-command) + $(PYTHON) $(buildscripts)/mutopia-index.py -o short-examples.html input/ + $(PYTHON) $(buildscripts)/mutopia-index.py -o long-examples.html mutopia/ + + tar --exclude='*.dvi' --exclude='*.tex' --exclude='*.ps' --exclude='*.ppm' -czf $(outdir)/examples.tar.gz `find input mutopia -type d -name 'out-www' -print` localinstall: diff --git a/scm/lily.scm b/scm/lily.scm index b6ea62e1df..582c55e24b 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -215,7 +215,12 @@ (map (lambda (x) (font-load-command (car x) (cdr x))) font-name-alist) )) - + +(define (fontify name exp) + (string-append (select-font name) + exp) + ) + ;;;;;;;;;;;;;;;;;;;; @@ -233,7 +238,10 @@ +;;;;;;;;;;;;;;;;;;; generic output +(define (translate-atom offset exp) + exp) ;;;;;;;;;;;;;;;;;;; TeX output diff --git a/scripts/ly2dvi.py b/scripts/ly2dvi.py index 6c27cae35f..a07fef4d7a 100644 --- a/scripts/ly2dvi.py +++ b/scripts/ly2dvi.py @@ -341,7 +341,7 @@ class TeXOutput: this.write(r""" %% \vfill\hfill{\mudelatagline} \makeatletter -\renewcommand{\@oddfoot}{\mudelatagline}% +\renewcommand{\@oddfoot}{\hfil\mudelatagline}% \makeatother \end{document} """)