]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.1.57
authorfred <fred>
Sun, 24 Mar 2002 20:09:51 +0000 (20:09 +0000)
committerfred <fred>
Sun, 24 Mar 2002 20:09:51 +0000 (20:09 +0000)
12 files changed:
flower/include/matrix.hh
input/sleur.ly
lily/beam.cc
lily/include/bezier.hh
lily/slur.cc
lily/staff-side.cc
mutopia/J.S.Bach/preludes.tex
mutopia/los-toros-oboe-16.tex [new file with mode: 0644]
mutopia/los-toros-oboe-20.tex
mutopia/los-toros-oboe.ly
mutopia/standchen-16.tex
mutopia/standchen-20.tex

index 6b5f773b2f56e48f1d0260f4025b8825ae00fc23..321aeaadcf96978735aa3c18e0dd0dc631788b55 100644 (file)
@@ -12,6 +12,7 @@
 
 #include "matrix-storage.hh"
 #include "vector.hh"
+#include "offset.hh"
 
 /**  a Real matrix.  This is a class for a nonsquare block of #Real#s.  The
     implementation of sparse matrices is done in the appropriate #smat#
@@ -112,7 +113,6 @@ public:
   /// set this to m1*m2.
   void set_product (Matrix const &m1, Matrix const &m2);
 
-
   Vector left_multiply (Vector const &) const;
     
   Matrix operator-() const;
index 964e05a0cae6296f14580c54eb35f4f57cb5a873..4ef5e88d9107a501af2908cfec2a28c4c4e39b2b 100644 (file)
@@ -58,12 +58,12 @@ blend = \melodic{
        \stemdown; 
 %%         \[4/5c8( c ''c c c\]1/1 c c c )c |
        \[4/5c8( c ''f c c\]1/1 c c c )c |
+
        \[4/5c8( c \stemup ''f \stemdown c c\]1/1 c c c )c |
        \stemup; 
        \octave c''; 
        \[4/5c8( c f'' c c\]1/1 c c c )c |
        \[4/5c8( c \stemdown f'' \stemup c c\]1/1 c c c )c |
-%          \octave c''';
        \stemboth;
        c4( 'c16 'e 'g 'b d f a )'c16 c4 |
        c4( 'c16 'e 'g 'b d f f )'c16 c4 |
index a463ff233f0fbeaa4df7d94764ef592e53c6373e..6ad3fe78c0b2cc8548f79b3b604701f6e994c5af 100644 (file)
@@ -426,34 +426,36 @@ Beam::set_stemlens ()
    be more generous regarding beam position between stafflines
    */
   Real q = (yspan_f / interline_f - yspan_i) * interline_f;
-  if (q < interline_f / 3 - beam_thickness / 2)
+  if ((quantisation_ < NORMAL) && (q < interline_f / 3 - beam_thickness / 2))
     left_pos = (Pos) (left_pos | INTER);
 
+
   if (multiple_i_ > 1)
     left_pos = (Pos) (dir_ > 0 ? HANG : SIT);
 
-  // ugh, rounding problems!
+  // ugh, rounding problems! (enge floots)
   const Real EPSILON = interline_f / 10;
   do
     { 
       left_y_ += dy * dir_;
       quantise_left_y (left_pos, dy);
       dy = 0;
-      for (int j=0; j < stems_.size (); j++)
+      for (int i=0; i < stems_.size (); i++)
        {
-         Stem *s = stems_[j];
+         Stem *s = stems_[i];
          if (s->transparent_b_)
            continue;
 
          Real x = s->hpos_f () - x0;
          s->set_stemend (left_y_ + slope_f_ * x);
          Real y = s->stem_length_f ();
-         int mult = max (stems_[j]->beams_left_i_, stems_[j]->beams_right_i_);
-         if (mult > 1)
+         // duh: 
+         int mult_i = stems_[i]->beams_left_i_ >? stems_[i]->beams_right_i_;
+         if (mult_i > 1)
              // dim(y) = internote
-             y -= (Real)(mult - 1) * interbeam_f / internote_f;
-         if (y < MINIMUM_STEMLEN[mult])
-           dy = dy >? (MINIMUM_STEMLEN[mult] - y);
+             y -= (Real)(mult_i - 1) * interbeam_f / internote_f;
+         if (y < MINIMUM_STEMLEN[mult_i])
+           dy = dy >? (MINIMUM_STEMLEN[mult_i] - y);
        }
     } while (abs (dy) > EPSILON);
 }
index 5f5c59d7b43864ff3b18faa5386babbc1c19ff02..f5c871ed059b006f741b3763878d6a69024a8574 100644 (file)
@@ -7,8 +7,12 @@
 #ifndef BEZIER_HH
 #define BEZIER_HH
 
+#ifndef STANDALONE
 #include "lily-proto.hh"
+#endif
+
 #include "real.hh"
+#include "curve.hh"
 
 /**
   Simple bezier curve
@@ -17,20 +21,21 @@ class Bezier
 {
 public:
   Bezier (int steps_i);
-  virtual ~Bezier ();
 
   /**
   Calculate bezier curve into Offset (x,y) array.
   */
-  void calc (Offset control[4]);
+  void calc ();
+
+  void set (Array<Offset> points);
 
   /**
   Return y that goes with x by interpolation.
   */
   Real y (Real x);
 
-  int steps_i_;
-  Offset* curve_;
+  Curve curve_;
+  Curve control_;
 };
 
 /**
@@ -44,9 +49,26 @@ public:
   /**
    Calculate bezier curve for bow from bow parameters.
    */
-  void calc (Real dx, Real dy, Real h, Real d);
+  void blow_fit ();
+  Real calc_f (Real height);
+  void calc ();
+  void calc_controls ();
+  void calc_default (Real h);
+  void calc_return (Real begin_alpha, Real end_alpha);
+  bool check_fit_bo ();
+  Real check_fit_f ();
+  void set (Array<Offset> points, int dir);
+  void transform ();
+  void transform_controls_back ();
+
   Paper_def* paper_l_;
+  Curve encompass_;
+  int dir_;
+  Real alpha_;
+  Offset origin_;
+  Curve return_;
 };
 
 
 #endif // BEZIER_HH
+
index 7ad52ce6d2e1e43fe834f8f2ac2d653c89984e62..fcc57eab1d7050b16affe003f82451fd585ff07a 100644 (file)
@@ -23,6 +23,9 @@
 #include "debug.hh"
 #include "boxes.hh"
 #include "bezier.hh"
+#include "main.hh"
+
+IMPLEMENT_IS_TYPE_B1(Slur,Spanner);
 
 void
 Slur::add (Note_column*n)
@@ -111,7 +114,7 @@ Slur::do_post_processing ()
  
   do 
     {
-      if  (extrema[d] != spanned_drul_[d]) 
+      if (extrema[d] != spanned_drul_[d]) 
        {
          dx_f_drul_[d] = -d 
            *(spanned_drul_[d]->width ().length () -0.5*nw_f);
@@ -120,7 +123,11 @@ Slur::do_post_processing ()
         {
          dy_f_drul_[d] = (int)rint (extrema[d]->stem_l_->height ()[dir_]);
          /* normal slur from notehead centre to notehead centre, minus gap */
-         dx_f_drul_[d] += -d * gap_f;
+         // ugh: diff between old and new slurs
+         if (!experimental_features_global_b)
+           dx_f_drul_[d] += -d * gap_f;
+         else
+           dx_f_drul_[d] += 0.5 * nw_f - d * gap_f;
        }
       else 
         {
@@ -131,118 +138,164 @@ Slur::do_post_processing ()
   while (flip(&d) != LEFT);
 }
 
-static Real
-pos_correct (Real x, Real dx, Real dy)
+Real
+Slur::height_f () const
 {
+  Bezier_bow bow (paper ());
+  Array<Offset> notes = get_notes ();
+  bow.set (notes, dir_);
+
+  Real height = 0;
+  Real dy1 = bow.calc_f (height);
+  if (!dy1)
+    return height;
+
+  height = dy1;
+  bow.set (notes, dir_);
+  Real dy2 = bow.calc_f (height);
+  if (!dy2)
+    return height;
+
+  if (abs (dy2 - dy1) < paper ()->rule_thickness ())
+    return height;
+  
   /*
-    guess how much we can safely increase 'h'
-    parameter of bow without taking too large
-    or too many steps.
-    empiric computer science
+    Assume 
+      dy = B (h) 
+    with 
+      B (h) = a * h + b;
+
+    Then we get for height = h{dy=0}
    */
-//  return (1.0 + 2.0 * x / dx) / 4.0;
-  return 1.0;
+  Real a = (dy2 - dy1) / dy1;
+  Real b = dy1;
+  height = -b / a;
+    
+  if (check_debug && !monitor->silent_b ("Slur")) 
+    { 
+      cout << "************" << endl;
+      cout << "dy1: " << dy1 << endl;
+      cout << "dy2: " << dy2 << endl;
+      cout << "a: " << a << endl;
+      cout << "b: " << b << endl;
+      cout << "h: " << height << endl;
+    }
+
+  return height;
 }
 
-Real
-Slur::height_f () const
+Molecule*
+Slur::brew_molecule_p () const
 {
-  return 0.0;
+  if (!experimental_features_global_b)
+    return Bow::brew_molecule_p ();
+
+  Molecule* mol_p = new Molecule;
   
+  Real dy_f = dy_f_drul_[RIGHT] - dy_f_drul_[LEFT];
+  
+  Real dx_f = width ().length ();
+  dx_f += (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]);
+  
+  Atom a = paper ()->lookup_l ()->control_slur (get_controls (), dx_f, dy_f);
+
+  Real interline_f = paper ()->interline_f ();
+  Real gap_f = interline_f / 2; // 5;
+  Real nw_f = paper ()->note_width ();
+  a.translate (Offset (dx_f + 0.5 * nw_f + gap_f, dy_f + dy_f_drul_[LEFT]));
+  mol_p->add (a);
+  return mol_p;
+}
+
+Array<Offset>
+Slur::get_notes () const
+{
   Real interline = paper ()->interline_f ();
   Real notewidth = paper ()->note_width ();
   Real internote = interline / 2;
 
-  /*
-   having the correct (i.e. exactly the same as the ps stuff)
-   x,y coordinates is essential.
-   getting them is quite a mess, currently.
-   */
-
-  Stem* left_stem =encompass_arr_[0]->stem_l_; 
+  Stem* left_stem = encompass_arr_[0]->stem_l_;
   Real left_x = left_stem->hpos_f ();
   // ugh, do bow corrections (see brew_mol)
   left_x += dx_f_drul_[LEFT] + 0.5 * notewidth;
 
-//  Real left_y = left_stem->dir_ == dir_ ? left_stem->stem_end_f () + dir_
-//    : left_stem->stem_begin_f () + 0.5 * dir_;
-//  left_y *= internote;
-  // ugh, do bow corrections (see brew_mol)
-//  left_y = dy_f_drul_[LEFT];
-
   // ugh, do bow corrections (see brew_mol)
   Real left_y = dy_f_drul_[LEFT];
-
   // ugh, where does this asymmetry come from?
   if (dir_ == DOWN)
     left_y -= dir_ * internote;
 
-  Real dx = width ().length ();
-  Real dy = (dy_f_drul_[RIGHT] - dy_f_drul_[LEFT]);
-  Real centre_x = dx / 2;
-
-
-  // ugh, need staffheight for bow damping
-  Bezier_bow b (paper ());
-
-  if (check_debug && !monitor->silent_b ("Slur"))
+  /*
+    urg, corrections for broken slurs: extra begin or end position 
+   */
+  int first = 0;
+  int n = encompass_arr_.size ();
+  if (encompass_arr_[0] != spanned_drul_[LEFT])
     {
-      cout << "*****************" << endl;
-      cout << "dir: " << (int)dir_ << endl;
-      cout << "dx: " << dx << endl;
-      cout << "dy: " << dy << endl;
-      cout << "centre: " << centre_x << endl;
-      for (int i = 0; i < encompass_arr_.size (); i++)
-       cout << "i: " << i << " x: " 
-           << encompass_arr_[i]->stem_l_->hpos_f () - left_x << endl;
+      n += 1;
+      first = 1;
+      left_x = spanned_drul_[LEFT]->width ().length ();
+      left_y = 0;
     }
-  Real height = 0;
-  Real dh = 0;
-  do
-    {
-      height += dh;
-      dh = 0;
-      b.calc (dx, dy, height, dir_);
-      
-      if (check_debug && !monitor->silent_b ("Slur"))
-        cout << "----" << endl;
-      for (int i = 1; i < encompass_arr_.size () - 1; i++) 
-       {
-         Stem* stem = encompass_arr_[i]->stem_l_;
-         /* 
-           set x to middle of notehead or on exact x position of stem,
-           according to slur direction
-          */
-         Real x = stem->hpos_f () - left_x + notewidth / 2;
-         if (stem->dir_ != dir_)
-           x += notewidth / 2;
-         else if (stem->dir_ == UP)
-           x += notewidth;
-         Real y = stem->dir_ == dir_ ? stem->stem_end_f ()
-           : stem->stem_begin_f () + 1.5 * dir_;
-
-         /*
-           leave a gap: slur mustn't touch head/stem
-          */
-         y += 2.5 * dir_;
-         y *= internote;
-         y -= left_y;
-
-         Real shift = dir_ * (y - b.y (x));
+  if (encompass_arr_.top () != spanned_drul_[RIGHT])
+      n += 1;
 
-         if (check_debug && !monitor->silent_b ("Slur"))
-           {
-             cout << "x: " << x << " (" << abs (centre_x - x) << ")" << endl;
-             cout << "y: " << y << ", curve: " << b.y (x) << endl;
-             cout << "shift: " << shift << endl;
-           }
+  Array<Offset> notes;
+  notes.set_size (n);
 
-         if (shift > 0.1 * internote)
-           dh = dh >? shift * pos_correct (abs (centre_x - x), dx, dy);
-       }
-    } while (dh);
+  Real dx = width ().length ();
+  dx += (dx_f_drul_[RIGHT] - dx_f_drul_[LEFT]);
+  dx = dx <? 1000;
+  dx = dx >? 2 * interline;
+    
+  Real dy = (dy_f_drul_[RIGHT] - dy_f_drul_[LEFT]);
+  if (abs (dy) > 1000)
+    dy = sign (dy) * 1000;
+
+  notes[0].x () = 0;
+  notes[0].y () = 0;
+  notes[n - 1].x () = dx;
+  notes[n - 1].y () = dy;
+  for (int i = 1; i < n - 1; i++)
+    {
+      Stem* stem = encompass_arr_[i - first]->stem_l_;
+      /* 
+       set x to middle of notehead or on exact x position of stem,
+       according to slur direction
+          */
+      Real x = stem->hpos_f () - left_x + notewidth / 2;
+      if (stem->dir_ != dir_)
+       x += notewidth / 2;
+      else if (stem->dir_ == UP)
+       x += notewidth;
+      Real y = stem->dir_ == dir_ ? stem->stem_end_f ()
+       : stem->stem_begin_f () + 2.5 * dir_;
+
+      /*
+       leave a gap: slur mustn't touch head/stem
+       */
+      y += 2.5 * dir_;
+      y *= internote;
+      y -= left_y;
+
+      notes[i].x () = x;
+      notes[i].y () = y;
+    }
+  return notes;
+}
 
-  return height;
+Array<Offset>
+Slur::get_controls () const
+{
+  Bezier_bow b (paper ());
+  b.set (get_notes (), dir_);
+  b.calc ();
+  Array<Offset> controls;
+  controls.set_size (8);
+  for (int i = 0; i < 4; i++)
+    controls[i] = b.control_[i];
+  for (int i = 0; i < 4; i++)
+    controls[i + 4] = b.return_[i];
+  return controls;
 }
 
-IMPLEMENT_IS_TYPE_B1(Slur,Spanner);
index 0e8b9c7cdeaead7b237cba0d7a5200e1b646a6e2..99476a6206a1a326108dc71585c017a4b691ab7e 100644 (file)
@@ -69,7 +69,7 @@ Staff_side::get_position_f () const
   Interval v = support_height();
 
   // ugh, dim[y] = PT over here
-  y = v[dir_] + 1 * dir_ * inter_f;
+  y = v[dir_] + 2 * dir_ * inter_f;
 
   int y_i = (int)rint (y / inter_f);
   // ugh: 5 -> staff_lines
index 6bed0be4d8809e5c2e36eef0a5cfd39ec3d2a65d..b1680f9d3ace17dfefb6a657b5e0d6285ee8cead 100644 (file)
@@ -1,18 +1,28 @@
 \documentclass{article}         %UGH
 \usepackage{a4}
 
+% UGH UGH
 \advance\oddsidemargin-30mm
 \evensidemargin\oddsidemargin
 % ugh, centre
 \advance\textwidth60mm
-\hsize210mm
-\vsize269mm
-\advance\topmargin-25mm
-\advance\textheight50mm
-\pagestyle{empty}
+\advance\topmargin-20mm
+\addtolength{\textheight}{40mm}
+\footskip5mm
+
+\usepackage{fancyheadings}
+\lhead{}
+\rhead{}
+\chead{}
+\lfoot{}
+\cfoot{\ifnum\thepage=1{\hfill\LilyIdString}\fi}
+\rfoot{\ifnum\thepage>1{\hfill\thepage\hfill}\fi}
+
+\headrulewidth0mm
+\pagestyle{fancy}
+\thispagestyle{fancy}
 
 \input titledefs
-        
 \input lilyponddefs
 \def\interscoreline{\vskip2mm}
 %ugh
diff --git a/mutopia/los-toros-oboe-16.tex b/mutopia/los-toros-oboe-16.tex
new file mode 100644 (file)
index 0000000..98973e2
--- /dev/null
@@ -0,0 +1,38 @@
+\documentclass{article}         %UGH
+
+\usepackage{a4}
+
+% UGH UGH
+% ugh, centre
+\advance\oddsidemargin-30mm
+\evensidemargin\oddsidemargin
+\advance\textwidth60mm
+\advance\topmargin-20mm
+\addtolength{\textheight}{40mm}
+\footskip5mm
+
+\usepackage{fancyheadings}
+\lhead{}
+\rhead{}
+\chead{}
+\lfoot{}
+\cfoot{\ifnum\thepage=1{\hfill\LilyIdString}\fi}
+\rfoot{\ifnum\thepage>1{\hfill\thepage\hfill}\fi}
+
+\headrulewidth0mm
+\pagestyle{fancy}
+\thispagestyle{fancy}
+
+
+\begin{document}
+\input lilyponddefs
+\input titledefs
+\def\interscoreline{\vskip3mm}
+\title{La Feria\normalsize\\[2ex]Los Toros}
+\composer{Paul Lac\^ome d'Estalenx (1838-1920)}
+%\instrument{} % heu
+%#%\tempo{M\"a\ss ig}
+\makelilytitle
+\input{los-toros-oboe-1.tex}
+\end{document}
+
index 910651a6f508020f4493d65ce16d292d06ba707e..555a046d0d7ec264cb848766dd205610e0c4ea34 100644 (file)
@@ -1,15 +1,29 @@
 \documentclass{article}         %UGH
+
 \usepackage{a4}
 
-%
 % UGH UGH
-\advance\oddsidemargin-30mm
+\advance\oddsidemargin-25mm
 \evensidemargin\oddsidemargin
 % ugh, centre
-\advance\textwidth60mm
+\advance\textwidth40mm
 \advance\topmargin-20mm
 \addtolength{\textheight}{40mm}
-\pagestyle{empty}
+\footskip5mm
+
+\usepackage{fancyheadings}
+\lhead{}
+\rhead{}
+\chead{}
+\lfoot{}
+\cfoot{\ifnum\thepage=1{\hfill\LilyIdString}\fi}
+\rfoot{\ifnum\thepage>1{\hfill\thepage\hfill}\fi}
+
+\headrulewidth0mm
+\pagestyle{fancy}
+\thispagestyle{fancy}
+
+
 \begin{document}
 \input lilyponddefs
 \input titledefs
@@ -20,5 +34,6 @@
 %#%\tempo{M\"a\ss ig}
 \makelilytitle
 \input{los-toros-oboe.tex}
-%\input lelie.tex
+% \input{los-toros-oboe-1.tex}
 \end{document}
+
index faafa951fbc23405360bf4ef3fa74ffffbb779ff..822a0b27d9d8a351e6a21f241a038900e3a64611 100644 (file)
@@ -1,12 +1,16 @@
 \header{
 filename =      "los-toros-oboe.ly";
-title =                 "Los Toros";
+title =                 "La Feria\normalsize\\[2ex]Los Toros";
 opus =          "";
-composer =      "Paul Lac\^ome d'Estalenx (1838-1920)";
+composer =      "Paul Lac\\^ome d'Estalenx (1838-1920)";
 enteredby =     "jcn";
 copyright =     "public domain";
 } 
 
+%{
+Silly latex file dropped; use ly2dvi
+%}
+
 \include "paper20.ly"
 
 hoboonestart = \melodic{
@@ -177,9 +181,10 @@ hoboonelast = \melodic{
        [bes16-. bes-. bes-. bes-.] [bes8-. ces'->] |
        [bes'16-.\ff bes'-. bes'-. bes'-.] [bes'8-. ces''16->] r16^"court"-\fermata |
        % ugh: eight measures rest (ugh: r1 -> four beats...)
+       % eiht measures rest..
        \textstyle "bold";
 %      r2^"Un peu plus lent et \\'el\\'egant"
-       r2
+       r2^"\\fetanummer8"
        r4 r8\p bes |
        g2->^"Un peu plus lent et \\'el\\'egant" ~ |
        \textstyle "italic";
@@ -282,58 +287,60 @@ $staff_hoboone = \type Staff = hoboonestaff <
 
 a4 = \paper{
        \paper_twenty
-       linewidth= 165.\mm;
+       linewidth= 185.\mm;
        gourlay_maxmeasures = 10.0;
-       Score = \translator {
-               \type Score_engraver;
-
-               \consists "Timing_engraver";
-               \consists "Bar_column_engraver";
-               \consists "Bar_number_engraver";
-
-               \consists "Span_score_bar_engraver";
-               \consists "Score_priority_engraver";
-               \consists "Priority_horizontal_align_engraver";
-               \consists "Vertical_align_engraver";
-
+       Staff = \translator {
+               \type "Engraver_group_engraver";
+               defaultclef = violin;
 
-               \accepts "Staff_group";
-               \accepts "Staff";
-               \accepts "Rhythmic_staff";      
-               \accepts "Lyrics";
-               \accepts "Grandstaff";
+               \consists "Bar_engraver";
+               \consists "Clef_engraver";
+               \consists "Key_engraver";
+               \consists "Meter_engraver";
+               \consists "Local_key_engraver";
+               \consists "Staff_sym_engraver";
+               \consists "Collision_engraver";
+               \consists "Rest_collision_engraver";
+% not yet: multibar rest
+%              \consists "Bar_column_engraver";
+%              \consists "Bar_number_engraver";
+               \consists "Separating_line_group_engraver";
+               \consists "Line_group_engraver";
+                 
+               \accepts "Voice";
        }
 }
 
 a4sixteen = \paper{
-       linewidth= 165.\mm;
-       Score = \translator {
-               \type Score_engraver;
-
-               \consists "Timing_engraver";
-               \consists "Bar_column_engraver";
-               \consists "Bar_number_engraver";
-
-               \consists "Span_score_bar_engraver";
-               \consists "Score_priority_engraver";
-               \consists "Priority_horizontal_align_engraver";
-               \consists "Vertical_align_engraver";
-
+       linewidth= 193.\mm;
+       Staff = \translator {
+               \type "Engraver_group_engraver";
+               defaultclef = violin;
 
-               \accepts "Staff_group";
-               \accepts "Staff";
-               \accepts "Rhythmic_staff";      
-               \accepts "Lyrics";
-               \accepts "Grandstaff";
+               \consists "Bar_engraver";
+               \consists "Clef_engraver";
+               \consists "Key_engraver";
+               \consists "Meter_engraver";
+               \consists "Local_key_engraver";
+               \consists "Staff_sym_engraver";
+               \consists "Collision_engraver";
+               \consists "Rest_collision_engraver";
+% not yet: multibar rest
+%              \consists "Bar_column_engraver";
+%              \consists "Bar_number_engraver";
+               \consists "Separating_line_group_engraver";
+               \consists "Line_group_engraver";
+                 
+               \accepts "Voice";
        }
 }
 
 \score{
        \$staff_hoboone
        \paper{ \a4 }
-%      \paper{ \a4sixteen }
        \midi{
                \tempo 4 = 80;
        }
+       \paper{ \a4sixteen }
 }
 
index e22d627ae92b50bedc31ba38dbab0b1e2ddde8aa..21ef2cf7585beb27a69559d3368da8d7c2076393 100644 (file)
@@ -1,8 +1,22 @@
 \documentclass{article}         %UGH
 \usepackage{a4}
+
 \advance\oddsidemargin-15mm
 \evensidemargin\oddsidemargin
 \advance\textwidth30mm
+\footskip5mm
+
+\usepackage{fancyheadings}
+\lhead{}
+\rhead{}
+\chead{}
+\lfoot{}
+\cfoot{\ifnum\thepage=1{\hfill\LilyIdString}\fi}
+\rfoot{\ifnum\thepage>1{\hfill\thepage\hfill}\fi}
+
+\headrulewidth0mm
+\pagestyle{fancy}
+\thispagestyle{fancy}
 
 \input titledefs
 %\pagestyle{empty}
@@ -14,5 +28,5 @@
 %#%\tempo{M\"a\ss ig}
 \makelilytitle
 \input{standchen-16.out}
-%\input lelie.tex
 \end{document}
+
index ed2f7e9bc5c5c2ca7eef5068c7529397062b7cec..4ee0201a2713e03aeedc8e1c7f028b27be46a5ff 100644 (file)
@@ -1,14 +1,28 @@
 \documentclass{article}         %UGH
 \usepackage{a4}
 
-%
 % UGH UGH
 \advance\oddsidemargin-30mm
 \evensidemargin\oddsidemargin
 % ugh, centre
 \advance\textwidth60mm
-\addtolength{\textheight}{20mm}
-\pagestyle{empty}
+\advance\topmargin-20mm
+\addtolength{\textheight}{40mm}
+\footskip5mm
+
+\usepackage{fancyheadings}
+\lhead{}
+\rhead{}
+\chead{}
+\lfoot{}
+\cfoot{\ifnum\thepage=1{\hfill\LilyIdString}\fi}
+\rfoot{\ifnum\thepage>1{\hfill\thepage\hfill}\fi}
+
+\headrulewidth0mm
+\pagestyle{fancy}
+\thispagestyle{fancy}
+
+
 \begin{document}
 \input lilyponddefs
 \input titledefs
@@ -19,5 +33,5 @@
 %#%\tempo{M\"a\ss ig}
 \makelilytitle
 \input{standchen-20.out}
-%\input lelie.tex
 \end{document}
+