[ << Interfaces for programmers ] | [Top][Contents][Index] | [ LilyPond Scheme interfaces >> ] |
[ < Markup command definition syntax ] | [ Up : New markup command definition ] | [ A complete example > ] |
On properties
The layout
and props
arguments of markup commands bring a
context for the markup interpretation: font size, line width, etc.
The layout
argument allows access to properties defined in
paper
blocks, using the ly:output-def-lookup
function.
For instance, the line width (the same as the one used in scores) is
read using:
(ly:output-def-lookup layout 'line-width)
The props
argument makes some properties accessible to markup
commands. For instance, when a book title markup is interpreted, all
the variables defined in the \header
block are automatically
added to props
, so that the book title markup can access the book
title, composer, etc. It is also a way to configure the behavior of a
markup command: for example, when a command uses font size during
processing, the font size is read from props
rather than having a
font-size
argument. The caller of a markup command may change
the value of the font size property in order to change the behavior.
Use the #:properties
keyword of define-markup-command
to
specify which properties shall be read from the props
arguments.
The example in next section illustrates how to access and override properties in a markup command.