OK, here it is, at last: the vertical alignment fix for clefs like
"G_8".
It's a crude fix, and I have a suspicion that doing someclef->extent()
does not produce an accurate measure of the clef's extent. Also, I
haven't tested it very extensively, and "C_8" isn't very good
looking. But that's a clef nobody uses, right?
--
Arvid
diff -urN ../lilypond-0.1.78/NEWS ./NEWS
--- ../lilypond-0.1.78/NEWS Thu Jul 9 14:14:27 1998
+++ ./NEWS Thu Jul 9 17:12:09 1998
@@ -1,3 +1,6 @@
+pl 78.ag1
+ - bf: moved octave "8" under clefs a bit up
+
pl 77.hwn1
- Key transposition (MB
- move .dstreamrc to dstreamrc
diff -urN ../lilypond-0.1.78/VERSION ./VERSION
--- ../lilypond-0.1.78/VERSION Thu Jul 9 12:58:25 1998
+++ ./VERSION Thu Jul 9 17:10:15 1998
@@ -2,7 +2,7 @@
MAJOR_VERSION=0
MINOR_VERSION=1
PATCH_LEVEL=78
-MY_PATCH_LEVEL=
+MY_PATCH_LEVEL=ag1
# use the above to send patches, always empty for released version:
# please don't move these comments up; the patch should fail if
diff -urN ../lilypond-0.1.78/lily/clef-item.cc ./lily/clef-item.cc
--- ../lilypond-0.1.78/lily/clef-item.cc Wed Jul 1 12:05:40 1998
+++ ./lily/clef-item.cc Thu Jul 9 17:07:53 1998
@@ -58,11 +58,16 @@
Atom s = lookup_l ()->clef (t);
Molecule*output = new Molecule (Atom (s));
output->translate_axis (paper()->internote_f () * y_position_i_, Y_AXIS);
- if (octave_dir_)
- output->add_at_edge (Y_AXIS,
- octave_dir_,
- Molecule(octave_marker_td_p_->get_atom(paper(),
- CENTER)));
+ if (octave_dir_) {
+ Molecule octave_marker = Molecule(octave_marker_td_p_->get_atom(paper(),
+ CENTER));
+ Real offset = output->extent()[Y_AXIS][octave_dir_]
+ - octave_marker.extent()[Y_AXIS][- octave_dir_];
+ if (octave_dir_ == DOWN)
+ offset += octave_marker.extent()[Y_AXIS][UP] * 0.35 ;
+ octave_marker.translate_axis (offset, Y_AXIS);
+ output->add (octave_marker);
+ }
return output;
}