]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.3.114
authorfred <fred>
Wed, 27 Mar 2002 00:34:10 +0000 (00:34 +0000)
committerfred <fred>
Wed, 27 Mar 2002 00:34:10 +0000 (00:34 +0000)
Documentation/hacking.texi
Documentation/user/refman.itely

index 1377ebe9e92f3ff7b6d10126b86ec238db83adf6..a3c35674006c51ebe1c5f33aa460cc53976a8554 100644 (file)
@@ -348,7 +348,7 @@ for example
 Offset callbacks can be stacked. The callbacks will be executed in the
 order that they were added.
 
-Width and height are similarly implemted using extent callbacks. There
+Width and height are similarly implemented using extent callbacks. There
 can be only one callback for each axis. No callback (the 0 ptr) means:
 "empty in this direction".
 
index 7b36399dcac7b9319ef6760af44b31e5938f0940..92b5299069095185e802473f3b35b8d77221d935 100644 (file)
@@ -2617,4 +2617,67 @@ provide shorthands for some settings.  Most of them are in
 
 @node  Grobs, , , Reference Manual
 
+This section is about Grobs (short for Graphical Objects), which are
+formatting objects used to create  the final output. This material is
+normally the domain of LilyPond gurus, but occasionally,  a normal user
+also has to deal with grobs.
 
+The most simple interaction with Grobs are when you use
+@code{\override}:
+
+@example
+        \property Voice.Stem \override #'direction = #1
+@end example
+
+This piece of lily input causes all stem objects to be stem-up
+henceforth.  In effect, you are telling lilypond to extend the defintion
+of the "Stem" grob with the setting @code{direction := 1}.  Of course
+there are many more ways of customizing Lily output, and since most of
+them involve Grobs in some form, this section explains some details of
+how grobs work.
+
+Types of grob?
+
+What is a grob?
+
+Where do they come from?
+
+How can you override?
+
+Items and Spanners?
+
+X and Y parents, offsets and extents.
+
+
+@node Molecule, , , Reference Manual
+
+The objective of any typesetting system is to put ink on paper in the
+right places. For LilyPond, this final stage is left to the TeX and the
+printer subsystem. For lily, the last stage in processing a score is
+outputting a description of what to put where.  This description roughly
+looks like
+
+@example
+        PUT glyph AT (x,y)
+        PUT glyph AT (x,y)
+        PUT glyph AT (x,y) 
+@end example
+
+you merely have to look at the tex output of lily to see this.
+Internally these instructions are encoded in Molecules:@footnote{At some
+point LilyPond also contained Atom-objects, but they have been replaced
+by Scheme expressions.}.  A molecule is an object that combines
+dimension information (how large is this ?) with what-to-print-where.
+
+Conceptually, Molecules can be constructed from Scheme code, by
+translating a Molecule and by combining two molecules. In BNF notation:
+
+@example
+ Molecule = COMBINE Molecule Molecule
+           | TRANSLATE Offset Molecule
+          | GLYPH-DESCRIPTION
+          ;
+@end example
+
+(refer to the C++ code for more details). All visible,
+ie. non-transparent, grobs have a function to create Molecule.