@item @ref{Changes}:
updates since the last major version.
+@item @ref{Extend}:
+programming fancy tweaks in lilypond.
+
@item @ref{Internals}:
information about LilyPond's internal structures, which is
required for constructing tweaks.
* Snippets:: Snippets.
* FAQ:: FAQ.
* Changes:: NEWS.
+* Extend:: Programming.
* Internals:: Internals.
* Translated:: Translation.
* All:: All manuals.
@divEnd
+@node Extend
+@unnumberedsec Extend
+
+@divClass{column-left-top}
+@subheading Extend LilyPond
+
+This manual explains how to write extensions to LilyPond.
+
+@divEnd
+
+@divClass{column-right-top}
+@subheading Read it now
+
+@itemize
+
+@item @rextendnamed{Top,Extend}:
+read this manual in the same format as this one.
+
+@end itemize
+@divEnd
+
+@divClass{column-center-bottom}
+@subheading Other formats
+
+@divClass{keep-bullets}
+@itemize
+
+@item @uref{extending/index.html, Extend (split HTML)}:
+the manual is split between many HTML pages.
+@emph{(small download for each page)}
+
+@item @uref{extending-big-page.html, Extend (big HTML)}:
+read this manual as one huge HTML page.
+@emph{(large single download, around 10? Mb)}
+
+@item @uref{extending.pdf, extending.pdf}:
+download as a PDF file.
+@emph{(large single download, 2.8 Mb)}
+
+@item @uref{FIXME, extending.info}:
+GNU info format for documentation. FIXME, link broken.
+
+@end itemize
+@divEnd
+@divEnd
+
@node Internals
@unnumberedsec Internals
Appendices
* Templates:: Ready-made templates.
-* Scheme tutorial:: Programming inside LilyPond.
* GNU Free Documentation License:: License of this document.
* LilyPond index::
@end menu
@include learning/tweaks.itely
@include learning/templates.itely
-@include learning/scheme-tutorial.itely
@include fdl.itexi
@code{thickness} or @code{font-shape}, others are used as values that
can be given to properties, like @code{italic}. Note the distinction
from arbitrary text strings, which would appear as @code{"a text
-string"}; for more details about symbols and strings, see @ref{Scheme
-tutorial}.
+string"}; for more details about symbols and strings, see
+@rextend{Scheme tutorial}.
So we see that the @code{\override} command needed to print the lyrics
in italics is:
@seealso
-Learning Manual: @ref{Scheme tutorial}.
+Extending: @rextend{Scheme tutorial}.
@node Types of properties
@seealso
-Learning Manual: @ref{Scheme tutorial}.
+Extending: @rextend{Scheme tutorial}.
@node Appearance of objects
is currently outside the scope of this manual, as a knowledge of
the Scheme language is required. Users should be warned that
a substantial amount of technical knowledge or time is required
-to understand Scheme and these files (see @ref{Scheme tutorial}).
+to understand Scheme and these files (see @rextend{Scheme tutorial}).
If you have this knowledge, the Scheme files which may be of
interest are:
the Scheme programming language can be incorporated directly in
the internal operation of LilyPond. Of course, at least a basic
knowledge of programming in Scheme is required to do this, and an
-introduction is provided in the @ref{Scheme tutorial}.
+introduction is provided in the @rextend{Scheme tutorial}.
As an illustration of one of the many possibilities, instead of
setting a property to a constant it can be set to a Scheme
@end lilypond
Further examples showing the use of these programmable interfaces
-can be found in @ref{Tweaking with Scheme}.
+can be found in @rextend{Tweaking with Scheme}.
@c @rprogram
@c @ruser
@c @rchanges
+@c @rextend
@c @rcontrib
@c
@c All these also have a @...named version which allows to specify the
@ref{\TEXT\,,\DISPLAY\,notation-big-page,Notation Reference}
@end macro
+@macro rextend{TEXT}
+@vindex \TEXT\
+@ref{\TEXT\,,,extending-big-page,Extending}
+@end macro
+
+@macro rextendnamed{TEXT,DISPLAY}
+@vindex \TEXT\
+@ref{\TEXT\,,\DISPLAY\,extending-big-page,Extending}
+@end macro
+
@macro rchanges{TEXT}
@vindex \TEXT\
@ref{\TEXT\,,,changes-big-page,Changes}
@ref{\TEXT\,,\DISPLAY\,changes,Changes}
@end macro
+@macro rextend{TEXT}
+@vindex \TEXT\
+@ref{\TEXT\,,,extending,Extending}
+@end macro
+
+@macro rextendnamed{TEXT,DISPLAY}
+@vindex \TEXT\
+@ref{\TEXT\,,\DISPLAY\,extending,Extending}
+@end macro
+
@macro rcontrib{TEXT}
@vindex \TEXT\
@ref{\TEXT\,,,contributor,Contributor's Guide}
@ref{\TEXT\,,\DISPLAY\,lilypond-changes,Changes}
@end macro
+@macro rextend{TEXT}
+@vindex \TEXT\
+@ref{\TEXT\,,,lilypond-extending,Extending}
+@end macro
+
+@macro rextendnamed{TEXT,DISPLAY}
+@vindex \TEXT\
+@ref{\TEXT\,,\DISPLAY\,lilypond-extending,Extending}
+@end macro
+
@macro rcontrib{TEXT}
@vindex \TEXT\
@ref{\TEXT\,,,lilypond-contributor,Contributor's Guide}
@ref{\TEXT\,,\DISPLAY\,changes,Changes}
@end macro
+@macro rextend{TEXT}
+@lilyvindex{\TEXT\}
+@ref{\TEXT\,,,extending,Extending}
+@end macro
+
+@macro rextendnamed{TEXT,DISPLAY}
+@lilyvindex{\TEXT\}
+@ref{\TEXT\,,\DISPLAY\,extending,Extending}
+@end macro
+
@macro rcontrib{TEXT}
@lilyvindex{\TEXT\}
@ref{\TEXT\,,,contributor,Contributor's Guide}
my @color_3 = (
"Productions", "Testimonials",
"Source", "Old downloads",
- "FAQ", "Changes", "Internals",
+ "FAQ", "Changes", "Extend", "Internals",
"Publications", "Old news"
);
my @color_4 = (