Simon Albrecht <address@hidden> writes:
Hello,
I'm just creating a style sheet and want to create a scheme function
which sets the paper margins. However it seems the paper variables
aren't bound and I don't know why. A simple example would be:
\version "2.19.3"
test =
#(define-scheme-function (parser location num) (number?)
#{ \paper {
top-margin = #(* num paper-height)
}
#}
)
\test 0.1
{ c'1 }
Help is very much appreciated :-)
It is a scoping problem: the scope of # inside of #{ ... #} is that of
the embedding. Try something like
test =
#(define-scheme-function (parser location num) (number?)
#{ \paper { top-margin
$(* num (module-ref (current-module) 'paper-height)) } #})
\paper { \test 0.9 }
{ c'1 }
I am somewhat irritated that a plain
\test 0.9
does not work just as well. I thought I had done something to make that
work at one point of time, but apparently not so.