]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.5.43 release/1.5.43
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 19 Mar 2002 00:50:26 +0000 (01:50 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 19 Mar 2002 00:50:26 +0000 (01:50 +0100)
35 files changed:
ChangeLog
Documentation/user/refman.itely
GNUmakefile.in
VERSION
buildscripts/lilypond-profile.sh
buildscripts/mutopia-index.py
input/baerenreiter-sarabande.ly
input/test/pedal.ly [new file with mode: 0644]
lily/afm.cc
lily/include/dimensions.hh
lily/piano-pedal-engraver.cc
lily/text-spanner.cc
lily/tfm.cc
lilypond-font-lock.el
make/lilypond-vars.make
make/mutopia-rules.make
make/mutopia-targets.make
make/mutopia-vars.make
make/out/lilypond.lsm
make/out/lilypond.mandrake.spec
make/out/lilypond.redhat.spec
make/out/lilypond.suse.spec
mf/feta-schrift.mf
ps/lilyponddefs.ps
scm/beam.scm
scm/grob-description.scm
scm/grob-property-description.scm
scm/interface-description.scm
scm/pdf.scm
scm/pdftex.scm
scm/ps.scm
scm/sketch.scm
scm/tex.scm
scripts/ly2dvi.py
tex/lily-ps-defs.tex

index e0b0e21e2fc8a9474fdd7083b7a4d84f7e91cb3e..462b2c7759f058006e43c1d959ce6fc23c5324b6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,24 @@
---- ../lilypond-1.5.42.hwn1/ChangeLog  Mon Mar 18 16:59:27 2002
-++ b/ChangeLog Mon Mar 18 23:23:50 2002
-@@ -1,3 +1,18 @@
+2002-03-19  Han-Wen  <hanwen@cs.uu.nl>
+
+       * VERSION: 1.5.43 released
+
+       * scm/beam.scm (beam-dir-majority-median): if majority is
+       undecided, use median. Removes a forced dir in sarabande.
+
+       * mf/feta-schrift.mf: Trill fixes, Vee fixes (upbow, ltoe, rtoe)
+
+2002-03-18 Chris Jackson <chris@fluffhouse.org.uk>
+       * lily/text-spanner.cc, lily/piano-pedal-engraver.cc: Cleanups. Edge
+       widths, heights and shortens are now customisable properties.
+       * scm/grob-description.scm, scm/grob-property-description.scm: New
+       properties added to PianoPedalBracket, unnecessary
+       Y-offset-callbacks removed from *Pedal, undocumented properties
+       fixed.
+       * Documentation/user/refman.itely: Piano pedal updates.
+
 2002-03-18  Jan Nieuwenhuizen  <janneke@gnu.org>
 
        * scm/grob-property-description.scm:
        * scm/beam.scm: Remove old stuff.  Use Beam::get_interbeam ()
        (previously space-function).
 
- 2002-03-18  Han-Wen  <hanwen@cs.uu.nl>
+       * stepmake/bin/add-html-footer.py: Website title fix.
+
+2002-03-18  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+       * scripts/ly2dvi.py (environment): use new font searching setup.
+
+       * lily/afm.cc (afm_bbox_to_box): make code dimension independent
+
+       * lily/tfm.cc (dimensions): make code dimension independent
+
+       * ps/lilyponddefs.ps: add constant for MM and true/ps-point
+       scaling
+
+       * tex/lily-ps-defs.tex: scaling for PS points and MM.
+
+       * lily/include/dimensions.hh: try MM as internal unit.
+
+       * scm/*.scm: remove invoke-dim1
+
+2002-03-17  Han-Wen  <hanwen@cs.uu.nl>
+
+       * GNUmakefile.in (fontpaths): add fontpaths target,
+
+       * make/mutopia-targets.make: add PDF rules.
+
+       * make/mutopia-rules.make: add pdf rule.
+
+       * buildscripts/mutopia-index.py (list_item): add PDF.
+
+       * buildscripts/lilypond-profile.sh (TEXMF): typo.
+
+       * make/lilypond-vars.make: set TEXMF for the new font setup.
  
-       * lily/afm.cc (afm_bbox_to_box): make code dimension independent2002-03-18  Jan Nieuwenhuizen  <janneke@gnu.org>
+2002-03-17  Han-Wen  <hanwen@cs.uu.nl>
+
+       * VERSION: 1.5.42 released
+       
+       * mf/feta-schrift.mf: endless twiddling of Tr.
 
-       * stepmake/bin/add-html-footer.py: Website title fix.
+       * mf/feta-eindelijk.mf: 8th rest: make darker, top of brush lower, and
+       endless twiddling with the bulb shape.
+
+       * lily/note-head.cc (internal_brew_molecule): make ledger lines a
+       little smaller if there is an accidental.
 
 2002-03-15  Mats Bengtsson  <mats.bengtsson@s3.kth.se>
  
  
        * mf/GNUmakefile (ALL_GEN_FILES): Actually generate the
        lilypond.map file
-2002-03-17  Han-Wen  <hanwen@cs.uu.nl>
-
-       * mf/feta-schrift.mf: endless twiddling of Tr.
-
-       * mf/feta-eindelijk.mf: 8th rest: make darker, top of brush lower, and
-       endless twiddling with the bulb shape.
-
-       * lily/note-head.cc (internal_brew_molecule): make ledger lines a
-       little smaller if there is an accidental.
 
 2002-03-17  Jan Nieuwenhuizen  <janneke@gnu.org>
 
index 13eb20e0a4bbcc66a66c08e1fd32727e5ab66310..ec472a3fd43e5fe46100a3ea5c3cb1bb59423843 100644 (file)
@@ -1948,7 +1948,7 @@ c''4 \spanrequest \stop "Sustain"
 The symbols that are printed can be modified by setting
 @code{pedal@var{X}Strings}, where @var{X} is one of the pedal types:
 Sustain, Sostenuto or UnaCorda.  Refer to the generated documentation of
-@rgrob{PianoPedal} for more information.
+@rgrob{SustainPedal}, for example, for more information.
 
 Pedals can also be indicated by a sequence of brackets, by setting the 
 @code{pedal-type} property of SustainPedal grobs: 
@@ -1967,13 +1967,25 @@ c''4 \sustainDown d''4 e''4 c'4 \sustainUp \sustainDown f'4 g'4 a'4 \sustainUp
 @end lilypond
 
 The default '*Ped' style for sustain and damper pedals corresponds to
-@code{\pedal-type = #'text}. However @code{mixed} is the default style
+@code{\pedal-type = #'text}. However, @code{mixed} is the default style
 for a sostenuto pedal:
 
 @lilypond[fragment,verbatim]
 c''4 \sostenutoDown d''4 e''4 c'4 f'4 g'4 a'4 \sostenutoUp
 @end lilypond
 
+For fine-tuning of the appearance of a pedal bracket, the properties
+@code{edge-width}, @code{edge-height}, and @code{shorten-pair} of
+@code{PianoPedalBracket} grobs (see the detailed documentation of
+@rgrob{PianoPedalBracket}) can be modified.  For example, the bracket
+may be extended to the end of the note head.
+
+@lilypond[fragment,verbatim]
+\property Staff.PianoPedalBracket \override #'shorten-pair = #'(0 . -1.0)
+c''4 \sostenutoDown d''4 e''4 c'4 f'4 g'4 a'4 \sostenutoUp
+@end lilypond
+
+
 
 @c .   {Arpeggio}
 @node Arpeggio
index 35a549cd8cd3248d7512e9fa6a1374ebe1101ac0..d3ef1f97576d8ee05ad286dd7922ef3dc8c2a834 100644 (file)
@@ -35,6 +35,7 @@ footify:
        $(footify) --index=./ `$(FIND) . -maxdepth 1 -name '*.html' -print`
        $(footify-all-command)
 
+
 fonts:
        $(MAKE) -C $(depth)/mf
 
@@ -60,21 +61,24 @@ TOP_HTMLS = index.html short-examples.html long-examples.html
 
 index: web-doc
 
-short-examples:
+short-examples: pfa-fonts
        $(MAKE) out=www -C input WWW
        $(PYTHON) $(buildscript-dir)/mutopia-index.py -o short-examples.html input/
 
 
-long-examples:
+long-examples: pfa-fonts
        $(MAKE) out=www -C mutopia WWW
        $(PYTHON) $(buildscript-dir)/mutopia-index.py -o long-examples.html mutopia/
 
+pfa-fonts:
+       $(MAKE) MAKE_PFA_FILES=1 -C mf
+
 lily: lily/$(outdir)/lilypond
 
 lily/$(outdir)/lilypond:
        $(MAKE) -C lily
 
-local-web: fonts lily $(TOP_HTMLS:%.html=%) footify do-top-doc top-web
+local-web: fontpaths fonts lily $(TOP_HTMLS:%.html=%) footify do-top-doc top-web
 
 top-web:
        rm -f `find . -name \*.html~ -print`
@@ -109,3 +113,11 @@ top-WWW-clean:
 
 
 WWW:
+
+fontpaths:
+       -ln -s $(depth)/mf/out dvips
+       -mkdir -p fonts
+       -ln -s ../$(depth)/mf fonts/source
+       -ln -s ../$(depth)/mf/out fonts/afm
+       -ln -s ../$(depth)/mf/out fonts/tfm
+       -ln -s ../$(depth)/mf/out fonts/type1
diff --git a/VERSION b/VERSION
index d4985a2899fbb2dba64219fe99106cd4af660c55..be33ecbf5219d322379acf82b1c38ab4208b8536 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=5
-PATCH_LEVEL=42
-MY_PATCH_LEVEL=jcn2
+PATCH_LEVEL=43
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index 8539cd36d6fb419ee3edf484acd32af43ad7825b..11464f2ba51b121368b1bd0be6bd2852e09c29e9 100755 (executable)
@@ -23,7 +23,7 @@ GS_LIB="$datadir/ps:"${GS_LIB:=""}
 
 # Add the installation directory to the teTeX system tree, 
 # see Documentation/misc/fontinstallation
-TEXMF="{$DATADIR,"`kpsexpand  \\$TEXMF`"}"
+TEXMF="{$datadir,"`kpsexpand  \\$TEXMF`"}"
 
 # LILYPONDPREFIX="$datadir"
 # export LILYPONDPREFIX
index 4bbc0bb2c58416688cf728ffb058cc528d3866cd..2e5d3b5e35ce558d830ca22bfb8f91932c4c4442 100755 (executable)
@@ -3,7 +3,6 @@
 
 name = 'mutopia-index'
 
-# find.py -- deprecated in python 2.0
 import fnmatch
 import os
 
@@ -57,9 +56,10 @@ headertext= r"""
 These files are also included in the distribution. The output is
 completely generated by LilyPond, without any touch up by humans.
 
-<p>The PostScript files were generated using TeX and dvips. The pictures
-are 90dpi anti-aliased snapshots of the printed output.  The images
-are in PNG format, and should be viewable with any current browser.
+<p>The PostScript files were generated using TeX and dvips at 600 dpi.
+The pictures are 90dpi anti-aliased snapshots of the printed output.
+The images are in PNG format, and should be viewable with any current
+browser.
 
 <p>If you want a better impression of the appearance, do print out one of
 the postscript files.
@@ -166,6 +166,7 @@ def gen_list(inputs, filename):
                        if not file_exist_b (f):
                                break
                        list_item(f, 'See a picture of page %d' % pageno, 'png')
+               list_item(base + '.pdf', 'Print ', 'PDF')
                list_item(base + '.ps.gz', 'Print ', 'gzipped PostScript')
                list_item(base + '.midi', 'Listen', 'MIDI')
                list.write ("</ul>\n");
index 175735eef1798d96378819f88d08e621a60e07c4..1a529b1a9ced380ed7b9456ec7fabfa2f8716380 100644 (file)
@@ -19,7 +19,7 @@ measure 25, we get back the linebreaking of Baerenreiter.
 
 
 This file used to show spacing weaknesses. Now it shows weaknesses in
-beam and slur handling.
+slur handling.
 
 Note that the Barenreiter edition contains an engraving mistake. The
 second line begins with measure 6 (but prints 5).
@@ -133,16 +133,31 @@ sarabandeCelloStaff =  \context Staff <
   \sarabandeCelloScripts
 >
 
-\score{
-  \sarabandeCelloStaff
-  \paper{
-    indent = 7. \mm
-    linewidth = 183.5 \mm
+% size perversions
+smallerPaper = \paper {
+    \translator { \StaffContext
+                 fontSize = #-1
+                 StaffSymbol \override  #'staff-space = #0.8
+                 }
     \translator { \ScoreContext
-                 %% SpacingSpanner \override #'maximum-duration-for-spacing = #(make-moment 1 16)
+                  SpacingSpanner \override #'spacing-increment = #0.96
+               }
+       
+    indent = 5.6 \mm
+    linewidth = 146.8 \mm
+}
+
+baerPaper = \paper {
+    indent = 7. \mm
+    linewidth =183.5 \mm
+}
 
 
-               }}
+\score{
+  \sarabandeCelloStaff
+  \paper{
+    \baerPaper
+  }
   \midi{ \tempo 4 = 40 }
   \header{
     opus= "" 
diff --git a/input/test/pedal.ly b/input/test/pedal.ly
new file mode 100644 (file)
index 0000000..3c5559e
--- /dev/null
@@ -0,0 +1,39 @@
+\version "1.5.43"
+\header{
+    texidoc = "Piano pedal symbols merge stop and start.  The strings are configurable. 
+Text style, bracket style, and a mixture of both are supported.  "
+}
+
+
+
+
+\score{
+    \context Staff \notes\relative c'{
+
+       c4 d e f g
+       \sustainDown b c
+       c, [d16  c  c c] [e e \sustainUp \sustainDown e e ] f4 \sustainUp 
+       g\sustainDown  b \sustainUp c 
+       \property Staff.pedalSustainStrings = #'("-" "-P" "P")
+       \property Staff.SustainPedal \override #'padding = #-2
+       c, \sustainDown d e \sustainUp \sustainDown f
+       \sustainUp g b c
+
+       \property Staff.SustainPedal \override #'pedal-type = #'bracket
+
+       c4 d e \sustainDown b c c, \sustainUp \sustainDown [d8 c] [e8 e \sustainUp \sustainDown] f4 d
+       \sustainUp g \sustainDown b b, \sustainUp c'
+
+       \property Staff.UnaCordaPedal \override #'pedal-type = #'mixed
+
+       c4 d \unaCorda e f g
+       b \treCorde c
+
+
+    }
+    \paper{
+    }
+    \midi{
+       \tempo 4 = 60
+    }
+}
index ddca303bc004712493eac82029b317ef9198a52b..1c760a181379560c5076fd4279fcdc2319f2f5ed 100644 (file)
@@ -9,6 +9,7 @@
 #include "afm.hh"
 #include "warn.hh"
 #include "molecule.hh"
+#include "dimensions.hh"
 
 Adobe_font_metric::Adobe_font_metric (AFM_Font_info * fi)
 {
@@ -129,12 +130,16 @@ read_afm_file (String nm)
   return Adobe_font_metric::make_afm (fi, cs);
 }
 
-  
+
+/*
+  actually, AFMs will be printers point, usually, but our .py script dumps
+  real points.
+ */
 Box
 afm_bbox_to_box (AFM_BBox bb)
 {
-  return Box (Interval (bb.llx, bb.urx)* (1/1000.0),
-             Interval (bb.lly, bb.ury)* (1/1000.0));
+  return Box (Interval (bb.llx, bb.urx)* (1/1000.0) PT,
+             Interval (bb.lly, bb.ury)* (1/1000.0) PT);
 
 }
   
index 8fe9487fcdcd3bbb2ac88e798551d67e32ad0bd8..66a9d0868d36bb2215c608a30f291fdc2820235c 100644 (file)
@@ -4,14 +4,17 @@
 #include "real.hh"
 class String;
 
+
 const Real INCH_TO_PT=72.270;
-const Real CM_TO_PT=INCH_TO_PT/2.54;
-const Real MM_TO_PT=CM_TO_PT/10;
+const Real CM_TO_PT=(INCH_TO_PT/2.54);
+const Real MM_TO_PT=(CM_TO_PT/10);
 const Real PT_TO_PT =1.0;
 const Real INCH_TO_BP = 72;
-const Real BIGPOINT_TO_POINT = INCH_TO_PT/ INCH_TO_BP;
+const Real BIGPOINT_TO_POINT = (INCH_TO_PT/ INCH_TO_BP);
 const Real CHAR_TO_PT =1.0;
+const Real PT_TO_MM = (1.0/MM_TO_PT);
 
+#ifdef POINTS
 
 #define PT  *PT_TO_PT
 #define MM  *MM_TO_PT
@@ -20,6 +23,17 @@ const Real CHAR_TO_PT =1.0;
 #define BIGPOINT *BIGPOINT_TO_POINT
 #define CHAR *CHAR_TO_PT
 
+#else  // mm
+
+#define PT  *PT_TO_PT *PT_TO_MM
+#define MM  *MM_TO_PT *PT_TO_MM
+#define CM  *CM_TO_PT *PT_TO_MM
+#define INCH *INCH_TO_PT *PT_TO_MM
+#define BIGPOINT *BIGPOINT_TO_POINT *PT_TO_MM
+#define CHAR *CHAR_TO_PT *PT_TO_MM
+
+#endif
+
 String print_dimen (Real);
 
 #endif // DIMENSIONS_HH
index 2570e2807595f6c73eecb5e4f311c924a11c4c44..5c9ca83d6399a47149274195b9673a46d2ceb37e 100644 (file)
@@ -291,8 +291,8 @@ Piano_pedal_engraver::create_bracket_grobs (Pedal_info *p, SCM pedaltype)
 
       p->bracket_p_->set_bound (RIGHT, unsmob_grob(get_property ("currentMusicalColumn")));
 
-      // Set a property so that the molecule-creating function will know whether the right edge should be angled ___/
-      p->bracket_p_->set_grob_property("angle-right", gh_bool2scm((bool) p->req_l_drul_[START]) );
+      // Set a property so that the molecule-creating function will know whether the right edge should be flared ___/
+      p->bracket_p_->set_grob_property("right-widen", gh_bool2scm((bool) p->req_l_drul_[START]) );
       add_bound_item (p->line_spanner_, p->bracket_p_->get_bound (RIGHT));       
 
       p->finished_bracket_p_ = p->bracket_p_;
@@ -309,8 +309,8 @@ Piano_pedal_engraver::create_bracket_grobs (Pedal_info *p, SCM pedaltype)
       p->bracket_p_  = new Spanner (get_property ("PianoPedalBracket"));
       p->bracket_p_->set_interface (ly_symbol2scm ("piano-pedal-interface"));
 
-      // Set a property so that the molecule-creating function will know whether the left edge should be angled \___
-      p->bracket_p_->set_grob_property("angle-left", gh_bool2scm((bool) p->req_l_drul_[STOP]) );
+      // Set a property so that the molecule-creating function will know whether the left edge should be flared \___
+      p->bracket_p_->set_grob_property("left-widen", gh_bool2scm((bool) p->req_l_drul_[STOP]) );
 
       // Set this property for 'mixed style' pedals,    Ped._______/\ ,  
       // so the molecule function will shorten the ____ line by the length of the Ped. text. 
@@ -321,8 +321,6 @@ Piano_pedal_engraver::create_bracket_grobs (Pedal_info *p, SCM pedaltype)
       if (p->item_p_)
        p->bracket_p_->set_parent (p->item_p_, Y_AXIS);
       
-      Side_position_interface::set_axis (p->bracket_p_, Y_AXIS);
-      Side_position_interface::set_direction (p->bracket_p_, UP);
       p->bracket_p_->set_bound (LEFT, unsmob_grob (get_property ("currentMusicalColumn")));
       Axis_group_interface::add_element (p->line_spanner_, p->bracket_p_);           
 
index 127de061a356e6d738e68920da7d5d3249ccfab4..554bc1d1f45e22fe960b41022e4be138ed8ceb50 100644 (file)
@@ -181,8 +181,6 @@ Text_spanner::brew_molecule (SCM smob)
    Pedal up-down (restart) indicated by the angled right and left edges 
    of consecutive pedals touching exactly to form an __/\__
    Chris Jackson <chris@fluffhouse.org.uk>
-
-   TODO: Pedal line extending to the end of the note
 */
 
 void 
@@ -190,31 +188,31 @@ Text_spanner::setup_pedal_bracket(Spanner *s)
 {
 
   Real thick = s->paper_l ()->get_var ("stafflinethickness");  
-  Real ss = Staff_symbol_referencer::staff_space (s);
 
-  Drul_array<bool> a, broken;
+  Drul_array<bool> w, broken;
   Drul_array<Real> height, width, shorten, r;
 
+  SCM pa = s->get_grob_property ("if-text-padding");
+  SCM ew = s->get_grob_property ("edge-width");
+  SCM eh = s->get_grob_property ("edge-height");
+  SCM sp = s->get_grob_property ("shorten-pair");
+  SCM wl = s->get_grob_property ("left-widen");
+  SCM wr = s->get_grob_property ("right-widen");
+
   // Pedal has an angled left edge \__  or an angled right edge __/ 
-  a[LEFT] = a[RIGHT] = false;
-  SCM al = s->get_grob_property ("angle-left");
-  SCM ar = s->get_grob_property ("angle-right");
-  if (gh_boolean_p (al) )  
-    a[LEFT]   = to_boolean (al);
-  if (gh_boolean_p (ar) )  
-    a[RIGHT]  = to_boolean (ar);
-  
-  height[LEFT] = ( to_boolean (s->get_grob_property ("text-start")) ?
-                  0 :
-                  ss );
-  height[RIGHT] = ss;
+  w[LEFT] = w[RIGHT] = false;
+  if (gh_boolean_p (wl) )  
+    w[LEFT]   = to_boolean (wl);
+  if (gh_boolean_p (wr) )  
+    w[RIGHT]  = to_boolean (wr);
   
   Direction d = LEFT;
   Interval e;
   Real padding = 0;
-  SCM pa = (s->get_grob_property ("if-text-padding"));
+
   if (gh_number_p (pa) )
     padding = gh_scm2double (pa);
+
   do {
     Item *b = s->get_bound (d);
 
@@ -223,18 +221,24 @@ Text_spanner::setup_pedal_bracket(Spanner *s)
       r[d] = d * (e[-d] + padding);
 
     broken[d] = b->break_status_dir () != CENTER;
-    width[d]  = (a[d]  ? ss*d/2 :  0);
-    if (broken[d])
-      height[d] =  0;
+    width[d]  =  0;
+    height[d] =  0;
+    shorten[d] = 0;
+    if ( w[d] && gh_pair_p (ew) )
+      width[d] +=  gh_scm2double (index_cell (ew, d)) * d;
+    if ( !broken[d] && (gh_pair_p (eh) ) )
+      height[d] = gh_scm2double (index_cell (eh, d));
+    if ( gh_pair_p (sp) )
+      shorten[d] =  gh_scm2double (index_cell (sp, d));
   }
   while (flip (&d) != LEFT);
   
-  shorten[RIGHT] =  shorten[LEFT]  =  0;
   Real extra_short = 0;
   // For 'Mixed' style pedals, i.e.  a bracket preceded by text:  Ped._____|
   // need to shorten by the extent of the text grob
   if ( to_boolean (s->get_grob_property ("text-start")) )
     {
+      height[LEFT] = 0;
       Grob * textbit = s->get_parent(Y_AXIS);
       extra_short = padding;
       if (textbit->has_interface(ly_symbol2scm("piano-pedal-interface")))
@@ -267,10 +271,6 @@ Text_spanner::setup_pedal_bracket(Spanner *s)
     // Shorten bracket on the right so it ends just before the spanned note.
     shorten[RIGHT]  +=  thick  -  (r[LEFT]  +  r[RIGHT]);
 
-  // Hmm. TODO: This should be set in grob-description.scm, but side-positioning
-  // of consecutive brackets only seems to work if direction is +1 within the engraver. 
-  s->set_grob_property ("direction", gh_int2scm(-1)); 
-
   s->set_grob_property ("edge-height", gh_cons ( gh_double2scm ( height[LEFT] ) , 
                                                 gh_double2scm ( height[RIGHT]) ) );
   s->set_grob_property ("edge-width",  gh_cons ( gh_double2scm ( width[LEFT]  ), 
index 01b26efabad3f57dd6b735f0d7c085fea8313c42..89a09a5011807a79027e05e1eef94f222e3c9d78 100644 (file)
@@ -14,6 +14,7 @@
 #include "string-convert.hh"
 #include "debug.hh"
 #include "warn.hh"
+#include "dimensions.hh"
 
 Box
 Tex_font_char_metric::dimensions () const
@@ -26,7 +27,12 @@ Tex_font_char_metric::dimensions () const
     }
   
   Real d = -depth_;
-  return Box (Interval (0, width_),Interval (d <? height_, d >? height_));
+
+  Real point_constant = 1 PT;
+  
+  return Box (Interval (0, width_*point_constant ),
+             Interval ((d <? height_)*point_constant,
+                       (d >? height_)*point_constant));
 }
 
 Tex_font_char_metric::Tex_font_char_metric ()
index 4a09294c56a41af73aff863feb981ee13ed92500..a678a121fdbc9586efb06f3d82766cc15ae27151 100644 (file)
           (lambda (x) (modify-syntax-entry
                        (car x) (cdr x) LilyPond-mode-syntax-table)))
          '(( ?\( . "." ) ( ?\) . "." ) 
-           ( ?\[ . "." ) ( ?\] . "." )
+           ( ?\[ . "(]" ) ( ?\] . ")[" )
            ( ?\{  .  "(}2b" )
            ( ?\}  .  "){4b" )
            ( ?\< . "." )( ?\> . ".") 
index 9891207728f70e4f386dcaf8a7ebbf5e5bedf317..b7ddebfa75bde44071a103398d23fab908348630 100644 (file)
@@ -3,11 +3,8 @@
 
 
 export PATH:=$(topdir)/lily/out:$(topdir)/buildscripts/out:$(PATH)
+export TEXMF:={$(topdir),$(shell kpsexpand \$$TEXMF)}
 
-export MFINPUTS:=$(topdir)/mf/:$(MFINPUTS)::
-export TEXINPUTS:=$(topdir)/mf/out/:$(topdir)/tex/:$(topdir)/ps/:$(TEXINPUTS):$(pwd)::
-export LILYINCLUDE:=$(topdir)/ps:$(topdir)/scm:$(topdir)/ly:$(topdir)/mf/out::$(TEX_TFMDIR):$(LILYINCLUDE)
-export TFMFONTS:=$(topdir)/mf/out:
 export extra_mem_top=1000000
 export extra_mem_bottom=1000000
 export pool_size=250000
index 08445758d53908ab05bf49f719dbfbd38ea3c5e9..81b6b57fd41a1c17428d4bdb6ab11a877b3268b0 100644 (file)
@@ -33,6 +33,13 @@ $(outdir)/%.dvi: $(outdir)/%.ly
 $(outdir)/%.dvi: %.ly
        $(PYTHON) $(LY2DVI) --output=$@ --dependencies $< 
 
+
+$(outdir)/%.pdf: $(outdir)/%.dvi
+       dvips -u lilypond.map -o $@.pdfps  -Ppdf $<
+       ps2pdf $@.pdfps $@
+
+       $(PYTHON) $(LY2DVI) --output=$@ --dependencies $< 
+
 $(outdir)-$(PAPERSIZE)/%.dvi: %.ly
        $(PYTHON) $(LY2DVI) --output=$@ --dependencies --set=papersize=$(PAPERSIZE) $< 
 
index 3504259fb557722233d4ba97e05aa7d10f1f80b8..54cd429bb5fc737e12b43a5ab9fecb90ebe24a0d 100644 (file)
@@ -12,7 +12,7 @@ all: $(OUT_FILES)
 
 # we want dvi_examples as well, because they get thrown away otherwise
 # incurring another costly lilypond run.
-local-WWW: $(ly_examples) $(dvi_examples) $(ps_examples) $(png_examples)
+local-WWW: $(ly_examples) $(pdf_examples) $(ps_examples) $(png_examples)
 
 tar:
        mkdir -p $(outdir)/$(tarball)
index 2132fab7570ef33d4f190665d7146e0ed62639f6..84bc7bf8498bd4ca782a4cdc793cf3d7f1e6362d 100644 (file)
@@ -14,6 +14,7 @@ ly_examples=$(addprefix $(outdir)/, $(addsuffix .ly.txt, $(examples)))
 all_examples=$(examples)
 dvi_examples=$(addprefix $(outdir)/, $(addsuffix .dvi, $(all_examples)))
 ps_examples=$(addprefix $(outdir)/, $(addsuffix .ps.gz, $(all_examples)))
+pdf_examples=$(addprefix $(outdir)/, $(addsuffix .pdf, $(all_examples)))
 gif_examples=$(addprefix $(outdir)/, $(addsuffix .gif, $(all_examples)))
 png_examples=$(addprefix $(outdir)/, $(addsuffix .png, $(all_examples)))
 
index 1d09a22d18bf3e55c6e04481f0768c977f38c182..763983702e37827b30829c728c04dceb43530b1d 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.5.42
-Entered-date: 17MRT02
+Version: 1.5.43
+Entered-date: 19MRT02
 Description: @BLURB@
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       1000k lilypond-1.5.42.tar.gz 
+       1000k lilypond-1.5.43.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.5.42.tar.gz 
+       1000k lilypond-1.5.43.tar.gz 
 Copying-policy: GPL
 End
index 577bafad07214e313d6b65855597ae88e9771214..cc29af3fdd72fd4cdb010184cf0e127e53da4abb 100644 (file)
@@ -1,5 +1,5 @@
 %define name lilypond
-%define version 1.5.42
+%define version 1.5.43
 %define release 1mdk
 
 Name: %{name}
index d276007fb3fac2a8967437094f21852b6d4c52eb..64d7a2f8cc6ab1c6a9e1315e70a70b901eec2184 100644 (file)
@@ -3,11 +3,11 @@
 %define info yes
 
 Name: lilypond
-Version: 1.5.42
+Version: 1.5.43
 Release: 1
 License: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.42.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.43.tar.gz
 Summary: Create and print music notation 
 URL: http://www.lilypond.org/
 BuildRoot: /tmp/lilypond-install
index e5ece3c4e3b896af6395be9026979f1b1a8e1af8..d2c3cb796a2696baf359dbf491aa4b8a4ae81d8d 100644 (file)
 
 Distribution: SuSE Linux 7.0 (i386)
 Name: lilypond
-Version: 1.5.42
+Version: 1.5.43
 Release: 2
 Copyright:    GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.42.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.43.tar.gz
 # music notation software for.. ?
 Summary: A program for printing sheet music.
 URL: http://www.lilypond.org/
index 49f18ee26272c7bfbb6f82f6638e8b35346c7014..5999f7120ba498d39bfdb8033bbf1c2a70ca0045 100644 (file)
@@ -277,27 +277,47 @@ fet_beginchar("plus (stopped)", "stopped", "plusstop")
        addto currentpicture also currentpicture rotated 90;
 fet_endchar;
 
+
 %
-% FIXME: blotting 
+% A vee with tapered insides to prevent visual blotting
 %
-fet_beginchar("Upbow", "upbow", "upbow")
-       save ht, wd, thick;
 
-       thick = 1.4 stafflinethickness;
-       wd# = 1.3 staff_space#;
-       ht# = 1.6 wd#; 
+def draw_vee (expr width, height, thickness) =
+begingroup
+       save diminish;
 
-       
-       set_char_box(wd#/2, wd#/2, 0, ht#);
-       pickup pencircle scaled thick;
+       diminish = 0.75;
 
+       pickup pencircle scaled thickness;
+       
        x1 = 0;
        bot y1 = 0;
        rt x2 =  w;
        top y2 = h;
 
+       z3 = 0.6 [z2, z1];
+       penpos3(thickness, 0);
+       penpos4(thickness * diminish, 0);
+       x4r = thickness/2;
+       y4 = thickness/2;
        labels(1,2);
-       draw z2 -- z1 -- (z2 xscaled -1);
+       penlabels(3,4);
+
+       draw z1;
+       draw z3 -- z2;
+       penstroke z3e .. z4e;
+       addto currentpicture also currentpicture xscaled -1;
+endgroup;
+enddef;
+
+fet_beginchar("Upbow", "upbow", "upbow")
+       save ht, wd, thick, diminish;
+       
+       thick = 1.4 stafflinethickness;
+       wd# = 1.3 staff_space#;
+       ht# = 1.6 wd#; 
+       set_char_box(wd#/2, wd#/2, 0, ht#);
+       draw_vee (wd, ht, thick);
 fet_endchar;
 
 
@@ -410,20 +430,22 @@ fet_beginchar("Trill (`tr')","trill","trill")
        ascender_extra# = 1/2 ex#;
        ascender# = ascender_extra# + ex#;
        ex# = 1.4 staff_space#;
-       kerning# = .550 ex#;
+       kerning# = .60 ex#;
        start_nib_angle = 20;
-       bulb_size = 0.55;
+       bulb_size = 0.70;
        define_pixels(ex, ascender_extra, ascender, kerning);
 
        t_overshoot = 0.03 ex;
        fatness = 12/40 ex;
-       t_fatness = 0.780 fatness;
-       t_width =  1.8 t_fatness;
-       r_fatness = 0.75 fatness;
-       uitschieter = 0.43 ex;
+       t_fatness = 0.78 fatness;
+       t_width =  1.9 t_fatness;
+       r_fatness = 0.78 fatness;
+       uitschieter = 0.48 ex;
        hair_thick =  blot_diameter;
-
+       r_flare = 0.45  r_fatness;
+       r_width =  2 r_fatness + 0.25 kerning;
        slant = .2;
+
 %      slant = .0;
 
        local_copy(transform)(currenttransform);
@@ -454,7 +476,8 @@ fet_beginchar("Trill (`tr')","trill","trill")
        z5 = (t_fatness/2, 2/3 ex);
 %      penpos5(hair_thick, ); 
 
-       t_p := simple_serif (z1r, z1l, -40) -- z2l {down}
+       t_p := z1r{dir (angle(z1l-z1r) + 30)} .. z1l{-dir (angle(z1r-z1l) - 45)}
+               -- z2l {down}
                .. tension (1 + .5 slant)
                .. z3l{right} 
                
@@ -501,22 +524,22 @@ fet_beginchar("Trill (`tr')","trill","trill")
        set_char_box(.85 staff_space# , .85 staff_space#, 0,ascender#);
 
 
-       penpos11(1/4 r_fatness, -20);
+       penpos11(1/4 r_fatness, -4);
        z11r = z9r;
        
-       z13 = (x9 + 1.9 r_fatness, y11 -  stafflinethickness );
-       penpos13(0.45  r_fatness, 170);
+       z13l = (x9l + r_width, y11 -  stafflinethickness );
+       penpos13(r_flare, 180);
 
        z15 = z13r  - (bulb_size * r_fatness,0);
        z14 = 0.5 [z13l, z15] - (0,bulb_size* r_fatness);
        z16 = 0.5 [z13l, z15] + (0,bulb_size* r_fatness);
 
 
-       fill z11r{dir 70} .. tension 0.94 .. z13r{down} -- z15{down}
-               .. tension 0.97 .. z13l{up}
-               .. z11l{dir 250} -- cycle;
+       fill z11r{up} .. tension 0.94 .. z13r{down} -- z15{down}
+               .. tension 1.0 .. z13l{up}
+               .. z11l{down} -- cycle;
 
-       fill z15{up} .. tension 1.1 .. z13l{down} .. z14 .. cycle;
+       fill z15{up} .. tension 1.06 .. z13l{down} .. z14 .. cycle;
 
 
 
@@ -570,17 +593,7 @@ def draw_toe =
 
 
        set_char_box(wd#, wd#, 0, ht#);
-       
-       pickup pencircle scaled thickness;
-       lft x1 = -b;
-       bot y1 = 0;
-       x2 =0;
-       top y2 = h;
-       z3 = z1 xscaled -1;
-
-
-       draw z1 -- z2 -- z3;
-
+       draw_vee (wd, ht, thickness);
 enddef;
        
 fet_beginchar("left toe", "upedaltoe", "upedaltoe")
index 220b6cf2ea4a826e2482f155bb520587f2663d9e..453135ab52395b0aa4bb93271908081c940b9daf 100644 (file)
 % FIXME: why isn't this set (by default) by lily?
 % /text-height lilypondpapertextheight def
 
-/output-scale lilypondpaperoutputscale def
+/lily-output-units 2.83464  def  %% milimeter
+% /lily-output-units 0.996264  def  %% true points.
+
+/output-scale
+lilypondpaperoutputscale lily-output-units mul 
+def
+
+/set-ps-scale-to-lily-scale
+{
+output-scale output-scale scale
+} bind def
+
 /paper-size { lilypondpaperpapersize } bind def
 
 % FIXME
index f3d0de99517db0f091647a15c8c92307c21d6864..6698e1fd623339236d1902ae655ada2774c02e60 100644 (file)
 ;;     
 ;; We have our doubts, so we simply provide all sensible alternatives.
 
+
+;;
+;
+; DOCME: what goes into this func, what comes out.
+
 (define (dir-compare up down)
   (sign (- up down)))
 
 (define (beam-dir-majority count total)
   (dir-compare (car count) (cdr count)))
 
-(beam-dir-majority '(0 . 0) '(0 . 0))
+(define (beam-dir-majority-median count total)
+  "First try majority. If that doesn't work, try median."
+  (let ((maj (dir-compare (car count) (cdr count))))
+    (if (not (= maj 0))
+       maj
+       (beam-dir-median count total))
+    ))
+
 
 (define (beam-dir-mean count total)
   (dir-compare (car total) (cdr total)))
index 84e7e1860c5e7a96ae79a4f0e45571fad2d6439f..997cbb755f3cd2724e57a4c4fca3414ba0b10f7d 100644 (file)
                                  ,Beam::score_stem_lengths
                                  ))
        (neutral-direction . -1)
-       (dir-function . ,beam-dir-majority)
+       (dir-function . ,beam-dir-majority-median)
        (beamed-stem-shorten . (1.0 0.5))
        (outer-stem-length-limit . 0.2)
        (slope-limit . 0.2)
        (if-text-padding . 1.0)
        (width-correct . 0)
        (outer . #t)
-       (angle-left  . #f)
-       (angle-right . #f)
+       (direction . -1)
+       (edge-width . (0.5 . 0.5))
+       (edge-height . (1.0 . 1.0))
+       (shorten-pair . (0.0 . 0.0))
+       (left-widen  . #f)
+       (right-widen . #f)
        (text-start  . #f)
-       (meta . ,(grob-description text-spanner-interface piano-pedal-interface font-interface))
+       (meta . ,(grob-description piano-pedal-interface))
        ))
 
     (RepeatSlash
        (molecule-callback . ,Text_item::brew_molecule)
        (direction . 1)
        (X-offset-callbacks . (,Side_position_interface::aligned_on_self))
-       (Y-offset-callbacks . (,Side_position_interface::aligned_side))
        (no-spacing-rods . #t)
        (padding . 0.0) ;; padding relative to SostenutoPedalLineSpanner
        (pedal-type . mixed)
        (padding . 0.0)  ;; padding relative to SustainPedalLineSpanner
        (pedal-type . text)
        (X-offset-callbacks . (,Side_position_interface::aligned_on_self))
-       (Y-offset-callbacks . (,Side_position_interface::aligned_side ))
        (meta . ,(grob-description piano-pedal-interface side-position-interface font-interface))
        ))
 
        (pedal-type . text)
        (padding . 0.0)  ;; padding relative to UnaCordaPedalLineSpanner
        (X-offset-callbacks . (,Side_position_interface::aligned_on_self))
-       (Y-offset-callbacks . (,Side_position_interface::aligned_side ))
        (meta . ,(grob-description text-interface font-interface))
        ))
 
index f10f85ab9cc085051463f375e75d960fddf99ae0..9b7c43bcf8ac75398254bcae847019d0ffc5eb59 100644 (file)
@@ -141,7 +141,7 @@ mean centre distance weighted per note
 (grob-property-description 'dot-count integer? "number of dots.")
 (grob-property-description 'duration-log integer? "2-log of the notehead duration, i.e. 0=whole note, 1 = half note, etc.")
 (grob-property-description 'dy number? "set by beam: vertical travel height")
-(grob-property-description 'edge-height pair? "a cons that specifies the heights of the vertical egdes '(LEFT-height . RIGHT-height).")
+(grob-property-description 'edge-height pair? "a cons that specifies the heights of the vertical edges '(LEFT-height . RIGHT-height).")
 (grob-property-description 'edge-width pair? "a cons that specifies the widths of the slanted edges '(LEFT-width . RIGHT-width).")
 (grob-property-description 'edge-text pair? "a cons that specifies the texts to be set at the edges '(LEFT-text . RIGHT-text).")
 (grob-property-description 'elements list? "list of grobs, type depending on the Grob where this is set in.")
@@ -213,6 +213,7 @@ For barline, space after a thick line.")
 (grob-property-description 'layer number? "The output layer [0..2].  The default is 1.")
 
 (grob-property-description 'left-padding number? "space left of accs.")
+(grob-property-description 'left-widen boolean? "Whether the left edge of a piano pedal bracket should be widened by the first element of edge-width.")
 
 (grob-property-description 'length number? "Stem length for unbeamed stems, only for user override.")
 (grob-property-description 'lengths list? "Stem length given multiplicity of flag.")
@@ -270,7 +271,7 @@ more than this (in staffspace).")
 (grob-property-description 'padding number? "add this much extra space between objects that are next to each other.")
 (grob-property-description 'parallel-beam boolean? "internal: true if there is a beam just as wide as the bracket .")
 (grob-property-description 'paren-cautionaries boolean? "Whether to add parenthesis around cautionary accidentals.")
-(grob-property-description 'pedal-type symbol? "Style of piano pedal: text, bracket or mixed")
+(grob-property-description 'pedal-type symbol? "Style of piano pedal: text, bracket or mixed.")
 (grob-property-description 'penalty number? "Penalty for breaking at
 this column. 10000 or more means forbid linebreak, -10000 or less
 means force linebreak.  Other values influence linebreaking decisions
@@ -282,6 +283,7 @@ as a real penalty.")
 (grob-property-description 'raise number? "height for text to be raised (a negative value lowers the text.")
 (grob-property-description 'right-padding number? "space right of accs.")
 (grob-property-description 'right-trim-amount number? "shortening of the lyric extender on the right.")
+(grob-property-description 'right-widen boolean? "Whether the right edge of a piano pedal bracket should be widened by the second element of edge-width")
 (grob-property-description 'script-priority number? "A sorting key that determines in what order a script is within a stack of scripts.")
 (grob-property-description 'self-alignment-X number-or-grob? "real number: -1 =
 left aligned, 0 = center, 1 right-aligned in X direction.
@@ -293,6 +295,7 @@ reference point.
 TODO: revise typing.")
 (grob-property-description 'self-alignment-Y number? "like self-alignment-X but for Y axis.")
 (grob-property-description 'shorten number? "the amount of space that a stem should be shortened (DOCME!)")
+(grob-property-description 'shorten-pair number-pair? "the length on each side to shorten a text-spanner, for example a pedal bracket")
 
 (grob-property-description 'shortest-playing-duration moment? "duration of the shortest playing in that column.")
 (grob-property-description 'shortest-starter-duration moment? "duration of the shortest notes that starts exactly in this column.")
@@ -391,6 +394,7 @@ The following abbreviations are currently defined:
  select dynamics fontstyle
 @end table
 .")
+(grob-property-description 'text-start boolean? "Indicator for whether a piano pedal bracket has leading text, such as Ped.")
 (grob-property-description 'thick number? "thickness, in stafflinethickness.")
 (grob-property-description 'thick-thickness number? "thickness, measured in stafflinethickness.")
 (grob-property-description 'thickness number? "thickness, measured in stafflinethickness.")
index 8bfbf8610909635b4234a3f5e597bb7232d05fce..3e765fa1ea61793470765da10a508191ccd593ac 100644 (file)
@@ -585,6 +585,11 @@ contains-grace extra-space stretch-distance ))
    'piano-pedal-interface
    ""
    '(pedal-type
+     edge-width
+     edge-height
+     shorten-pair
+     left-widen
+     right-widen
     ))
 
 
@@ -745,6 +750,7 @@ since these usually are in a different X_group
     edge-height 
     edge-width
     edge-text 
+    shorten-pair
     type 
 ))
 
index 50c674e88f6e5d516a17bc04a0821dbc86a01aa2..5f022652c79213d763753105bb091db1e327af27 100644 (file)
     (string-append 
      "(\\" (inexact->string i 8) ") " s " " ))
   
-  (define (invoke-dim1 s d) 
-    (string-append
-     (ly-number->string (* d  (/ 72.27 72))) " " s ))
-
   (define (placebox x y s) "")
 
   (define (bezier-sandwich l thick)
            (define font-load-command ,font-load-command)
            (define header ,header) 
            (define invoke-char ,invoke-char) 
-           (define invoke-dim1 ,invoke-dim1)
+
            (define placebox ,placebox)
            (define repeat-slash ,repeat-slash) 
            (define select-font ,select-font)
 
 ; Local Variables:
 ; scheme-program-name: "guile"
-; End:
\ No newline at end of file
+; End:
index 736cf9bcbfe36b6fdc61fe6bd04e9a23b5221061..6fccc24420a24fd98a4083a19c5a9a6e5df3f7a1 100644 (file)
@@ -7,6 +7,9 @@
 ;;; Han-Wen Nienhuys <hanwen@cs.uu.nl>
 ;;; Stephen Peters <portnoy@portnoy.org>
 
+
+;; TODO: port this  to the new module framework.
+
 (define (pdftex-scm action-name)
   (define (unknown) 
     "%\n\\unknown%\n")
     (string-append 
      "\n\\" s "{" (inexact->string i 10) "}" ))
 
-  (define (invoke-dim1 s d)
-    (string-append
-     "\n\\" s "{" (number->dim d) "}"))
-  (define (pt->sp x)
-    (* 65536 x))
-  
   ;;
   ;; need to do something to make this really safe.
   ;;
            (define ez-ball ,ez-ball)
            (define header ,header) 
            (define invoke-char ,invoke-char) 
-           (define invoke-dim1 ,invoke-dim1)
+
            (define placebox ,placebox)
            (define select-font ,select-font)
            (define start-line ,start-line)
        ((eq? action-name 'lily-def) lily-def)
        ((eq? action-name 'header) header) 
        ((eq? action-name 'invoke-char) invoke-char) 
-       ((eq? action-name 'invoke-dim1) invoke-dim1)
+
        ((eq? action-name 'placebox) placebox)
        ((eq? action-name 'bezier-sandwich) bezier-sandwich)
        ((eq? action-name 'start-line) start-line)
index e002e8b23c0f3de21cb7c5c2e55e024b5d0405b3..8ba55fba03efb67666922dac1b03dbf5304b5fa3 100644 (file)
 
 (define (dashed-line thick on off dx dy)
   (string-append 
-   (ly-number->string (* dx (/ 72 72.27)))
+   (ly-number->string dx)
    " "
    (ly-number->string dy)
    " "
-   (ly-number->string (* thick (/ 72 72.27))) 
+   (ly-number->string thick)
    " [ "
    (ly-number->string on)
    " "
   (string-append 
    "(\\" (inexact->string i 8) ") " s " " ))
 
-(define (invoke-dim1 s d) 
-  (string-append
-   (ly-number->string (* d  (/ 72.27 72))) " " s ))
 
 (define (placebox x y s) 
   (string-append 
      " draw_dot")))
 
                                        ; TODO: use HEIGHT argument
+
+  
 (define (start-line height)
   (string-append
    "\n"
    (ly-number->string height)
    " start-line {
-lilypondpaperoutputscale lilypondpaperoutputscale scale
+set-ps-scale-to-lily-scale
+
 "))
 
 (define (stem breapth width depth height) 
index 30ec4a4ce0844002fc1808de573c5851659fbcdd..a76f79d5c36c2544181396c1a1cc3b891dcc68b8 100644 (file)
@@ -234,9 +234,6 @@ layer('Layer 1',1,1,0,0,(0,0,0))
 (define (invoke-char s i)
   "")
 
-(define (invoke-dim1 s d) 
-  (string-append
-   (ly-number->string (* d  (/ 72.27 72))) " " s ))
 
 (define (bezier-sandwich x y l thick)
   (apply
index 0ca8f300e9d7755c34c2f0a195d50a5a9323b611..79f6886422fe3a193d8c9c2ea8ecf95314beeaf6 100644 (file)
        (ly-gulp-file "music-drawing-routines.ps"))
    (if (defined? 'ps-testing) "/testing true def%\n" "")
    "}"
-   "\\input lilyponddefs \\outputscale=\\lilypondpaperoutputscale pt\\turnOnPostScript"))
+   "\\input lilyponddefs \\outputscale=\\lilypondpaperoutputscale "
+   ;; "pt"
+   "mm"
+
+   "\\turnOnPostScript"))
 
 ;; Note: this string must match the string in ly2dvi.py!!!
 (define (header creator generate) 
   (string-append 
    "\n\\" s "{" (inexact->string i 10) "}" ))
 
-(define (invoke-dim1 s d)
-  (string-append
-   "\n\\" s "{" (number->dim d) "}"))
-(define (pt->sp x)
-  (* 65536 x))
-
 ;;
 ;; need to do something to make this really safe.
 ;;
index 43dd994891952ac2fbd6e3cff003b82169321a98..d428202869b5eccf511cac581c4c8c2bba2ef0c9 100644 (file)
@@ -359,17 +359,13 @@ track_dependencies_p = 0
 dependency_files = []
 
 
-#
-# Try to cater for bad installations of LilyPond, that have
-# broken TeX setup.  Just hope this doesn't hurt good TeX
-# setups.  Maybe we should check if kpsewhich can find
-# feta16.{afm,mf,tex,tfm}, and only set env upon failure.
-#
+
+kpse = os.popen ('kpsexpand \$TEXMF').read()
+kpse = re.sub('[ \t\n]+$','', kpse)
+
 environment = {
-       'MFINPUTS' : datadir + '/mf' + ':',
-       'TEXINPUTS': datadir + '/tex:' + datadir + '/ps:' + '.:'
-               + os.getcwd() + ':',
-       'TFMFONTS' : datadir + '/tfm' + ':',
+       ## todo: prevent multiple addition.
+       'TEXMF' : "{%s,%s}" % (datadir, kpse) ,
        'GS_FONTPATH' : datadir + '/afm:' + datadir + '/pfa',
        'GS_LIB' : datadir + '/ps',
 }
index 0172a73d1891c6c7c096554d33b650be0c8ee83d..30e8d1b992590263b704ca5df783885ef7d23adb 100644 (file)
 %
 \def\PSsetTeXdimen#1{\expandafter\special{! /#1 (\csname #1\endcsname) set_tex_dimen}}
 \def\lilySpace{ }
+
+% for mm: 72.27/25.4
+\def\scaletounit{ 2.845276 mul }
+
+% for true printers points to postscript points: 
+%\def\scaletounit{1.00375}
 \def\turnOnPostScript{%
         % This sets CTM so that you get to the currentpoint
         % by executing a 0 0 moveto
         \def\embeddedps##1{%
                 \special{ps\string: @beginspecial @setspecial
-                        \lilypondpaperoutputscale\lilySpace 
-                        \lilypondpaperoutputscale\lilySpace
+                        \lilypondpaperoutputscale\lilySpace\scaletounit
+                        \lilypondpaperoutputscale\lilySpace\scaletounit
                         % FUCKING REDHAT XDVI -- ARG!
                         skeel ##1 @endspecial}%
         }