- SCM val ;
- if (!scope_p_->try_retrieve (s, &val))
- {
- programming_error ("unknown paper variable: " + ly_symbol2string (s));
- return 0.0;
- }
-
- Real sc = 1.0;
- SCM ssc;
- if (scope_p_->try_retrieve (ly_symbol2scm ("outputscale"), &ssc))
- {
- sc = gh_scm2double (ssc);
- }
- if (gh_number_p (val))
- {
- return gh_scm2double (val) / sc;
- }
- else
- {
- programming_error ("not a real variable");
- return 0.0;
- }
+ SCM val = lookup_variable (s);
+ SCM scale = lookup_variable (ly_symbol2scm ("outputscale"));
+
+ Real sc = gh_scm2double (scale);
+ return gh_scm2double (val) / sc;