]> git.donarmstrong.com Git - lilypond.git/commitdiff
(add-cmr-fonts): use real dimens in font selection.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 6 Jan 2005 23:36:49 +0000 (23:36 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 6 Jan 2005 23:36:49 +0000 (23:36 +0000)
ChangeLog
lily/dimensions.cc
lily/font-select.cc
lily/include/main.hh
lily/main.cc
scm/font.scm

index c9aaaa7002419bf6ba87d023d2e5d25beadf1ee3..f6514d398f9cd70da35fcbbd93cf4c3ec1efc19f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2005-01-07  Han-Wen Nienhuys  <hanwen@xs4all.nl>
+
+       * scm/font.scm (add-cmr-fonts): use real dimens in font selection.
+
+2005-01-07  Han-Wen Nienhuys  <hanwen@xs4all.nl>
+
+       * lily/dimensions.cc (LY_DEFINE): add ly:{inch,cm,mm,bp,pt}.
+
 2005-01-06  Graham Percival  <gperlist@shaw.ca>
 
        * Documentation/user/notation.itely: minor editing.
index 547ec07a2d9422eb4564b76d0bcecd49449b6622..6cdbf449d1554daed77f2b1a5079a5950724d7ee 100644 (file)
@@ -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 <hanwen@xs4all.nl>
 
+*/
+
+#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));
+}
index a92bf773d44e131de3de19c69f54bd2389fdbcfc..f3c84cb110317209c2baba69c0dee4f8e6a561bf 100644 (file)
@@ -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);
index 902cccc0c2ee06fb49540e477c8bbb193ae9a291..23fad330302c0fce3ba12b752e5bf45c981d4b05 100644 (file)
@@ -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;
index b2a55d1ae8df5cb7ba28fc9ae2754d7be293950c..c8f0b12d64d27ccc434f6b4c46ba360baa6f574d 100644 (file)
@@ -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")
index 54126715a3d4abe4384ce7613ba3d0dc3e7b4290..64a3e37f8f7647bf8b31149026817589ce3bf4fa 100644 (file)
               (cons (* factor (cadr x))
                     (caddr x))))
    `(
-     (fetaNumber 20
+     (fetaNumber ,(ly:pt 20)
                 #(
                   ,(delay  (ly:font-load "feta-alphabet11"))
                   ,(delay  (ly:font-load "feta-alphabet13"))
                   ,(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"))
                          ,(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"))                  
               (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"))))))))
 
                      (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"))))))))
 
                         (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"))))))))
 
              (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)))