From: Han-Wen Nienhuys Date: Thu, 6 Jan 2005 23:36:49 +0000 (+0000) Subject: (add-cmr-fonts): use real dimens in font selection. X-Git-Tag: release/2.5.14~308 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=998a8bd9765808b0419b1b66a4ee7947e6534cc5;p=lilypond.git (add-cmr-fonts): use real dimens in font selection. --- diff --git a/ChangeLog b/ChangeLog index c9aaaa7002..f6514d398f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2005-01-07 Han-Wen Nienhuys + + * scm/font.scm (add-cmr-fonts): use real dimens in font selection. + +2005-01-07 Han-Wen Nienhuys + + * lily/dimensions.cc (LY_DEFINE): add ly:{inch,cm,mm,bp,pt}. + 2005-01-06 Graham Percival * Documentation/user/notation.itely: minor editing. diff --git a/lily/dimensions.cc b/lily/dimensions.cc index 547ec07a2d..6cdbf449d1 100644 --- a/lily/dimensions.cc +++ b/lily/dimensions.cc @@ -1,19 +1,62 @@ -// dimensions.cc +/* + dimensions.cc -- implement Dimension handling -#include "dimensions.hh" + source file of the GNU LilyPond music typesetter + + (c) 1997--2005 Han-Wen Nienhuys +*/ + +#include "lily-guile.hh" +#include "dimensions.hh" #include "warn.hh" -String -print_dimen (Real r) +LY_DEFINE (ly_pt, "ly:pt", + 1, 0, 0, (SCM num), + "@var{num} printer points") { - String s = to_string (r, "%.3f"); - if (s.index ("NaN") != -1) - { - warning (_ ("NaN")); - s = "0.0"; - } - s += "pt"; - return s; + SCM_ASSERT_TYPE(scm_is_number (num), num, SCM_ARG1, __FUNCTION__, + "number"); + return scm_from_double (point_constant + * scm_to_double (num)); } +LY_DEFINE (ly_cm, "ly:cm", + 1, 0, 0, (SCM num), + "@var{num} cm") +{ + SCM_ASSERT_TYPE(scm_is_number (num), num, SCM_ARG1, __FUNCTION__, + "number"); + return scm_from_double (cm_constant + * scm_to_double (num)); +} + +LY_DEFINE (ly_inch, "ly:inch", + 1, 0, 0, (SCM num), + "@var{num} inches") +{ + SCM_ASSERT_TYPE(scm_is_number (num), num, SCM_ARG1, __FUNCTION__, + "number"); + return scm_from_double (inch_constant + * scm_to_double (num)); +} + +LY_DEFINE (ly_mm, "ly:mm", + 1, 0, 0, (SCM num), + "@var{num} mm") +{ + SCM_ASSERT_TYPE(scm_is_number (num), num, SCM_ARG1, __FUNCTION__, + "number"); + return scm_from_double (mm_constant + * scm_to_double (num)); +} + +LY_DEFINE (ly_bp, "ly:bp", + 1, 0, 0, (SCM num), + "@var{num} bigpoints (1/72th inch)") +{ + SCM_ASSERT_TYPE(scm_is_number (num), num, SCM_ARG1, __FUNCTION__, + "number"); + return scm_from_double (bigpoint_constant + * scm_to_double (num)); +} diff --git a/lily/font-select.cc b/lily/font-select.cc index a92bf773d4..f3c84cb110 100644 --- a/lily/font-select.cc +++ b/lily/font-select.cc @@ -133,7 +133,7 @@ select_encoded_font (Output_def *layout, SCM chain) req = scm_to_double (scm_cdr (font_size)); return get_font_by_mag_step (layout, req, vec, - scm_to_double (base_size) * point_constant); + scm_to_double (base_size)); } assert (0); diff --git a/lily/include/main.hh b/lily/include/main.hh index 902cccc0c2..23fad33030 100644 --- a/lily/include/main.hh +++ b/lily/include/main.hh @@ -38,11 +38,6 @@ extern bool internal_type_checking_global_b; /* todo: collect in Output_option struct? */ -extern bool make_png; -extern bool make_dvi; -extern bool make_ps; -extern bool make_pdf; -extern bool make_tex; extern String output_format_global; extern bool make_preview; diff --git a/lily/main.cc b/lily/main.cc index b2a55d1ae8..c8f0b12d64 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -324,6 +324,15 @@ setup_localisation () #endif } +static void +add_output_format (String format) +{ + if (output_name_global != "") + output_name_global += ","; + output_name_global += format; +} + + static void parse_argv (int argc, char **argv) { @@ -334,16 +343,14 @@ parse_argv (int argc, char **argv) switch (opt->shortname_char_) { case 0: - if (String (opt->longname_str0_) == "png") - make_png = true; - else if (String (opt->longname_str0_) == "pdf") - make_pdf = true; - else if (String (opt->longname_str0_) == "ps") - make_ps = true; - else if (String (opt->longname_str0_) == "dvi") - make_dvi = true; - else if (String (opt->longname_str0_) == "tex") - make_tex = true; + if (String (opt->longname_str0_) == "png" + || String (opt->longname_str0_) == "pdf" + || String (opt->longname_str0_) == "ps" + || String (opt->longname_str0_) == "dvi" + || String (opt->longname_str0_) == "tex") + { + add_output_format (opt->longname_str0_); + } else if (String (opt->longname_str0_) == "preview") make_preview = true; else if (String (opt->longname_str0_) == "no-pages") diff --git a/scm/font.scm b/scm/font.scm index 54126715a3..64a3e37f8f 100644 --- a/scm/font.scm +++ b/scm/font.scm @@ -146,7 +146,7 @@ (cons (* factor (cadr x)) (caddr x)))) `( - (fetaNumber 20 + (fetaNumber ,(ly:pt 20) #( ,(delay (ly:font-load "feta-alphabet11")) ,(delay (ly:font-load "feta-alphabet13")) @@ -157,7 +157,7 @@ ,(delay (ly:font-load "feta-alphabet23")) ,(delay (ly:font-load "feta-alphabet26")))) - (fetaDynamic 20.0 #( + (fetaDynamic ,(ly:pt 20.0) #( ,(delay (ly:font-load "feta-alphabet11")) ,(delay (ly:font-load "feta-alphabet13")) ,(delay (ly:font-load "feta-alphabet14")) @@ -167,7 +167,7 @@ ,(delay (ly:font-load "feta-alphabet23")) ,(delay (ly:font-load "feta-alphabet26")))) - (fetaMusic 20.0 + (fetaMusic ,(ly:pt 20.0) #( ,(delay (ly:font-load "bigcheese11")) ,(delay (ly:font-load "bigcheese13")) @@ -193,34 +193,34 @@ (cons (* factor (cadr x)) (cddr x)))) `((#(roman upright medium) - . (10.0 . #(,(delay (ly:font-load "cmr6")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "cmr6")) ,(delay (ly:font-load "cmr8")) ,(delay (ly:font-load "cmr10")) ,(delay (ly:font-load "cmr17"))))) (#(roman upright bold) - . (10.0 . #(,(delay (ly:font-load "cmbx6")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "cmbx6")) ,(delay (ly:font-load "cmbx8")) ,(delay (ly:font-load "cmbx10")) ,(delay (ly:font-load "cmbx12"))))) (#(roman italic medium) - . (10.0 . #(,(delay (ly:font-load "cmti7")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "cmti7")) ,(delay (ly:font-load "cmti10")) ,(delay (ly:font-load "cmti12"))))) (#(roman italic bold) - . (10.0 . #(,(delay (ly:font-load "cmbxti8")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "cmbxti8")) ,(delay (ly:font-load "cmbxti10")) ,(delay (ly:font-load "cmbxti14"))))) (#(roman caps medium) - . (10.0 . #(,(delay (ly:font-load "cmcsc10"))))) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "cmcsc10"))))) (#(roman upright bold-narrow ) - . (10.0 . #(,(delay (ly:font-load "cmb10"))))) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "cmb10"))))) (#(sans upright medium) - . (10.0 . #(,(delay (ly:font-load "cmss8")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "cmss8")) ,(delay (ly:font-load "cmss10")) ,(delay (ly:font-load "cmss12")) ,(delay (ly:font-load "cmss17"))))) (#(typewriter upright medium) - . (10.0 . #(,(delay (ly:font-load "cmtt8")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "cmtt8")) ,(delay (ly:font-load "cmtt10")) ,(delay (ly:font-load "cmtt12")))))))) @@ -234,35 +234,35 @@ (font-family . ,(vector-ref (car x) 0))) (cons (* factor (cadr x)) (cddr x)))) `((#(roman upright medium) - . (10.0 . #(,(delay (ly:font-load "lmr6")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "lmr6")) ,(delay (ly:font-load "lmr8")) ,(delay (ly:font-load "lmr10")) ,(delay (ly:font-load "lmr17"))))) (#(roman upright bold) - . (10.0 . #(,(delay (ly:font-load "lmbx6")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "lmbx6")) ,(delay (ly:font-load "lmbx8")) ,(delay (ly:font-load "lmbx10")) ,(delay (ly:font-load "lmbx12"))))) (#(roman italic medium) - . (10.0 . #(,(delay (ly:font-load "lmri7")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "lmri7")) ,(delay (ly:font-load "lmri10")) ,(delay (ly:font-load "lmri12"))))) (#(roman italic bold) - . (10.0 . #(,(delay (ly:font-load "lmbxi10"))))) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "lmbxi10"))))) (#(roman caps medium) - . (10.0 . #(,(delay (ly:font-load "lmcsc10"))))) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "lmcsc10"))))) (#(roman upright bold-narrow ) - . (10.0 . #(,(delay (ly:font-load "lmb10"))))) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "lmb10"))))) (#(sans upright medium) - . (10.0 . #(,(delay (ly:font-load "lmss8")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "lmss8")) ,(delay (ly:font-load "lmss10")) ,(delay (ly:font-load "lmss12")) ,(delay (ly:font-load "lmss17"))))) (#(sans upright bold) - . (10.0 . #(,(delay (ly:font-load "lmssbx10"))))) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "lmssbx10"))))) (#(typewriter upright medium) - . (10.0 . #(,(delay (ly:font-load "lmtt8")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "lmtt8")) ,(delay (ly:font-load "lmtt10")) ,(delay (ly:font-load "lmtt12")))))))) @@ -277,36 +277,36 @@ (cons (* factor (cadr x)) (cddr x)))) `((#(roman upright medium) - . (10.0 . #(,(delay (ly:font-load "ecrm6")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "ecrm6")) ,(delay (ly:font-load "ecrm8")) ,(delay (ly:font-load "ecrm10")) ,(delay (ly:font-load "ecrm17"))))) (#(roman upright bold) - . (10.0 . #(,(delay (ly:font-load "ecbx6")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "ecbx6")) ,(delay (ly:font-load "ecbx8")) ,(delay (ly:font-load "ecbx10")) ,(delay (ly:font-load "ecbx12"))))) (#(roman italic medium) - . (10.0 . #(,(delay (ly:font-load "ecti7")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "ecti7")) ,(delay (ly:font-load "ecti10")) ,(delay (ly:font-load "ecti12"))))) (#(roman italic bold) - . (10.0 . #(,(delay (ly:font-load "ecbi8")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "ecbi8")) ,(delay (ly:font-load "ecbi10")) ,(delay (ly:font-load "ecbi14"))))) (#(roman caps medium) - . (10.0 . #(,(delay (ly:font-load "eccc10"))))) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "eccc10"))))) (#(roman slanted-caps medium) - . (10.0 . #(,(delay (ly:font-load "ecsc10"))))) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "ecsc10"))))) (#(roman upright bold-narrow ) - . (10.0 . #(,(delay (ly:font-load "ecrb10"))))) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "ecrb10"))))) (#(sans upright medium) - . (10.0 . #(,(delay (ly:font-load "ecss8")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "ecss8")) ,(delay (ly:font-load "ecss10")) ,(delay (ly:font-load "ecss12")) ,(delay (ly:font-load "ecss17"))))) (#(typewriter upright medium) - . (10.0 . #(,(delay (ly:font-load "ectt8")) + . (,(ly:pt 10.0) . #(,(delay (ly:font-load "ectt8")) ,(delay (ly:font-load "ectt10")) ,(delay (ly:font-load "ectt12")))))))) @@ -319,25 +319,25 @@ (font-shape . upright) (font-series . medium) (font-encoding . latin1)) - `(10.0 . #(,(delay (ly:font-load "uncr8a"))))) + `(,(ly:pt 10.0) . #(,(delay (ly:font-load "uncr8a"))))) (add-font node '((font-family . roman) (font-shape . italic) (font-series . medium) (font-encoding . latin1)) - `(10.0 . #(,(delay (ly:font-load "uncri8a"))))) + `(,(ly:pt 10.0) . #(,(delay (ly:font-load "uncri8a"))))) (add-font node '((font-family . roman) (font-shape . upright) (font-series . bold) (font-encoding . latin1)) - `(10.0 . #(,(delay (ly:font-load "uncb8a"))))) + `(,(ly:pt 10.0) . #(,(delay (ly:font-load "uncb8a"))))) (add-font node '((font-family . roman) (font-shape . italic) (font-series . bold) (font-encoding . latin1)) - `(10.0 . #(,(delay (ly:font-load "uncbi8a")))))) + `(,(ly:pt 10.0) . #(,(delay (ly:font-load "uncbi8a")))))) (define-public (make-cmr-tree factor) (let ((n (make-font-tree-node 'font-encoding 'fetaMusic)))