@menu
-* Interpretation contexts::
-* Explaining the Internals Reference::
-* Modifying properties::
-* Useful concepts and properties::
-* Common properties::
-* Advanced tweaks::
-* Discussion of specific tweaks::
+* Interpretation contexts::
+* Explaining the Internals Reference::
+* Modifying properties::
+* Useful concepts and properties::
+* Common properties::
+* Advanced tweaks::
+* Discussion of specific tweaks::
@end menu
@node Interpretation contexts
@menu
-* Contexts explained::
-* Creating contexts::
-* Modifying context plug-ins::
-* Changing context default settings::
-* Defining new contexts::
-* Aligning contexts::
+* Contexts explained::
+* Creating contexts::
+* Modifying context plug-ins::
+* Changing context default settings::
+* Defining new contexts::
+* Aligning contexts::
@end menu
@node Contexts explained
@menu
-* Score - the master of all contexts::
-* Top-level contexts - staff containers::
-* Intermediate-level contexts - staves::
-* Bottom-level contexts - voices::
+* Score - the master of all contexts::
+* Top-level contexts - staff containers::
+* Intermediate-level contexts - staves::
+* Bottom-level contexts - voices::
@end menu
@node Score - the master of all contexts
@menu
-* Navigating the program reference::
-* Layout interfaces::
-* Determining the grob property::
-* Naming conventions::
+* Navigating the program reference::
+* Layout interfaces::
+* Determining the grob property::
+* Naming conventions::
@end menu
@node Navigating the program reference
@menu
-* Overview of modifying properties::
-* The \set command::
-* The \override command::
-* \set versus \override::
-* Objects connected to the input::
+* Overview of modifying properties::
+* The set command::
+* The override command::
+* set versus override::
+* The tweak command::
@end menu
@node Overview of modifying properties
@end ifhtml
-@node The \set command
+@node The set command
@subsection The @code{\set} command
@ifhtml
@end ifhtml
-@node The \override command
+@node The override command
@subsection The @code{\override} command
@ifhtml
@end ifhtml
-@node \set versus \override
+@node set versus override
@subsection @code{\set} vs. @code{\override}
@ifhtml
@end ifhtml
-@node Objects connected to the input
-@subsection Objects connected to the input
+@node The tweak command
+@subsection The @code{\tweak} command
@ifhtml
UNTRANSLATED NODE: IGNORE ME
@menu
-* Input modes::
-* Direction and placement::
-* Distances and measurements::
-* Spanners::
+* Input modes::
+* Direction and placement::
+* Distances and measurements::
+* Spanners::
@end menu
@node Input modes
@menu
-* Controlling visibility of objects::
-* Line styles::
-* Rotating objects::
-* Aligning objects::
+* Controlling visibility of objects::
+* Line styles::
+* Rotating objects::
+* Aligning objects::
@end menu
@node Controlling visibility of objects
@menu
-* Removing the stencil::
-* Making objects transparent::
-* Painting objects white::
-* Using break-visibility::
-* Special considerations::
+* Removing the stencil::
+* Making objects transparent::
+* Painting objects white::
+* Using break-visibility::
+* Special considerations::
@end menu
@node Removing the stencil
@menu
-* Vertical grouping of grobs::
-* Modifying ends of spanners::
-* Modifying stencils::
-* Modifying shapes::
+* Vertical grouping of grobs::
+* Modifying ends of spanners::
+* Modifying stencils::
+* Modifying shapes::
@end menu
@node Vertical grouping of grobs
@menu
-* old Contexts explained::
+* old Contexts explained::
@end menu
@node old Contexts explained
@node Changing context default settings
@subsection Changing context default settings
-Los ajustes de las secciones previas ( @ref{The \set command},
+Los ajustes de las secciones previas ( @ref{The set command},
@ref{Modifying context plug-ins} y @ref{Overview of modifying
properties}) también se pueden escribir separados de la música dentro
del bloque @code{\layout}:
@menu
* Overview of modifying properties::
-* The \set command::
-* The \override command::
-* \set versus \override::
-* Objects connected to the input::
+* The set command::
+* The override command::
+* set versus override::
+* The tweak command::
@end menu
abruptas, o las dos cosas.
-@node The \set command
+@node The set command
@subsection The @code{\set} command
@cindex propiedades
-@node The \override command
+@node The override command
@subsection The @code{\override} command
Las instrucciones que modifican la salida tienen por lo general un
Mostraremos a continuación cómo localizar esta información en el
manual de notación y en la referencia de funcionamiento interno.
-@node \set versus \override
+@node set versus override
@subsection @code{\set} vs. @code{\override}
Hemos visto dos formas de cambiar las propiedades: @code{\set} y
(modificada con @code{\set}).
-@node Objects connected to the input
-@subsection Objects connected to the input
+@node The tweak command
+@subsection The @code{\tweak} command
@funindex \tweak
@seealso
Referencia de la notación:
-@ref{List of colors}, @ref{Objects connected to
-the input}.
+@ref{List of colors}, @ref{The
+tweak command}.
Fragmentos de código:
@rlsr{Editorial annotations}.
Las notas de un acorde no se pueden colorear con @code{\override}; en
-su lugar utilice @code{\tweak}. Consulte @ref{Objects connected to
-the input} para ver más detalles.
+su lugar utilice @code{\tweak}. Consulte @ref{The
+tweak command} para ver más detalles.
@node Parentheses
Referencia de la notación:
@ref{Time administration},
@ref{Scaling durations},
-@ref{Objects connected to the input},
+@ref{The tweak command},
@ref{Polymetric notation}.
Fragmentos de código:
@end lilypond
Encontrará más detalles de la instrucción @code{\tweak} en
-@ruser{Objects connected to the input}.
+@ruser{The tweak command}.
Si los grupos anidados no comienzan en el mismo momento, su apariencia
se puede modificar de la forma usual mediante instrucciones
@menu
* Automatic notation::
* Interpretation contexts::
-* The \override command::
+* The override command::
@end menu
possède son propre @code{VerticalAxisGroup}.
-@node The \override command
+@node The override command
@section The @code{\override} command
La commande @code{\override} permet de modifier la mise en page
* Navigating the program reference::
* Layout interfaces::
* Determining the grob property::
-* Objects connected to the input::
-* Using Scheme code instead of \tweak::
-* \set versus \override::
+* The tweak command::
+* Using Scheme code instead of tweak::
+* set versus override::
* Difficult tweaks::
@end menu
@end quotation
-@node Objects connected to the input
-@subsection Objects connected to the input
+@node The tweak command
+@subsection The @code{\tweak} command
@funindex \tweak
Voir pour plus de détails @ref{Displaying music expressions}.
-@node Using Scheme code instead of \tweak
+@node Using Scheme code instead of tweak
@subsection Using Scheme code instead of @code{\tweak}
L'inconvénient principal de la commande @code{\tweak} est la rigidité de sa
@samp{m} lui-même.
-@node \set versus \override
+@node set versus override
@subsection @code{\set} vs. @code{\override}
Si les propriétés peuvent être modifiées de deux façons, par les commandes
Vous ne pouvez pas coloriser des notes à l'intérieur d'un accord avec
@code{\override}. si besoin est, utilisez @code{\tweak}.
-Pour plus de détails, consultez @ref{Objects connected to the input}.
+Pour plus de détails, consultez @ref{The tweak command}.
@node Parentheses
@menu
-* Interpretation contexts::
-* Explaining the Internals Reference::
-* Modifying properties::
-* Useful concepts and properties::
-* Common properties::
-* Advanced tweaks::
-* Discussion of specific tweaks::
+* Interpretation contexts::
+* Explaining the Internals Reference::
+* Modifying properties::
+* Useful concepts and properties::
+* Common properties::
+* Advanced tweaks::
+* Discussion of specific tweaks::
@end menu
This section describes what contexts are, and how to modify them.
@menu
-* Contexts explained::
-* Creating contexts::
-* Modifying context plug-ins::
-* Changing context default settings::
-* Defining new contexts::
-* Aligning contexts::
+* Contexts explained::
+* Creating contexts::
+* Modifying context plug-ins::
+* Changing context default settings::
+* Defining new contexts::
+* Aligning contexts::
@end menu
Contexts are arranged heirarchically:
@menu
-* Score - the master of all contexts::
-* Top-level contexts - staff containers::
-* Intermediate-level contexts - staves::
-* Bottom-level contexts - voices::
+* Score - the master of all contexts::
+* Top-level contexts - staff containers::
+* Intermediate-level contexts - staves::
+* Bottom-level contexts - voices::
@end menu
@node Score - the master of all contexts
@subsection Changing context default settings
The adjustments of the previous subsections (
-@ref{The \set command}, @ref{Modifying context plug-ins}, and
+@ref{The set command}, @ref{Modifying context plug-ins}, and
@ref{Overview of modifying properties}) can also be entered
separately from the music in the @code{\layout} block,
@menu
-* Navigating the program reference::
-* Layout interfaces::
-* Determining the grob property::
-* Naming conventions::
+* Navigating the program reference::
+* Layout interfaces::
+* Determining the grob property::
+* Naming conventions::
@end menu
@node Navigating the program reference
@section Modifying properties
@menu
-* Overview of modifying properties::
-* The \set command::
-* The \override command::
-* \set versus \override::
-* Objects connected to the input::
+* Overview of modifying properties::
+* The set command::
+* The override command::
+* set versus override::
+* The tweak command::
@end menu
-@node The \set command
+@node The set command
@subsection The @code{\set} command
@cindex properties
-@node The \override command
+@node The override command
@subsection The @code{\override} command
Commands which change output generally look like
and the program reference.
-@node \set versus \override
+@node set versus override
@subsection @code{\set} vs. @code{\override}
We have seen two methods of changing properties: @code{\set} and
property (modified with @code{\set}) was created.
-@node Objects connected to the input
-@subsection Objects connected to the input
+@node The tweak command
+@subsection The @code{\tweak} command
TODO: can't use \tweak in a variable
@menu
-* Input modes::
-* Direction and placement::
-* Distances and measurements::
-* Spanners::
+* Input modes::
+* Direction and placement::
+* Distances and measurements::
+* Spanners::
@end menu
@node Input modes
@section Common properties
@menu
-* Controlling visibility of objects::
-* Line styles::
-* Rotating objects::
-* Aligning objects::
+* Controlling visibility of objects::
+* Line styles::
+* Rotating objects::
+* Aligning objects::
@end menu
@c TODO Add new subsection Shapes of objects
considerations.
@menu
-* Removing the stencil::
-* Making objects transparent::
-* Painting objects white::
-* Using break-visibility::
-* Special considerations::
+* Removing the stencil::
+* Making objects transparent::
+* Painting objects white::
+* Using break-visibility::
+* Special considerations::
@end menu
any angle about any point, but the method of doing so differs.
@menu
-* Rotating layout objects::
-* Rotating markup::
+* Rotating layout objects::
+* Rotating markup::
@end menu
@node Rotating layout objects
@section Advanced tweaks
@menu
-* Vertical grouping of grobs::
-* Modifying ends of spanners::
-* Modifying stencils::
-* Modifying shapes::
+* Vertical grouping of grobs::
+* Modifying ends of spanners::
+* Modifying stencils::
+* Modifying shapes::
@end menu
@section Discussion of specific tweaks
@menu
-* old Contexts explained::
+* old Contexts explained::
@end menu
@seealso
Music Glossary:
-@rglos{Figured Bass}.
+@rglos{figured bass}.
Snippets:
@rlsr{Chords}
@c @rlearning{}.
@c Notation Reference:
-@c @ruser{}.
+@c @ref{}.
@c Application Usage:
@c @rprogram{}.
@c @rlearning{}.
@c Notation Reference:
-@c @ruser{}.
+@c @ref{}.
@c Application Usage:
@c @rprogram{}.
@seealso
Notation Reference:
-@ref{List of colors}, @ref{Objects connected to
-the input}.
+@ref{List of colors}, @ref{The
+tweak command}.
Snippets:
@rlsr{Editorial annotations}.
Notes in a chord cannot be colored with @code{\override}; use
-@code{\tweak} instead, see @ref{Objects connected to the input}.
+@code{\tweak} instead, see @ref{The tweak command}.
@node Parentheses
Notation Reference:
@ref{Time administration},
@ref{Scaling durations},
-@ref{Objects connected to the input},
+@ref{The tweak command},
@ref{Polymetric notation}.
Snippets:
@ref{Contexts and engravers}. Here for reference is a list
of the most common object and property types together with
the conventions for naming them and a couple of examples of
-some real names. We have used A to stand for any capitalized
-alphabetic character and aaa to stand for any number of
+some real names. We have used @q{A} to stand for any capitalized
+alphabetic character and @q{aaa} to stand for any number of
lower-case alphabetic characters. Other characters are used
verbatim.
@multitable @columnfractions .33 .33 .33
@headitem Object/property type
@tab Naming convention
- @tab Example
+ @tab Examples
@item Contexts
@tab Aaaa or AaaaAaaaAaaa
@tab Staff, GrandStaff
We have already met the commands @code{\set} and @code{\with},
used to change the properties of @strong{contexts} and to remove
and add @strong{engravers}, in
-@ref{Modifying context properties} and @ref{Adding
+@ref{Modifying context properties}, and @ref{Adding
and removing engravers}. We now must meet some more important
commands.
The general syntax of this command is:
@example
-\override @emph{context}.@emph{layout_object}
- #'@emph{layout_property} = #@emph{value}
+\override @var{Context}.@var{LayoutObject} #'@var{layout-property} = #@var{value}
@end example
@noindent
-This will set the property with the name @emph{layout_property}
+This will set the property with the name @var{layout-property}
of the layout object with the name
-@emph{layout_object}, which is a member of the @emph{context}
-context, to the value @emph{value}.
+@var{LayoutObject}, which is a member of the @var{Context}
+context, to the value @var{value}.
-The @emph{context} can be omitted (and usually is) when the
+The @var{Context} can be omitted (and usually is) when the
required context is unambiguously implied and is one of lowest
level contexts, i.e., @code{Voice}, @code{ChordNames} or
@code{Lyrics}, and we shall omit it in many of the following
commands have been issued.
@example
-\revert @emph{context}.@emph{layout_object} #'@emph{layout_property}
+\revert @var{Context}.@var{LayoutObject} #'@var{layout-property}
@end example
-Again, just like @emph{context} in the @code{\override} command,
-@emph{context} is often not needed. It will be omitted
+Again, just like @var{Context} in the @code{\override} command,
+@var{Context} is often not needed. It will be omitted
in many of the following examples. Here we revert the color
of the note head to the default value for the final two notes:
item in the input stream.
Here's an example. Suppose we wish to change the size of the
-middle note (the E) in a C major chord. Let's first see what
+middle note head (the E) in a C major chord. Let's first see what
@code{\once \override} would do:
@lilypond[quote,fragment,ragged-right,verbatim,relative=1]
<c e g>
@end lilypond
-We see the override affects @emph{all} the notes in the chord.
+We see the override affects @emph{all} the note heads in the chord.
This is because all the notes of a chord occur at the same
@emph{musical moment}, and the action of @code{\once} is to
apply the override to all layout objects of the type specified
The @code{\tweak} command operates in a different way. It acts
on the immediately following item in the input stream. However,
it is effective only on objects which are created directly from
-the input stream, essentially note heads and articulations.
-(Objects such as stems and accidentals are created later and
-cannot be tweaked in this way). Furthermore, when it is applied
+the input stream, essentially note heads and articulations;
+objects such as stems and accidentals are created later and
+cannot be tweaked in this way. Furthermore, when it is applied
to note heads these @emph{must} be within a chord, i.e., within
single angle brackets, so to tweak a single note the @code{\tweak}
command must be placed inside single angle brackets with the
layout object should be specified; in fact, it would generate
an error to do so. These are both implied by the following
item in the input stream. So the general syntax of the
-@code{\tweak} command is simply:
+@code{\tweak} command is simply
@example
-\tweak #'@emph{layout_property} = #@emph{value}
+\tweak #'@var{layout-property} = #@var{value}
@end example
A @code{\tweak} command can also be used to modify just one in
-\tweak #'color #green _Green
@end lilypond
+@noindent
Note that the @code{\tweak} command must be preceded by an
articulation mark as if it were an articulation itself.
}
@end lilypond
-You can find more details of the @code{\tweak} command in
-@ruser{Objects connected to the input}.
-
-If nested tuplets do not begin at the same moment their
+If nested tuplets do not begin at the same moment, their
appearance may be modified in the usual way with
@code{\override} commands:
}
@end lilypond
+@seealso
+
+Notation Reference:
+@ruser{The tweak command}.
+
@node The Internals Reference manual
@section The Internals Reference manual
Let's use a concrete example with a simple fragment of real
music:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
{
\time 6/8
{
The IR for the version of LilyPond you are using may be found
on the LilyPond website at @uref{http://lilypond.org}. Go to the
documentation page and click on the Internals Reference link.
-For learning purposes you should use the standard html version,
+For learning purposes you should use the standard HTML version,
not the @q{one big page} or the PDF. For the next few
paragraphs to make sense you will need to actually do this
as you read.
version of LilyPond, in alphabetic order. Select the link to
Slur, and the properties of Slurs are listed.
-(An alternative way of finding this page is from the Notation
-Reference. On one of the pages that deals with slurs you may
-find a link to the Internals Reference. This link will
-take you directly to this page, but often it is easier to go
-straight to the IR and search there.)
+An alternative way of finding this page is from the Notation
+Reference. On one of the pages that deals with slurs you may find a
+link to the Internals Reference. This link will take you directly to
+this page, but if you have an idea about the name of the layout object
+to be tweaked, it is easier to go straight to the IR and search there.
-This Slur page in the IR tells us first that Slur objects are
-created by the
-Slur_engraver. Then it lists the standard settings. Note
-these are @strong{not} in alphabetic order. Browse down
-them looking for a property that might control the heaviness
-of slurs, and you should find
+This Slur page in the IR tells us first that Slur objects are created
+by the Slur_engraver. Then it lists the standard settings. Note
+these are @strong{not} in alphabetic order. Browse down them looking
+for a property that might control the heaviness of slurs, and you
+should find
@example
@code{thickness} (number)
answer is, @q{Within the music, before the first slur and
close to it.} Let's do that:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
{
\time 6/8
{
@code{\once} must be
repositioned as follows:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
{
\time 6/8
{
@code{\once} placed immediately before each of the notes where
the slurs begin:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
{
\time 6/8
{
to return the @code{thickness} property to its default value
after the second slur:
-@lilypond[quote,fragment,ragged-right,verbatim,relative=2]
+@lilypond[quote,verbatim,relative=2]
{
\time 6/8
{
practice in extracting information from it. These examples will
contain progressively fewer words of guidance and explanation.
+
@node Properties found in interfaces
@subsection Properties found in interfaces