From dec789bdd99e6a8c5d09c9fdc13196b260946f87 Mon Sep 17 00:00:00 2001 From: fred Date: Wed, 27 Mar 2002 02:05:22 +0000 Subject: [PATCH] lilypond-1.5.31 --- ChangeLog | 55 +++++ Documentation/user/refman.itely | 22 +- VERSION | 2 +- aclocal.m4 | 40 +--- configure | 288 +++++-------------------- input/regression/font-magnification.ly | 22 ++ lily/font-interface.cc | 93 ++++---- lily/grob.cc | 26 ++- lily/include/molecule.hh | 1 - lily/line-of-score.cc | 1 - lily/note-head.cc | 49 ++++- lily/text-item.cc | 37 +--- lily/third-try.cc | 27 +-- lily/tuplet-bracket.cc | 9 +- scm/grob-description.scm | 9 +- scm/grob-property-description.scm | 6 +- scm/interface-description.scm | 3 + 17 files changed, 287 insertions(+), 403 deletions(-) create mode 100644 input/regression/font-magnification.ly diff --git a/ChangeLog b/ChangeLog index 90166e4d2f..611b422778 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,58 @@ + +2002-02-18 Han-Wen + + * VERSION: 1.5.31 released + + * lily/new-spacing-spanner.cc: remove file. + + * lily/third-try.cc (do_measure): only take spacings into account + if they pertain to the column pair under consideration. This fixes + spacing bug when mixing eighths triplets and normal eighths. + + * lily/note-head.cc (brew_molecule): revert ledger change: ledger + lines don't take up space anymore. Document why in note-head.cc + comment. + +2002-02-17 Han-Wen + + * lily/font-interface.cc (get_font): reinstate + #'font-magnification. See input/regression/font-magnification.ly + (get_font): Change the definition of #'font-name grob property. + + * lily/grob.cc (get_uncached_molecule): output origin for grobs + that have a #'cause field. + +2002-02-12 Han-Wen Nienhuys + + * Documentation/topdocs/INSTALL.texi: remove type3 stuff. + + * mf/GNUmakefile: remove metapost stuff + + * stepmake/aclocal.m4: remove metapost detection stuff. + +2002-02-11 Jan Nieuwenhuizen + + * mf/GNUmakefile (FET_FILES): + (FONT_FILES): Include parmesan. + + * stepmake/bin/packagepython.py (make_assign_re): Bugfix. Use re + iso regex, regsub + + * buildscripts/clean-fonts.sh (FILES): Clean parmesan too. + + * Documentation/user/refman.itely (Paper size): Quote braces. + +2002-02-07 Han-Wen Nienhuys + + * stepmake/aclocal.m4: fixed bison version check to be more + robust. + + * lily/stem.cc (position_noteheads): fix for cluster chords. + + * mf/*.mf: many blotting/pixel rounding fixes by Rune Zedeler + + * python 2.2 support. + 2002-02-04 Han-Wen * VERSION: 1.5.30 released diff --git a/Documentation/user/refman.itely b/Documentation/user/refman.itely index f34b6ba4eb..90c34f36a3 100644 --- a/Documentation/user/refman.itely +++ b/Documentation/user/refman.itely @@ -3139,8 +3139,10 @@ Type1 usually come as ``one design fits all sizes''. @code{cmti}, etc. Setting this overrides font-family, font-shape and font-series. + @end table + The font is selected by taking the first font that satisfies all qualifiers specified. You can override any of these fields through @code{\override} and @code{\revert}. The special value @code{*} matches @@ -3163,14 +3165,20 @@ and @code{dynamic}. The style sheets and tables for selecting fonts are located in @file{scm/font.scm}. Refer to this file for more information. + +Setting @code{font-name} overrides all other qualifiers. The value for +this property should be a string, the file name of the font. You may use +this to use special fonts, which are not a part of the style sheet, or +which have special encodings. + +The size of the font may be set with the grob property +@code{font-magnification}. It is the size of font, relative to its +standard size. For example, @code{1.0} is normal size. + @refbugs Relative size is not linked to any real size. -There is no mechanism to select magnification of particular fonts, -meaning that you don't have access to continuously scaled fonts. You -can scale the entire output, of course, see @ref{Output scaling}. - There is no style sheet provided for other fonts besides the @TeX{} family. @@ -3541,19 +3549,19 @@ details, see the file @file{scm/font.scm}. @cindex @code{papersize} To change the paper size, you must first set the -@code{papersize} variable at top level. Set it to +@code{papersize} paper variable variable. Set it to the strings @code{a4}, @code{letter}, or @code{legal}. After this specification, you must set the font as described above. If you want the default font, then use the 20 point font. @example - papersize = "a4" + \paper@{ papersize = "a4" @} \include "paper16.ly" @end example The file @code{paper16.ly} will now include a file named @file{a4.ly}, which will set the paper variables @code{hsize} and @code{vsize} (used by -@code{ly2dvi}) +Lilypond and @code{ly2dvi}) @c . {Line break} @node Line break diff --git a/VERSION b/VERSION index 4b265d335f..72be86c85d 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=5 -PATCH_LEVEL=30 +PATCH_LEVEL=31 MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a diff --git a/aclocal.m4 b/aclocal.m4 index 082312d741..d00052343c 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -482,10 +482,12 @@ AC_DEFUN(AC_STEPMAKE_LEXYACC, [ AC_CHECK_SEARCH_RESULT($BISON, bison, Please install Bison, 1.25 or newer) AC_CHECK_SEARCH_RESULT($FLEX, flex, Please install Flex, 2.5 or newer) + +## Urg. We should fix this configure test. -- so clumsy if test $BISON != "error"; then - bison_version=`$BISON --version | sed 's/^.*version 1.//g'` - if test `echo $bison_version | sed 's/\..*$//g'` -lt 25; then - AC_STEPMAKE_WARN(Your bison is a bit old (1.$bison_version). You might have to install 1.25) + bison_version=`$BISON --version | head -1 | sed 's/^.* 1\.//g'` + if test $bison_version -lt 25; then + AC_STEPMAKE_WARN(The bison installed might be too old (1.$bison_version). You might have to install 1.25) fi fi @@ -693,25 +695,12 @@ AC_DEFUN(AC_STEPMAKE_TEXMF, [ METAFONT=$MFONT fi - AC_CHECK_PROGS(METAPOST, mp, no) - if test "x$METAPOST" = "xno"; then - AC_CHECK_PROGS(MPOST, mpost, -echo no mp or mpost) - - METAPOST=$MPOST - fi - AC_CHECK_PROGS(INIMETAFONT, inimf, no) if test "x$INIMETAFONT" = "xno"; then AC_CHECK_PROGS(INIMFONT, inimfont, -echo no inimf or inimfont) INIMETAFONT=$INIMFONT fi - AC_CHECK_PROGS(INIMETAPOST, inimp, no) - if test "x$INIMETAPOST" = "xno"; then - AC_CHECK_PROGS(INIMPOST, inimpost, -echo no inimp or inimpost) - INIMETAPOST=$INIMPOST - fi - AC_MSG_CHECKING(for working metafont mode) modelist='ljfour lj4 lj3 lj2 ljet laserjet' for MFMODE in $modelist; do @@ -722,30 +711,11 @@ AC_DEFUN(AC_STEPMAKE_TEXMF, [ done AC_MSG_RESULT($MFMODE) - AC_MSG_CHECKING(for mfplain.mp) - # - # For now let people define these in their environments - # - : ${MFPLAIN_MP=`kpsewhich --format mp mfplain.mp`} - AC_MSG_RESULT($MFPLAIN_MP) - - AC_MSG_CHECKING(for inimetapost flags) - if test ${INIMETAPOST} = "inimp" ; then - : ${INIMETAPOST_FLAGS=''} - else - : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'} - fi - AC_MSG_RESULT($INIMETAPOST_FLAGS) - rm -f mfput.* AC_SUBST(METAFONT) - AC_SUBST(METAPOST) AC_SUBST(MFMODE) AC_SUBST(INIMETAFONT) - AC_SUBST(INIMETAPOST) - AC_SUBST(MFPLAIN_MP) - AC_SUBST(INIMETAPOST_FLAGS) ]) AC_DEFUN(AC_STEPMAKE_WARN, [ diff --git a/configure b/configure index 421625432f..3936dbd1d3 100755 --- a/configure +++ b/configure @@ -2177,11 +2177,13 @@ test -n "$FLEX" || FLEX="error" fi + +## Urg. We should fix this configure test. -- so clumsy if test $BISON != "error"; then - bison_version=`$BISON --version | sed 's/^.*version 1.//g'` - if test `echo $bison_version | sed 's/\..*$//g'` -lt 25; then + bison_version=`$BISON --version | head -1 | sed 's/^.* 1\.//g'` + if test $bison_version -lt 25; then - echo "configure: warning: Your bison is a bit old (1.$bison_version). You might have to install 1.25" 1>&2 + echo "configure: warning: The bison installed might be too old (1.$bison_version). You might have to install 1.25" 1>&2 warn_b=yes fi @@ -2196,7 +2198,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2200: checking for $ac_word" >&5 +echo "configure:2202: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2229,7 +2231,7 @@ test -n "$AR" || AR="error" # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2233: checking for $ac_word" >&5 +echo "configure:2235: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2284,7 +2286,7 @@ fi echo $ac_n "checking language""... $ac_c" 1>&6 -echo "configure:2288: checking language" >&5 +echo "configure:2290: checking language" >&5 case "$language" in En* | en* | Am* | am* | US* | us*) lang=English;; @@ -2320,7 +2322,7 @@ EOF echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6 -echo "configure:2324: checking for gettext in -lintl" >&5 +echo "configure:2326: checking for gettext in -lintl" >&5 ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2328,7 +2330,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2372,12 +2374,12 @@ fi for ac_func in gettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2376: checking for $ac_func" >&5 +echo "configure:2378: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2435,7 +2437,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2439: checking for $ac_word" >&5 +echo "configure:2441: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2466,7 +2468,7 @@ done test -n "$MSGFMT" || MSGFMT="\$(SHELL) \$(step-bindir)/fake-msgfmt.sh " echo $ac_n "checking whether msgfmt accepts -o""... $ac_c" 1>&6 -echo "configure:2470: checking whether msgfmt accepts -o" >&5 +echo "configure:2472: checking whether msgfmt accepts -o" >&5 msgfmt_output="`msgfmt -o bla 2>&1 | grep usage`" if test "$msgfmt_output" = ""; then echo "$ac_t""yes" 1>&6 @@ -2494,7 +2496,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2498: checking for $ac_word" >&5 +echo "configure:2500: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_METAFONT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2530,7 +2532,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2534: checking for $ac_word" >&5 +echo "configure:2536: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MFONT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2563,87 +2565,12 @@ test -n "$MFONT" || MFONT="-echo no mf or mfont" METAFONT=$MFONT fi - for ac_prog in mp -do -# Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2572: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_METAPOST'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$METAPOST"; then - ac_cv_prog_METAPOST="$METAPOST" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_METAPOST="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -METAPOST="$ac_cv_prog_METAPOST" -if test -n "$METAPOST"; then - echo "$ac_t""$METAPOST" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$METAPOST" && break -done -test -n "$METAPOST" || METAPOST="no" - - if test "x$METAPOST" = "xno"; then - for ac_prog in mpost -do -# Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2608: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_MPOST'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$MPOST"; then - ac_cv_prog_MPOST="$MPOST" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_MPOST="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -MPOST="$ac_cv_prog_MPOST" -if test -n "$MPOST"; then - echo "$ac_t""$MPOST" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$MPOST" && break -done -test -n "$MPOST" || MPOST="-echo no mp or mpost" - - - METAPOST=$MPOST - fi - for ac_prog in inimf do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2647: checking for $ac_word" >&5 +echo "configure:2574: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMETAFONT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2679,7 +2606,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2683: checking for $ac_word" >&5 +echo "configure:2610: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMFONT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2712,82 +2639,8 @@ test -n "$INIMFONT" || INIMFONT="-echo no inimf or inimfont" INIMETAFONT=$INIMFONT fi - for ac_prog in inimp -do -# Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2721: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_INIMETAPOST'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$INIMETAPOST"; then - ac_cv_prog_INIMETAPOST="$INIMETAPOST" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_INIMETAPOST="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -INIMETAPOST="$ac_cv_prog_INIMETAPOST" -if test -n "$INIMETAPOST"; then - echo "$ac_t""$INIMETAPOST" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$INIMETAPOST" && break -done -test -n "$INIMETAPOST" || INIMETAPOST="no" - - if test "x$INIMETAPOST" = "xno"; then - for ac_prog in inimpost -do -# Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2757: checking for $ac_word" >&5 -if eval "test \"`echo '$''{'ac_cv_prog_INIMPOST'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - if test -n "$INIMPOST"; then - ac_cv_prog_INIMPOST="$INIMPOST" # Let the user override the test. -else - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_prog_INIMPOST="$ac_prog" - break - fi - done - IFS="$ac_save_ifs" -fi -fi -INIMPOST="$ac_cv_prog_INIMPOST" -if test -n "$INIMPOST"; then - echo "$ac_t""$INIMPOST" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -test -n "$INIMPOST" && break -done -test -n "$INIMPOST" || INIMPOST="-echo no inimp or inimpost" - - INIMETAPOST=$INIMPOST - fi - echo $ac_n "checking for working metafont mode""... $ac_c" 1>&6 -echo "configure:2791: checking for working metafont mode" >&5 +echo "configure:2644: checking for working metafont mode" >&5 modelist='ljfour lj4 lj3 lj2 ljet laserjet' for MFMODE in $modelist; do $METAFONT "\mode:=$MFMODE; mode_setup; end." > /dev/null 2>&1 @@ -2797,32 +2650,11 @@ echo "configure:2791: checking for working metafont mode" >&5 done echo "$ac_t""$MFMODE" 1>&6 - echo $ac_n "checking for mfplain.mp""... $ac_c" 1>&6 -echo "configure:2802: checking for mfplain.mp" >&5 - # - # For now let people define these in their environments - # - : ${MFPLAIN_MP=`kpsewhich --format mp mfplain.mp`} - echo "$ac_t""$MFPLAIN_MP" 1>&6 - - echo $ac_n "checking for inimetapost flags""... $ac_c" 1>&6 -echo "configure:2810: checking for inimetapost flags" >&5 - if test ${INIMETAPOST} = "inimp" ; then - : ${INIMETAPOST_FLAGS=''} - else - : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'} - fi - echo "$ac_t""$INIMETAPOST_FLAGS" 1>&6 - rm -f mfput.* - - - - # Check whether --enable-tfm-path or --disable-tfm-path was given. @@ -2839,7 +2671,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2843: checking for $ac_word" >&5 +echo "configure:2675: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_KPSEWHICH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2870,7 +2702,7 @@ done test -n "$KPSEWHICH" || KPSEWHICH="no" echo $ac_n "checking for tfm path""... $ac_c" 1>&6 -echo "configure:2874: checking for tfm path" >&5 +echo "configure:2706: checking for tfm path" >&5 TFM_FONTS="cmr msam" @@ -2898,13 +2730,13 @@ echo "configure:2874: checking for tfm path" >&5 ## First, let's just see if we can find Guile at all. echo $ac_n "checking "for guile-config"""... $ac_c" 1>&6 -echo "configure:2902: checking "for guile-config"" >&5 +echo "configure:2734: checking "for guile-config"" >&5 for guile_config in guile-config $target-guile-config $build-guile-config; do echo "$ac_t"""$guile_config"" 1>&6 if ! $guile_config --version > /dev/null 2>&1 ; then echo "configure: warning: "cannot execute $guile_config"" 1>&2 echo $ac_n "checking "if we are cross compiling"""... $ac_c" 1>&6 -echo "configure:2908: checking "if we are cross compiling"" >&5 +echo "configure:2740: checking "if we are cross compiling"" >&5 guile_config=error else break @@ -2915,7 +2747,7 @@ echo "configure:2908: checking "if we are cross compiling"" >&5 exit 1 fi echo $ac_n "checking "Guile version"""... $ac_c" 1>&6 -echo "configure:2919: checking "Guile version"" >&5 +echo "configure:2751: checking "Guile version"" >&5 need_guile_version="1.3.4" need_guile_version_numeric=100304 guile_version=`$guile_config --version 2>&1 | awk '{print $NF}'` @@ -2936,7 +2768,7 @@ else {last =0}} ## The GUILE_FLAGS macro. echo $ac_n "checking for Guile""... $ac_c" 1>&6 -echo "configure:2940: checking for Guile" >&5 +echo "configure:2772: checking for Guile" >&5 if ! $guile_config link > /dev/null ; then echo "$ac_t"""cannot execute $guile_config"" 1>&6 { echo "configure: error: "cannot find guile-config; is Guile installed?"" 1>&2; exit 1; } @@ -2951,7 +2783,7 @@ echo "configure:2940: checking for Guile" >&5 # Extract the first word of "guile", so it can be a program name with args. set dummy guile; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2955: checking for $ac_word" >&5 +echo "configure:2787: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GUILE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3012,17 +2844,17 @@ fi do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3016: checking for $ac_hdr" >&5 +echo "configure:2848: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3026: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:2858: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3049,7 +2881,7 @@ fi done echo $ac_n "checking for kpse_find_file in -lkpathsea""... $ac_c" 1>&6 -echo "configure:3053: checking for kpse_find_file in -lkpathsea" >&5 +echo "configure:2885: checking for kpse_find_file in -lkpathsea" >&5 ac_lib_var=`echo kpathsea'_'kpse_find_file | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3057,7 +2889,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lkpathsea $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -3101,12 +2933,12 @@ fi for ac_func in kpse_find_file do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3105: checking for $ac_func" >&5 +echo "configure:2937: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2968: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3159,7 +2991,7 @@ done fi echo $ac_n "checking whether to use kpathsea""... $ac_c" 1>&6 -echo "configure:3163: checking whether to use kpathsea" >&5 +echo "configure:2995: checking whether to use kpathsea" >&5 if test "$kpathsea_b" != no; then echo "$ac_t""yes" 1>&6 KPATHSEA=1 @@ -3187,7 +3019,7 @@ fi echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 -echo "configure:3191: checking for 8-bit clean memcmp" >&5 +echo "configure:3023: checking for 8-bit clean memcmp" >&5 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3195,7 +3027,7 @@ else ac_cv_func_memcmp_clean=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_memcmp_clean=yes else @@ -3223,12 +3055,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}" echo $ac_n "checking for vprintf""... $ac_c" 1>&6 -echo "configure:3227: checking for vprintf" >&5 +echo "configure:3059: checking for vprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" else @@ -3278,12 +3110,12 @@ fi if test "$ac_cv_func_vprintf" != yes; then echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 -echo "configure:3282: checking for _doprnt" >&5 +echo "configure:3114: checking for _doprnt" >&5 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3145: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" else @@ -3336,12 +3168,12 @@ fi for ac_func in memmem snprintf vsnprintf gettext isinf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3340: checking for $ac_func" >&5 +echo "configure:3172: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3407,7 +3239,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3411: checking for $ac_word" >&5 +echo "configure:3243: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3439,7 +3271,7 @@ test -n "$MAKEINFO" || MAKEINFO="error" if test "$MAKEINFO" != "error"; then echo $ac_n "checking whether makeinfo can split html by @node""... $ac_c" 1>&6 -echo "configure:3443: checking whether makeinfo can split html by @node" >&5 +echo "configure:3275: checking whether makeinfo can split html by @node" >&5 mkdir -p out makeinfo --html --output=out/split <&6 -echo "configure:3471: checking for $ac_word" >&5 +echo "configure:3303: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3501,21 +3333,21 @@ else fi -for ac_hdr in python2.1/Python.h python2.0/Python.h python2/Python.h python/Python.h python1.5/Python.h Python.h +for ac_hdr in python2.2/Python.h python2.1/Python.h python2.0/Python.h python2/Python.h python/Python.h python1.5/Python.h Python.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:3509: checking for $ac_hdr" >&5 +echo "configure:3341: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3519: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3351: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -3724,15 +3556,9 @@ s%@DIR_LOCALEDIR@%$DIR_LOCALEDIR%g s%@MSGFMT@%$MSGFMT%g s%@METAFONT@%$METAFONT%g s%@MFONT@%$MFONT%g -s%@METAPOST@%$METAPOST%g -s%@MPOST@%$MPOST%g s%@INIMETAFONT@%$INIMETAFONT%g s%@INIMFONT@%$INIMFONT%g -s%@INIMETAPOST@%$INIMETAPOST%g -s%@INIMPOST@%$INIMPOST%g s%@MFMODE@%$MFMODE%g -s%@MFPLAIN_MP@%$MFPLAIN_MP%g -s%@INIMETAPOST_FLAGS@%$INIMETAPOST_FLAGS%g s%@KPSEWHICH@%$KPSEWHICH%g s%@TFM_PATH@%$TFM_PATH%g s%@GUILE_CFLAGS@%$GUILE_CFLAGS%g diff --git a/input/regression/font-magnification.ly b/input/regression/font-magnification.ly new file mode 100644 index 0000000000..d379b9e7cf --- /dev/null +++ b/input/regression/font-magnification.ly @@ -0,0 +1,22 @@ +\header { texidoc = "The magnification can be set for any font. Note +that this doesn't change variable symbols such as beams or slurs. " } + +\score { +\notes \relative c'' \context Voice { +\property Voice .NoteHead \set #'font-magnification = #0.9 +c4 +\property Voice .NoteHead \set #'font-magnification = #0.8 + + + % why doesn't this work? + c4-#'((font-series . bold) ((font-magnification . 2.0) ("foobar"))) + + \property Voice .NoteHead \set #'font-magnification = #1.2 + \property Voice.TextScript \set #'font-magnification = #2.0 + c4-"big" + \property Voice .NoteHead \set #'font-magnification = #1.6 + c4 +} + +} + diff --git a/lily/font-interface.cc b/lily/font-interface.cc index 79e9f9e38d..d0e23e9bc0 100644 --- a/lily/font-interface.cc +++ b/lily/font-interface.cc @@ -76,21 +76,29 @@ ly_font_interface_get_default_font (SCM grob) return Font_interface::get_default_font (gr)->self_scm (); } + Font_metric * Font_interface::get_font (Grob *me, SCM chain) { + SCM name = me->get_grob_property ("font-name"); - SCM ss = me->paper_l ()->style_sheet_; - - SCM proc = ly_cdr (scm_assoc (ly_symbol2scm ("properties-to-font"), - ss)); + if (!gh_string_p (name)) + { + SCM ss = me->paper_l ()->style_sheet_; - SCM fonts = ly_cdr (scm_assoc (ly_symbol2scm ("fonts"), ss)); + SCM proc = ly_cdr (scm_assoc (ly_symbol2scm ("properties-to-font"), + ss)); - assert (gh_procedure_p (proc)); - SCM font_name = gh_call2 (proc, fonts, chain); + SCM fonts = ly_cdr (scm_assoc (ly_symbol2scm ("fonts"), ss)); - Font_metric *fm = me->paper_l ()->find_font (font_name, 1.0); + assert (gh_procedure_p (proc)); + name = gh_call2 (proc, fonts, chain); + } + + SCM mag = me->get_grob_property ("font-magnification"); + Real rmag = gh_number_p (mag) ? gh_scm2double (mag) : 1.0; + + Font_metric *fm = me->paper_l ()->find_font (name, rmag); return fm; } @@ -130,13 +138,12 @@ so a 14% speedup. */ -static SCM name_sym, shape_sym, family_sym, series_sym, rel_sz_sym, design_sz_sym, wild_sym; +static SCM shape_sym, family_sym, series_sym, rel_sz_sym, design_sz_sym, wild_sym; static void init_syms () { - name_sym = scm_permanent_object (ly_symbol2scm ("font-name")); shape_sym = scm_permanent_object (ly_symbol2scm ("font-shape")); family_sym = scm_permanent_object (ly_symbol2scm ("font-family")); series_sym = scm_permanent_object (ly_symbol2scm ("font-series")); @@ -162,8 +169,6 @@ MAKE_SCHEME_CALLBACK (Font_interface,properties_to_font_name,2); SCM Font_interface::properties_to_font_name (SCM fonts, SCM alist_chain) { - SCM name = ly_assoc_chain (name_sym, alist_chain); - SCM shape = SCM_BOOL_F; SCM family = SCM_BOOL_F; SCM series = SCM_BOOL_F; @@ -172,21 +177,16 @@ Font_interface::properties_to_font_name (SCM fonts, SCM alist_chain) SCM point_sz = ly_assoc_chain (design_sz_sym, alist_chain); SCM rel_sz = SCM_BOOL_F; - if (!gh_pair_p (name)) - { - shape = ly_assoc_chain (shape_sym, alist_chain); - family = ly_assoc_chain (family_sym, alist_chain); - series = ly_assoc_chain (series_sym, alist_chain); - - if (gh_pair_p (shape)) - shape = ly_cdr (shape); - if (gh_pair_p (family)) - family = ly_cdr (family); - if (gh_pair_p (series)) - series = ly_cdr (series); - } - else - name = ly_cdr (name); + shape = ly_assoc_chain (shape_sym, alist_chain); + family = ly_assoc_chain (family_sym, alist_chain); + series = ly_assoc_chain (series_sym, alist_chain); + + if (gh_pair_p (shape)) + shape = ly_cdr (shape); + if (gh_pair_p (family)) + family = ly_cdr (family); + if (gh_pair_p (series)) + series = ly_cdr (series); if (gh_pair_p (point_sz)) @@ -202,41 +202,22 @@ Font_interface::properties_to_font_name (SCM fonts, SCM alist_chain) { SCM qlist = ly_caar (s); - if (name != SCM_BOOL_F) - { - if (!wild_compare (scm_list_ref (qlist, gh_int2scm (4)), name)) - continue; - } - else - { - if (!wild_compare (scm_list_ref (qlist, gh_int2scm (1)), series)) - continue; - if (!wild_compare (scm_list_ref (qlist, gh_int2scm (2)), shape)) - continue; - if (!wild_compare (scm_list_ref (qlist, gh_int2scm (3)), family)) - continue; - } + if (!wild_compare (scm_list_ref (qlist, gh_int2scm (1)), series)) + continue; + if (!wild_compare (scm_list_ref (qlist, gh_int2scm (2)), shape)) + continue; + if (!wild_compare (scm_list_ref (qlist, gh_int2scm (3)), family)) + continue; - if (point_sz != SCM_BOOL_F) - { - // This if statement will always be true since name must - // be SCM_BOOL_F here, right? /MB - if (!wild_compare (scm_list_ref (qlist, gh_int2scm (4)), name)) - continue; - } - else - { - if (!wild_compare (ly_car (qlist), rel_sz)) - continue; - } - - + if (point_sz == SCM_BOOL_F && !wild_compare (ly_car (qlist), rel_sz)) + continue; + SCM qname = ly_cdar (s); return qname; } warning (_ ("couldn't find any font satisfying ")); - scm_write (scm_list_n (name, point_sz, shape, series , family, rel_sz, SCM_UNDEFINED), scm_current_error_port ()); + scm_write (scm_list_n (point_sz, shape, series , family, rel_sz, SCM_UNDEFINED), scm_current_error_port ()); scm_flush (scm_current_error_port ()); return ly_str02scm ("cmr10"); diff --git a/lily/grob.cc b/lily/grob.cc index a9c4766658..e9025beb46 100644 --- a/lily/grob.cc +++ b/lily/grob.cc @@ -1,5 +1,5 @@ /* - score-elem.cc -- implement Grob + grob.cc -- implement Grob source file of the GNU LilyPond music typesetter @@ -10,8 +10,9 @@ #include #include +#include "main.hh" #include "input-smob.hh" -#include "libc-extension.hh" + #include "group-interface.hh" #include "misc.hh" #include "paper-score.hh" @@ -26,8 +27,7 @@ #include "molecule.hh" #include "misc.hh" #include "paper-outputter.hh" -#include "dimension-cache.hh" -#include "side-position-interface.hh" +#include "music.hh" #include "item.hh" #include "ly-smobs.icc" @@ -278,14 +278,18 @@ Grob::get_uncached_molecule ()const if (unsmob_molecule (mol)) { - /* - TODO: add option for not copying origin info. - */ - SCM origin =get_grob_property ("origin"); - if (!unsmob_input (origin)) - origin =ly_symbol2scm ("no-origin"); - + SCM origin = ly_symbol2scm ("no-origin"); + if (store_locations_global_b){ + SCM cause = get_grob_property ("cause"); + if (Music*m = unsmob_music (cause)) + { + SCM music_origin = m->get_mus_property ("origin"); + if (unsmob_input (music_origin)) + origin = music_origin; + } + } + // ugr. mol = Molecule (m->extent_box (), diff --git a/lily/include/molecule.hh b/lily/include/molecule.hh index 76081729ca..9d9ac24b94 100644 --- a/lily/include/molecule.hh +++ b/lily/include/molecule.hh @@ -42,7 +42,6 @@ class Molecule { Box dim_; SCM expr_; - DECLARE_SIMPLE_SMOBS (Molecule,); public: diff --git a/lily/line-of-score.cc b/lily/line-of-score.cc index a9e21a06eb..989d932580 100644 --- a/lily/line-of-score.cc +++ b/lily/line-of-score.cc @@ -191,7 +191,6 @@ set_loose_columns (Line_of_score* which, Column_x_positions const *posns) j ++; loose = dynamic_cast (unsmob_grob (ly_cdr (between))); } - } } diff --git a/lily/note-head.cc b/lily/note-head.cc index f685b4917a..89929e873d 100644 --- a/lily/note-head.cc +++ b/lily/note-head.cc @@ -17,10 +17,45 @@ #include "rhythmic-head.hh" /* - Note_head contains the code for printing note heads and the ledger lines. + Note_head contains the code for printing note heads. + + + + Ledger lines: + + It also contains the ledger lines, for historical reasons. Ledger + lines are somewhat of a PITA. In some cases, they take up no space, in + some cases they don't: + + DO take space: + + - when ledgered notes are juxtaposed: there should be some white + space between the ledger lines. + + - when accidentals are near: the accidentals should not be on the ledger lines + + [both tips by Heinz Stolba from Universal Edition]. + + DO NOT take space into account: + + - for basically everything else, e.g. swapping ledgered notes on + clustered chords, spacing between ledgered and unledgered notes. + + + TODO: fix this. It is not feasible to have a special grob for + ledgers, since you basically don't know if there will be ledgers, + unless you know at interpretation phase already 1. the Y-position, + 2. the number of staff lines. It's not yet specced when both pieces + of information are there, so for now, it is probably better to build + special support for ledgers into the accidental and separation-item + code. + + (Besides a separate ledger seems overkill. For what else would + it be useful?) - TODO: maybe it's worthwhile to split away the Ledger lines into a - separate grob. */ + + +*/ #include "staff-symbol-referencer.hh" @@ -133,13 +168,17 @@ internal_brew_molecule (Grob *me, bool ledger_take_space) return out; } -MAKE_SCHEME_CALLBACK (Note_head,brew_molecule,1); +MAKE_SCHEME_CALLBACK (Note_head,brew_molecule,1); SCM Note_head::brew_molecule (SCM smob) { Grob *me = unsmob_grob (smob); - return internal_brew_molecule (me, true).smobbed_copy (); + + /* + ledgers don't take space. See top of file. + */ + return internal_brew_molecule (me, false).smobbed_copy (); } /* diff --git a/lily/text-item.cc b/lily/text-item.cc index 21b8729c1c..802eeefc9b 100644 --- a/lily/text-item.cc +++ b/lily/text-item.cc @@ -90,32 +90,6 @@ Text_item::lookup_character (Grob *, Font_metric*fm, SCM char_name) Molecule Text_item::lookup_text (Grob *me, Font_metric*fm, SCM text) { -#if 0 - /* - Fixme; should be done differently, move to font-interface? - - differently -- how/why? - */ - - SCM magnification = me->get_grob_property ("font-magnification"); - - Font_metric* metric = 0; - if (gh_number_p (magnification)) - { - - Real realmag = pow (1.2, gh_scm2int (magnification)); - metric = all_fonts_global_p->find_scaled (ly_scm2string (font_name), realmag); - - assert (false); - } -#else - SCM magnification = me->get_grob_property ("font-magnification"); - - if (gh_number_p (magnification) && gh_scm2double (magnification) > 1) - programming_error ("font-magnification disabled"); -#endif - - SCM list = scm_list_n (ly_symbol2scm ("text"), text, SCM_UNDEFINED); list = fontify_atom (fm, list); @@ -240,20 +214,13 @@ Text_item::markup_text2molecule (Grob *me, SCM markup_text, if (extent_b) { -#if 0 - /* Hmm, we're not allowed to change a Molecule's extent? */ - mol.dim_[axis] = extent; - Molecule::ly_set_molecule_extent_x (mol.self_scm (), gh_int2scm (axis), - ly_cdr (e)); -#else - // burp: unpredictable names, these... + /* we're not setting extents for unknown reasons. */ Box b = mol.extent_box (); SCM expr = mol.get_expr (); b[axis] = extent; mol = Molecule (b, expr); -#endif - } + } return mol; } diff --git a/lily/third-try.cc b/lily/third-try.cc index 5816ce6d86..79deb7cb8a 100644 --- a/lily/third-try.cc +++ b/lily/third-try.cc @@ -25,6 +25,11 @@ left-neighbors = idem (TODO: property-doc these!) + + Don't be confused by right-items: each spacing wish can also contain + a number of items, with which a spacing constraint may be kept. It's + a little baroque, but it might come in handy later on? + */ class Third_spacing_spanner @@ -74,7 +79,7 @@ loose_column (Grob *l, Grob *c, Grob *r) the column containing the clef is really loose, and should be attached right to the first column, but that is a lot of work for - such a border line case. + such a borderline case. ) @@ -384,12 +389,13 @@ Third_spacing_spanner::do_measure (Grob*me, Link_array *cols) { Grob * wish = unsmob_grob (gh_car (s)); - /* - TODO: configgable. + if (Note_spacing::left_column (wish) != lc + || Note_spacing::right_column (wish) != rc) + continue; - TODO: don't do stem-dir correction in polyphonic - stuff. It wastes CPU time. - */ + /* + This is probably a waste of time in the case of polyphonic + music. */ if (Note_spacing::has_interface (wish)) { hinterfleisch = hinterfleisch >? @@ -402,18 +408,13 @@ Third_spacing_spanner::do_measure (Grob*me, Link_array *cols) } } - // ? why. - if (gh_pair_p (seq)) - stretch_distance -= headwid; - - /* - something failed, or we get ridiculous close. - */ if (hinterfleisch < 0) { // maybe should issue a programming error. hinterfleisch = note_space; } + else + stretch_distance -= headwid; // why? if (max_factor == 0.0) max_factor = 1.0; diff --git a/lily/tuplet-bracket.cc b/lily/tuplet-bracket.cc index d53a5170ea..b93ff670d6 100644 --- a/lily/tuplet-bracket.cc +++ b/lily/tuplet-bracket.cc @@ -28,6 +28,12 @@ /* TODO: staff-line collisions for horizontal tuplet brackets. + + TODO: + + in the case that there is no bracket, but there is a (single) beam, + follow beam precisely for determining tuplet number location. + */ @@ -38,9 +44,6 @@ Tuplet_bracket::set_interface (Grob*me) me->set_interface (ly_symbol2scm ("tuplet-bracket")); } -/* - TODO: use stem->beam fields to find Beams. Autobeams aren't found - through the engraver mechanism. */ MAKE_SCHEME_CALLBACK (Tuplet_bracket,brew_molecule,1); SCM Tuplet_bracket::brew_molecule (SCM smob) diff --git a/scm/grob-description.scm b/scm/grob-description.scm index ea731b477c..bc59224334 100644 --- a/scm/grob-description.scm +++ b/scm/grob-description.scm @@ -136,10 +136,13 @@ (BreathingSign . ( (break-align-symbol . Breathing_sign) (breakable . #t ) - (molecule-callback . ,Breathing_sign::brew_molecule) + (molecule-callback . ,Text_item::brew_molecule) + (lookup . name) + (font-family . music) + (text . "scripts-rcomma") (Y-offset-callbacks . (,Breathing_sign::offset_callback)) (visibility-lambda . ,begin-of-line-invisible) - (meta . ,(grob-description break-aligned-interface)) + (meta . ,(grob-description break-aligned-interface text-interface font-interface)) )) (Clef . ( @@ -426,6 +429,7 @@ (PaperColumn . ( (axes 0) +; (molecule-callback . ,Paper_column::brew_molecule) (font-name . "cmr8") (meta . ,(grob-description paper-column-interface axis-group-interface spaceable-element-interface)) )) (PhrasingSlur . ( @@ -452,6 +456,7 @@ (NonMusicalPaperColumn . ( (axes 0) +; (molecule-callback . ,Paper_column::brew_molecule) (font-name . "cmr8") (meta . ,(grob-description paper-column-interface axis-group-interface spaceable-element-interface)) )) diff --git a/scm/grob-property-description.scm b/scm/grob-property-description.scm index 9afa070530..22249189e3 100644 --- a/scm/grob-property-description.scm +++ b/scm/grob-property-description.scm @@ -158,9 +158,11 @@ procedure is tried.") (grob-property-description 'flag-width-function procedure? "Procedure that computes the width of a half-beam (a non-connecting beam.).") (grob-property-description 'font-family symbol? "partial font definition: music roman braces dynamic math ...") -(grob-property-description 'font-name symbol? "partial font definition: -base name of font file FIXME: should override other partials.") +(grob-property-description 'font-name string? "file name for the font to load. +Overrides all other font-X qualifiers.") (grob-property-description 'font-design-size number? "partial font definition: exact font size in points FIXME: should override font-relative-size.") +(grob-property-description 'font-magnification number? "Magnification + of the font. If undefined, the default is @code{1.0}.") (grob-property-description 'font-relative-size number? "partial font definition: the relative size compared the `normal' size. 0 is style-sheet's normal size, -1 is smaller, +1 is bigger, -1 is smaller.") (grob-property-description 'font-series symbol? "partial font definition: medium, bold.") diff --git a/scm/interface-description.scm b/scm/interface-description.scm index 62ac4dfbca..930a7dcc8c 100644 --- a/scm/interface-description.scm +++ b/scm/interface-description.scm @@ -15,6 +15,9 @@ ;;; and `objects'. +;;; TODO: this should be done through C++ macros, in order to have +;;; tighter coupling between the C++ and its doco. + (define all-interfaces '()) (define (lily-interface symbol description props) -- 2.39.5