]> git.donarmstrong.com Git - lilypond.git/commitdiff
(Vertical spacing):
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 27 Aug 2004 17:33:49 +0000 (17:33 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 27 Aug 2004 17:33:49 +0000 (17:33 +0000)
corrections

ChangeLog
Documentation/user/changing-defaults.itely
Documentation/user/lilypond.tely
Documentation/user/notation.itely
Documentation/user/scheme-tutorial.itely [new file with mode: 0644]
debian/changelog
debian/control
debian/lilypond-doc.doc-base
debian/rules
scm/define-markup-commands.scm
scm/fret-diagrams.scm

index 5225011b5a7c11cf69158381e7bc2a46ea7e0d78..e55d725ba57b5bc949936828f9afe4dc246eedbb 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-08-27  Han-Wen Nienhuys   <hanwen@xs4all.nl>
+
+       * Documentation/user/changing-defaults.itely (Vertical spacing):
+       corrections
+
 2004-08-27  Graham Percival  <gperlist@shaw.ca>
 
        * Documentation/user/introduction.itely: add note about the "example templates"
index dd86413436ecab64c614367c99f1c903fc725052..25b5a861d058e80326aa758f372107c1da1fa39f 100644 (file)
@@ -11,6 +11,9 @@ list each and every knob. Rather, it outlines what groups of controls
 are available and explains how to lookup which knob to use for a
 certain effect.
 
+
+@cindex Program reference
+
 The controls available for tuning are described in a separate
 document, the @internalsref{Program reference} manual. That manual
 lists all different variables, functions and options available in
@@ -38,269 +41,21 @@ discusses these.
 
 Internally, LilyPond uses Scheme (a LISP dialect) to provide
 infrastructure.  Overriding layout decisions in effect accesses the
-program internals, so it is necessary to learn a (very small) subset
-of Scheme. That is why this chapter starts with a short tutorial on
-entering numbers, lists, strings and symbols in Scheme.
+program internals, which requires Scheme input.  Scheme elements are
+introduced in a @code{.ly} file with the hash mark
+@code{#}.@footnote{@ref{Scheme tutorial} contains a a short tutorial
+on entering numbers, lists, strings and symbols in Scheme.}
 
 
 @menu
-* Scheme tutorial::             
-* File structure::              
 * Interpretation contexts::     
-* Tuning output::               
+* The \override command::       
 * Fonts::                       
 * Text markup::                 
 * Global layout::               
+* File structure::              
 @end menu
 
-@node Scheme tutorial
-@section Scheme tutorial
-
-@cindex Scheme
-@cindex GUILE
-@cindex Scheme, in-line code
-@cindex accessing Scheme
-@cindex evaluating Scheme
-@cindex LISP
-
-LilyPond uses the Scheme programming language, both as part of the
-input syntax, and as internal mechanism to glue together modules of
-the program. This section is a very brief overview of entering data in
-Scheme.@footnote{If you want to know more about Scheme, see
-@uref{http://www.schemers.org}.}
-
-The most basic thing of a language is data: numbers, character
-strings, lists, etc. Here is a list of data types that are relevant to
-LilyPond input.
-
-@table @asis
-@item Booleans
-  Boolean values are True or False. The Scheme for True is @code{#t}
-  and False is @code{#f}.
-@item Numbers
-  Numbers are entered in the standard fashion,
-  @code{1} is the (integer) number one, while @code{-1.5} is a
-  floating point number (a non-integer number). 
-@item Strings
-  Strings are enclosed in double quotes,
-  @example
-    "this is a string"
-  @end example
-
-  Strings may span several lines
-  @example
-    "this
-    is
-    a string"
-  @end example
-
-  Quotation marks and newlines can also be added with so-called escape
-  sequences. The string @code{a said "b"} is entered as
-  @example
-    "a said \"b\""
-  @end example
-
-  Newlines and backslashes are escaped with @code{\n} and @code{\\}
-respectively.
-@end table
-
-
-In a music file, snippets of Scheme code are introduced with the hash
-mark @code{#}. So, the previous examples translated in LilyPond are
-
-@example
-  ##t ##f 
-  #1 #-1.5
-  #"this is a string"
-  #"this
-  is
-  a string"
-@end example
-
-For the rest of this section, we will assume that the data is entered
-in a music file, so we add @code{#}s everywhere.
-
-Scheme can be used to do calculations. It uses @emph{prefix}
-syntax. Adding 1 and 2 is written as @code{(+ 1 2)} rather than the
-traditional 1+2.
-
-@lisp
-  #(+ 1 2)
-   @result{} #3 
-@end lisp
-
-The arrow @result{} shows that the result of evaluating @code{(+ 1 2)}
-is @code{3}.  Calculations may be nested; the result of a function may
-be used for another calculation.
-
-@lisp
-  #(+ 1 (* 3 4))
-   @result{} #(+ 1 12) 
-   @result{} #13
-@end lisp
-
-These calculations are examples of evaluations; an expression like
-@code{(* 3 4)} is replaced by its value @code{12}. A similar thing
-happens with variables. After defining a variable  
-
-@example
-  twelve = #12 
-@end example
-
-variables can also be used in expressions, here
-
-@example
-  twentyFour = #(* 2 twelve) 
-@end example 
-
-the number 24 is stored in the variable @code{twentyFour}.
-
-The @emph{name} of a variable is also an expression, similar to a
-number or a string. It is entered as
-
-@example
-  #'twentyFour
-@end example
-
-The quote mark @code{'} prevents Scheme interpreter from substituting
-@code{24} for the @code{twentyFour}. Instead, we get the name
-@code{twentyFour}.
-
-This syntax will be used very frequently, since many of the layout
-tweaks involve assigning (Scheme) values to internal variables, for
-example
-
-@example
-  \override Stem #'thickness = #2.6
-@end example
-
-This instruction adjusts the appearance of stems. The value @code{2.6}
-is put into a the @code{thickness} variable of a @code{Stem}
-object. This makes stems almost twice as thick as their normal size.
-To distinguish between variables defined in input files (like
-@code{twentyFour} in the example above), and internal variables, we
-will call the latter ``properties.'' So, the stem object has a
-@code{thickness} property.
-
-Two-dimensional offsets (X and Y coordinates) as well as object sizes
-(intervals with a left and right point) are entered as @code{pairs}. A
-pair@footnote{In Scheme terminology, the pair is called @code{cons},
-and its two elements are called car and cdr respectively.}  is entered
-as @code{(first . second)} and, like symbols, they must be quoted,
-
-@example
-  \override TextScript #'extra-offset = #'(1 . 2)  
-@end example 
-
-This assigns the pair (1, 2) to @code{extra-offset} variable of the
-TextScript object. This moves the object 1 staff space to the right,
-and 2 spaces up.
-
-The two elements of a pair may be arbitrary values, for example
-
-@example
-  #'(1 . 2)
-  #'(#t . #f)
-  #'("blah-blah" . 3.14159265)
-@end example
-
-A list is entered by enclosing its elements in parentheses, and adding
-a quote. For example,
-@example
-  #'(1 2 3)
-  #'(1 2 "string" #f)
-@end example
-
-We have been using lists all along.  A calculation, like @code{(+ 1
-2)} is also a list (containing the symbol @code{+} and the numbers 1
-and 2). Normally lists are interpreted as calculations, and the Scheme
-interpreter substitutes the outcome of the calculation. To enter a
-list, we stop evaluation. This is done by quoting the list with a
-quote @code{'} symbol.  For calculations, do not use a quote.
-
-Inside a quoted list or pair, there is no need to quote anymore.  The
-following is a pair of symbols, a list of symbols and a list of lists
-respectively,
-
-@example
-  #'(stem . head)
-  #'(staff clef key-signature)
-  #'((1) (2))
-@end example
-
-@node File structure
-@section File structure
-
-The following items may be present in a @file{.ly} file at toplevel
-
-@itemize @bullet
-@item An output definition, such as @code{\bookpaper}, @code{\midi}
-and @code{\paper}. Such a definition at toplevel changes the default
-settings for the block entered.
-
-@item An @code{\header} block. This sets the global header block. This
-is the block containing the definitions for book-wide settings, like
-composer, title, etc. 
-
-@item An @code{\addquote} statement. See @ref{Quoting other voices}
-for more information.
-
-@item A @code{\score} block. This score will be collected with other
-toplevel scores, and combined as a single @code{\book}.
-
-This behavior can be changed by setting the variable
-@code{toplevel-score-handler} at toplevel.  The default handler is
-defined in the init file @file{scm/lily.scm}.
-
-@item A @code{\book} block formats the block
-
-This behavior can be changed by setting the variable
-@code{toplevel-book-handler} at toplevel.  The default handler is
-defined in the init file @file{scm/lily.scm}.
-
-
-@item A compound music expression, such as
-@example
-  @{ c'4 d' e'2 @}
-@end example
-
-This will add the piece in a @code{\score}, and formats it into a
-single book together with all other toplevel @code{\score}s and music
-expressions.
-This behavior can be changed by setting the variable
-@code{toplevel-music-handler} at toplevel. The default handler is
-defined in the init file @file{scm/lily.scm}.
-@end itemize
-
-The following example shows three things which may be entered at
-toplevel
-@verbatim
-   \paper  {
-     % movements are non-justified by default    
-     raggedright = ##t
-   }
-
-   \header {
-      title = "Do-re-mi"
-   }
-   
-   { c'4 d' e2 }
-@end verbatim
-
-
-At any point in a file, any of the following lexical instructions can
-be entered:
-
-@itemize @bullet
-@item @code{\version}
-@item @code{\include}
-@item @code{\encoding}
-@item @code{\renameinput}
-@end itemize 
-
-
  
 @node Interpretation contexts
 @section Interpretation contexts
@@ -363,7 +118,6 @@ Translation @arrow{} Context.
 * Layout tunings within contexts::  
 * Changing context default settings::  
 * Defining new  contexts::      
-* Which properties to change::  
 @end menu
 
 @node Creating contexts
@@ -523,8 +277,8 @@ context (typically @context{ChordNames}, @context{Voice}, or
 @end lilypond
 
 @noindent
-the @var{context} argument to @code{\set} is left out, and the current
-@internalsref{Voice} is used.
+the @var{context} argument to @code{\set} is left out, so automatic
+beaming is switched off in the current @internalsref{Voice}.
 
 Contexts are hierarchical, so if a bigger context was specified, for
 example @context{Staff}, then the change would also apply to all
@@ -541,21 +295,43 @@ There is also an @code{\unset} command,
 
 @noindent
 which removes the definition of @var{prop}. This command removes
-the definition only if it is set in @var{context}. In
+the definition only if it is set in @var{context}, so
 
 @example
-  \set Staff.autoBeaming = ##f
-  \unset Voice.autoBeaming
+ \set Staff.autoBeaming = ##f
 @end example
 
 @noindent
-the current @context{Voice} does not have the property, and the
-definition at @context{Staff} level remains intact. Like @code{\set},
-the @var{context} argument does not have to be specified for a bottom
-context.
+introduces a property setting at @code{Staff} level. The setting also
+applies to the current @code{Voice}. However,
+
+@example
+ \unset Voice.autoBeaming
+@end example
+
+@noindent
+does not have any effect. To cancel this setting, the @code{\unset}
+must be specified on the same level as the original @code{\set}. In
+other words, undoing the effect of @code{Staff.autoBeaming = ##f}
+requires
+@example
+ \unset Staff.autoBeaming
+@end example
+
+Like @code{\set}, the @var{context} argument does not have to be
+specified for a bottom context, so the two statements
+
+@example
+  \set Voice.autoBeaming = ##t 
+  \set autoBeaming = ##t 
+@end example 
+
+@noindent
+are equivalent.
+
 
 Settings that should only apply to a single time-step can be entered
-easily with @code{\once}, for example in
+with @code{\once}, for example in
 
 @lilypond[verbatim,relative=2,fragment]
   c4
@@ -637,7 +413,7 @@ example which removes @code{Time_signature_engraver} and
 
 In the second stave there are no time signature or clef symbols.  This
 is a rather crude method of making objects disappear since it will affect
-the entire staff. The spacing will be adversely influenced too. A more
+the entire staff. The spacing is adversely influenced too. A more
 sophisticated methods of blanking objects is shown in @ref{Common
 tweaks}.
 
@@ -645,8 +421,9 @@ The next example shows a practical application.  Bar lines and time
 signatures are normally synchronized across the score.  This is done
 by the @code{Timing_engraver}. This plug-in keeps an administration of
 time signature, location within the measure, etc. By moving the
-@code{Timing_engraver} engraver from Score to Staff context, we can
-have a score where each staff has its own time signature.
+@code{Timing_engraver} engraver from @code{Score} to @code{Staff}
+context, we can have a score where each staff has its own time
+signature.
 
 @cindex polymetric scores
 
@@ -712,9 +489,9 @@ appearance.  Here we see the command in action:
   c4
 @end lilypond
 
-The @code{\override} command is executed during the interpreting phase,
-and changes the definition of the @code{Stem} within
-@context{Staff}. After the command all stems are thickened.
+The @code{\override} command changes the definition of the @code{Stem}
+within the current @context{Staff}. After the command is interpreted
+all stems are thickened.
 
 Analogous to @code{\set}, the @var{context} argument may be left out,
 causing it to default to @context{Voice}, and adding @code{\once} applies
@@ -741,7 +518,7 @@ the object is created. In this example,
 @end lilypond
 
 @noindent
-the slur is fatter and the beam is not. This is because the command for
+the slur is fatter but the beam is not. This is because the command for
 @code{Beam} comes after the Beam is started. Therefore it has no effect.
 
 Analogous to @code{\unset}, the @code{\revert} command for a context
@@ -774,20 +551,22 @@ or crashes, or both.
 @node Changing context default settings
 @subsection Changing context default settings
 
-The adjustments of the previous chapters can also be entered separate
+The adjustments of the previous subsections (@ref{Changing context
+properties on the fly}, @ref{Modifying context plug-ins} and
+@ref{Layout tunings within contexts}) can also be entered separate
 from the music, in the @code{\paper} block,
 
 @example
-  \paper @{
-     @dots{}
-     \context @{
-        \Staff
-
-        \set fontSize = #-2
-        \override Stem #'thickness
-        \remove "Time_signature_engraver"
-      @}
-   @}
+\paper @{
+  @dots{}
+  \context @{
+    \Staff
+
+    \set fontSize = #-2
+    \override Stem #'thickness
+    \remove "Time_signature_engraver"
+  @}
+@}
 @end example
 
 Here
@@ -796,23 +575,28 @@ Here
 @end example
 
 @noindent
-takes the existing definition @context{Staff} from the identifier
-@code{Staff}. This works analogously to other contexts.
+takes the existing definition for context @context{Staff} from the
+identifier @code{\Staff}. 
 
 The statements
 @example
-        \set fontSize = #-2
-        \override Stem #'thickness
-        \remove "Time_signature_engraver"
+    \set fontSize = #-2
+    \override Stem #'thickness
+    \remove "Time_signature_engraver"
 @end example
 
 @noindent
 affect all staves in the score.
 
+Other contexts can be modified analogously.
+
 The @code{\set} keyword is optional within the @code{\paper} block, so
 
 @example
+\context @{
+  @dots{}
   fontSize = #-2
+@}
 @end example
 
 @noindent
@@ -822,8 +606,8 @@ will also work.
 
 @refbugs
 
-It is not possible to collect changes in a variable, and apply them to
-one @code{\context} definition by referring to that variable.
+It is not possible to collect context changes in a variable, and apply
+them to one @code{\context} definition by referring to that variable.
 
 
 @node Defining new  contexts
@@ -990,25 +774,9 @@ Then the output at the start of this subsection can be entered as
   
 
     
-@node Which properties to change
-@subsection Which properties to change
 
-
-There are many different properties.  Not all of them are listed in
-this manual. However, the program reference lists them all in the
-section @internalsref{Tunable-context-properties}, and most properties
-are demonstrated in one of the
-@ifhtml
-@uref{../../../../input/test/out-www/collated-files.html,tips-and-tricks}
-@end ifhtml
-@ifnothtml
-tips-and-tricks
-@end ifnothtml
-examples.
-
-
-@node Tuning output
-@section Tuning output
+@node The \override command
+@section The \override command
 
 In the previous section, we have already touched on a command that
 changes layout details, the @code{\override} command. In this section,
@@ -1017,39 +785,6 @@ First, we will give a a few versatile commands, which are sufficient
 for many situations. The next section will discuss general use of
 @code{\override}.
 
-@ignore
-There are situations where default layout decisions are not
-sufficient.  In this section we discuss ways to override these
-defaults.
-
-Formatting is internally done by manipulating so called objects
-(graphic objects). Each object carries with it a set of properties
-(object or layout properties) specific to the object.  For example, a
-stem object has properties that specify its direction, length, and
-thickness.
-
-The most direct way of tuning the output is to alter the values of
-these properties. There are two ways of doing that: First, you can
-temporarily change the definition of one type of object, thus
-affecting a whole set of objects.  Second, you can select one specific
-object, and set a layout property in that object.
-
-Do not confuse layout properties with translation
-properties. Translation properties always use a mixed caps style
-naming, and are manipulated using @code{\set} and @code{\unset}: 
-@example
-  \set Context.propertyName = @var{value}
-@end example
-
-Layout properties are use Scheme style variable naming, i.e.  lower
-case words separated with dashes. They are symbols, and should always
-be quoted using @code{#'}.  For example, this could be an imaginary
-layout property name:
-@example
-  #'layout-property-name
-@end example
-
-@end ignore
 
 @menu
 * Common tweaks::               
@@ -1126,7 +861,8 @@ voice. By introducing a tie in a different voice,
 @end lilypond
 
 @noindent
-and blanking a stem in that voice, the tie appears to cross voices:
+and blanking the first up-stem in that voice, the tie appears to cross
+voices:
 
 @lilypond[fragment,relative=2,verbatim]
   << {
@@ -1189,18 +925,6 @@ means that we have to determine these bits of information:
 We demonstrate how to glean this information from the notation manual
 and the program reference.
 
-The program reference is a set of HTML pages, which is part of the
-documentation package. On Unix systems, it is typically in
-@file{/usr/share/doc/lilypond}. If you have them, it is best to
-bookmark them in your webbrowser, because you will need them.  They
-are also available on the web: go to the
-@uref{http://lilypond.org,LilyPond website}, click ``Documentation'',
-select the correct version, and then click ``Program reference.''
-
-If you have them, use the local HTML files.  They will load faster,
-and they are exactly matched to LilyPond version installed.
-
 @node Navigating the program reference
 @subsection Navigating the program reference
 
@@ -1213,8 +937,8 @@ c-2
 f
 @end lilypond
 
-If you visit the documentation of @code{Fingering} (in @ref{Fingering
-instructions}), you will notice that there is written:
+If you visit the documentation on fingering instructions (in
+@ref{Fingering instructions}), you will notice that there is written:
 
 @quotation
 @seealso
@@ -1223,7 +947,9 @@ Program reference: @internalsref{FingerEvent} and @internalsref{Fingering}.
 
 @end quotation
 
-This  fragments points to two parts of the program reference: a page
+
+
+This fragment points to two parts of the program reference: a page
 on @code{FingerEvent} and on @code{Fingering}.
 
 The page on  @code{FingerEvent} describes the properties of the  music
@@ -1263,7 +989,7 @@ here), or backwards, following links like this:
 @item @internalsref{Fingering_engraver}:
 Music types accepted: @b{@internalsref{fingering-event}}
 @item @internalsref{fingering-event}:
-Music event type @code{fingering-event} is in Music objects of type
+Music event type @code{fingering-event} is in Music expressions named
 @b{@internalsref{FingerEvent}}
 @end itemize
 
@@ -1276,7 +1002,7 @@ contains a chapter on
 @internalsref{Music-definitions},
 @end ifhtml
 @ifnothtml
-Music definitions
+@code{Music definitions}
 @end ifnothtml
 on @internalsref{Translation}, and the @internalsref{Backend}. Every
 chapter lists all the definitions used, and all properties that may be
@@ -1286,10 +1012,14 @@ tuned.
 @node Layout interfaces
 @subsection Layout interfaces
 
-@internalsref{Fingering} is a layout object. Such an object is a
+@cindex interface, layout
+@cindex layout interface
+
+The HTML page which we found in the previous section, describes the
+layout object called @internalsref{Fingering}. Such an object is a
 symbol within the score. It has properties, which store numbers (like
-thicknesses and directions), but also pointers to related objects.
-layout object is also called @emph{grob},
+thicknesses and directions), but also pointers to related objects.  A
+layout object is also called @emph{grob},
 @cindex grob
 which is short for Graphical Object.
 
@@ -1312,7 +1042,7 @@ typographical element. For example, the Fingering object
 has the following aspects
 
 @itemize @bullet
-@item Its size is independent of the horizontal spacing, unlike slurs or beams
+@item Its size is independent of the horizontal spacing, unlike slurs or beams.
 
 @item It is a piece of text. Granted, it's usually  a very short text.
 
@@ -1323,7 +1053,7 @@ center of the notehead
 
 @item The
  vertical position is also coordinated with other super and subscript
-symbols
+symbols.
 @end itemize
 
 Each of these aspects is captured in a so-called @emph{interface},
@@ -1365,9 +1095,10 @@ does not amount to much. The initialization file
   ))
 @end verbatim
 
-as you can see, @code{Fingering} is nothing more than a bunch of
-variable settings, and the webpage is directly generated from this
-definition.
+@noindent
+As you can see, the @code{Fingering} object is nothing more than a
+bunch of variable settings, and the webpage in the Program Reference
+is directly generated from this definition.
 
 @node Determining the grob property
 @subsection Determining the grob property
@@ -1402,7 +1133,7 @@ below this description, the variable @code{padding} is described as
 @item padding
  (dimension, in staff space)
 
add this much extra space between objects that are next to each
Add this much extra space between objects that are next to each
   other. 
 @end table
 @end quotation
@@ -1411,25 +1142,23 @@ By increasing the value of @code{padding}, we can move away the
 fingering.  The following command inserts 3 staff spaces of white
 between the note and the fingering:
 @example
-\once \override Fingering #'padding = #3
+\once \override Voice.Fingering #'padding = #3
 @end example
 
 Inserting this command before the Fingering object is created,
 i.e. before @code{c2}, yields the following result:
 
 @lilypond[relative=2,fragment,verbatim]
-\once \override Fingering
-    #'padding = #3
+\once \override Voice.Fingering #'padding = #3
 c-2
 \stemUp
 f
 @end lilypond
 
 
-In this case, the context for this tweak is @context{Voice}, which
-does not have to be specified for @code{\override}.  This fact can
-also be deduced from the program reference, for the page for the
-@internalsref{Fingering_engraver} plug-in says
+In this case, the context for this tweak is @context{Voice}.  This
+fact can also be deduced from the program reference, for the page for
+the @internalsref{Fingering_engraver} plug-in says
 
 @quotation
   Fingering_engraver is part of contexts: @dots{} @b{@internalsref{Voice}}
@@ -1550,42 +1279,49 @@ is one. For example, if using this with @code{Slur},
 @node Selecting font sizes
 @subsection Selecting font sizes
 
-The most common thing to change about the appearance of fonts is their
-size. The font size of any context can be easily changed by setting
-the @code{fontSize} property for that context.  Its value is a number:
-negative numbers make the font smaller, positive numbers larger. An
-example is given below:
-@c
+
+The easiest method of setting the font size of any context, is by
+setting the @code{fontSize} property.
+
 @lilypond[fragment,relative=1,verbatim]
-  c4 c4 \set fontSize = #-3
-  f4 g4
+  c8
+  \set fontSize = #-4
+  c f
+  \set fontSize = #3
+  g
 @end lilypond
-This command will set @code{font-size} (see below) in all layout
-objects in the current context. It does not change the size of
-variable symbols, such as beams or slurs.
 
-The font size is set by modifying the @code{font-size} property.  Its
-value is a number indicating the size relative to the standard size.
-Each step up is an increase of approximately 12% of the font size. Six
-steps is exactly a factor two. The Scheme function @code{magstep}
-converts a @code{font-size} number to a scaling factor.
+It does not change the size of variable symbols, such as beams or
+slurs.
 
-LilyPond has fonts in different design sizes: the music fonts for
+Internally, the @code{fontSize} context property will cause
+@code{font-size} property to be set in all layout objects.  The value
+of @code{font-size} is a number indicating the size relative to the
+standard size for the current staff height.  Each step up is an
+increase of approximately 12% of the font size. Six steps is exactly a
+factor two. The Scheme function @code{magstep} converts a
+@code{font-size} number to a scaling factor.
+
+@lilypond[fragment,relative=1,verbatim]
+  c8
+  \override NoteHead #'font-size = #-4
+  c f
+  \override NoteHead #'font-size = #3
+  g
+@end lilypond
+
+LilyPond has fonts in different design sizes. The music fonts for
 smaller sizes are chubbier, while the text fonts are relatively wider.
 Font size changes are achieved by scaling the design size that is
-closest to the desired size.
+closest to the desired size. The standard font size (for
+@code{font-size} equals 0), depends on the standard staff height. For
+a 20 pt staff, a 10pt font is selected.
 
 The @code{font-size} mechanism does not work for fonts selected
 through @code{font-name}. These may be scaled with
-@code{font-magnification}.
-
-
-One of the uses of @code{fontSize} is to get smaller symbols for cue
-notes. An elaborate example of those is in
-@inputfileref{input/test,cue-notes.ly}.
-
-@cindex cue notes
-@cindex @code{font-style}
+@code{font-magnification}. The @code{font-size} property can only be
+set on layout objects that use fonts; these are the ones supporting
+@internalsref{font-interface} layout interface.
 
 @refcommands
 
@@ -1607,11 +1343,16 @@ The following commands set @code{fontSize} for the current voice:
 @node Font selection
 @subsection Font selection
 
-Font selection for the standard fonts, @TeX{}'s Computer Modern fonts,
-can also be adjusted with a more fine-grained mechanism.  By setting
-the object properties described below, you can select a different font;
-all three mechanisms work for every object that supports
-@code{font-interface}:
+
+
+@cindex font selection
+@cindex font magnification
+@cindex @code{font-interface}
+
+By setting the object properties described below, you can select a
+font from the preconfigured font families.  LilyPond has default
+support for the feta music fonts and @TeX{}'s Computer Modern text
+fonts.
 
 
 @itemize @bullet
@@ -1667,14 +1408,6 @@ directions.
 Init files: @file{ly/declarations-init.ly} contains hints how new
 fonts may be added to LilyPond.
 
-@refbugs
-
-No style sheet is provided for other fonts besides the @TeX{}
-Computer Modern family.
-
-@cindex font selection
-@cindex font magnification
-@cindex @code{font-interface}
 
 
 @node Text markup
@@ -1685,9 +1418,9 @@ Computer Modern family.
 
 @cindex typeset text
 
-LilyPond has an internal mechanism to typeset texts. You can access it
-with the keyword @code{\markup}. Within markup mode, you can enter texts
-similar to lyrics: simply enter them, surrounded by spaces:
+The internal mechanism to typeset texts is accessed with the keyword
+@code{\markup}. Within markup mode, you can enter texts similar to
+lyrics. They are simply entered, while commands use the backslash @code{\}.
 @cindex markup
 
 @lilypond[verbatim,fragment,relative=1]
@@ -1746,13 +1479,16 @@ effect.
 
 Similarly, for moving whole texts over notes with
 @code{\raise}, use the following trick:
-@example
-  "" \raise #0.5 raised
-@end example
+@lilypond[verbatim]
+{
+  c'^\markup { \raise #0.5 not-raised }
+  c'^\markup {  "" \raise #0.5 raised }
+}
+@end lilypond
 
-The text @code{raised} is now raised relative to the empty string
-@code{""} which is not visible.  Alternatively, complete objects can
-be moved with layout properties such as @code{padding} and
+On the second note, the text @code{raised} is moved relative to the
+empty string @code{""} which is not visible.  Alternatively, complete
+objects can be moved with layout properties such as @code{padding} and
 @code{extra-offset}.
 
 
@@ -1765,17 +1501,12 @@ Init files:  @file{scm/new-markup.scm}.
 
 @refbugs
 
-Text layout is ultimately done by @TeX{}, which does kerning of
-letters.  LilyPond does not account for kerning, so texts will be
-spaced slightly too wide.
+No kerning or generation of ligatures is only done when the by @TeX{}
+backend is used.  In this case, LilyPond does not account for them so
+texts will be spaced slightly too wide.
 
 Syntax errors for markup mode are confusing.
 
-Markup texts cannot be used in the titling of the @code{\header}
-field. Titles are made by La@TeX{}, so La@TeX{} commands should be used
-for formatting.
-
-
 
 @menu
 * Text encoding::               
@@ -1861,6 +1592,8 @@ block.
 @node  Overview of text markup commands
 @subsection Overview of text markup commands
 
+The following commands can all be used inside @code{\markup @{ @}}.
+
 @include markup-commands.tely
 
 
@@ -1870,9 +1603,8 @@ block.
 The global layout determined by three factors: the page layout, the
 line breaks, and the spacing. These all influence each other. The
 choice of spacing determines how densely each system of music is set,
-which influences where line breaks are chosen, and thus
-ultimately how many pages a piece of music takes. This section
-explains how to tune the algorithm for spacing.
+which influences where line breaks are chosen, and thus ultimately how
+many pages a piece of music takes.
 
 Globally spoken, this procedure happens in three steps: first,
 flexible distances (``springs'') are chosen, based on durations. All
@@ -1945,7 +1677,7 @@ The recommended font sizes are listed in the following table:
 @tab song books
 
 @item feta20
-@tab 17.82
+@tab 20
 @tab 7.0
 @tab standard parts 
 
@@ -1988,6 +1720,31 @@ This manual: @ref{Selecting font sizes}.
 * Page layout::                 
 @end menu
 
+
+@node Vertical spacing of piano staves
+@subsection Vertical spacing of piano staves
+
+The distance between staves of a @internalsref{PianoStaff} cannot be
+computed during formatting. Rather, to make cross-staff beaming work
+correctly, that distance has to be fixed beforehand.
+The distance of staves in a @code{PianoStaff} is set with the
+@code{forced-distance} property of the
+@internalsref{VerticalAlignment} object, created in
+@internalsref{PianoStaff}.
+
+It can be adjusted as follows
+@verbatim
+\new PianoStaff \with {
+   \override VerticalAlignment #'forced-distance = #9
+} {
+  ...
+}
+@end example
+This would bring the staves together at a distance of 9 staff spaces,
+measured from the center line of each staff.
+
+
 @node Vertical spacing
 @subsection Vertical spacing
 
@@ -1998,16 +1755,15 @@ This manual: @ref{Selecting font sizes}.
 @cindex staves per page
 @cindex space between staves
 
-The height of each system is determined automatically by LilyPond, to
-keep systems from bumping into each other, some minimum distances are
-set.  By changing these, you can put staves closer together, and thus
-put more  systems onto one page.
+The height of each system is determined automatically. To prevent
+systems from bumping into each other, some minimum distances are set.
+By changing these, you can put staves closer together, and thus put
+more systems onto one page.
 
-Normally staves are stacked vertically. To make
-staves maintain a distance, their vertical size is padded. This is
-done with the property @code{minimumVerticalExtent}. It takes a pair
-of numbers, so if you want to make it smaller from its, then you could
-set
+Normally staves are stacked vertically. To make staves maintain a
+distance, their vertical size is padded. This is done with the
+property @code{minimumVerticalExtent}. It takes a pair of numbers, so
+if you want to make it smaller from its default, then you could set
 @example
   \set Staff.minimumVerticalExtent = #'(-4 . 4)
 @end example
@@ -2016,32 +1772,19 @@ either side of the center staff line.  The argument of
 @code{minimumVerticalExtent} is interpreted as an interval, where the
 center line is the 0, so the first number is generally negative.  The
 staff can be made larger at the bottom by setting it to @code{(-6
-. 4)}.
+. 4)}. 
 
-The piano staves are handled a little differently: to make cross-staff
-beaming work correctly, it is necessary that the distance between staves
-is fixed beforehand.  This is also done with a
-@internalsref{VerticalAlignment} object, created in
-@internalsref{PianoStaff}. In this object the distance between the
-staves is fixed by setting @code{forced-distance}. If you want to
-override this, use a @code{\context} block as follows:
-@example
-  \paper @{
-    \context @{
-      \PianoStaff
-      \override VerticalAlignment #'forced-distance = #9
-    @}
-    @dots{}
-  @}
-@end example
-This would bring the staves together at a distance of 9 staff spaces,
-measured from the center line of each staff.
 
 @seealso
 
 Internals: Vertical alignment of staves is handled by the
 @internalsref{VerticalAlignment} object.
 
+@refbugs
+
+@code{minimumVerticalExtent} is syntactic sugar for setting
+@code{minimum-Y-extent} of the @internalsref{VerticalAxisGroup} of the
+current context. It can only be changed score wide.
 
 
 
@@ -2049,7 +1792,7 @@ Internals: Vertical alignment of staves is handled by the
 @subsection Horizontal Spacing
 
 The spacing engine translates differences in durations into
-stretchable distances (``springs'') of differing lengths. Longer
+stretchable distances (``springs'') of differring lengths. Longer
 durations get more space, shorter durations get less.  The shortest
 durations get a fixed amount of space (which is controlled by
 @code{shortest-duration-space} in the @internalsref{SpacingSpanner} object). 
@@ -2519,3 +2262,94 @@ field from the @code{\header} block on a line.
 
 
 
+@node File structure
+@section File structure
+
+The bigger part of this manual is concerned with entering various
+forms of music in LilyPond. However, many music expressions are not
+valid input on their own, for example, a @code{.ly} file containing
+only a note
+@example
+  c'4
+@end example
+
+@noindent
+will result in a parsing error. Instead, music should be inside other
+expressions, which may be put in a file by themselves. Such
+expressions are called toplevel expressions.  This section enumerates
+them all.
+
+A @code{.ly} file contains any number of toplevel expressions, where a
+toplevel expressions is one of the following
+
+@itemize @bullet
+@item An output definition, such as @code{\bookpaper}, @code{\midi}
+and @code{\paper}. Such a definition at toplevel changes the default
+settings for the block entered.
+
+@item An @code{\header} block. This sets the global header block. This
+is the block containing the definitions for book-wide settings, like
+composer, title, etc. 
+
+@item An @code{\addquote} statement. See @ref{Quoting other voices}
+for more information.
+
+@item A @code{\score} block. This score will be collected with other
+toplevel scores, and combined as a single @code{\book}.
+
+This behavior can be changed by setting the variable
+@code{toplevel-score-handler} at toplevel.  The default handler is
+defined in the init file @file{scm/lily.scm}.
+
+@item
+A @code{\book} block logically combines multiple movements
+(ie. multiple @code{\score} blocks) into one document. A number of
+@code{\scores} creates a single output file, where all movement are
+concatenated..
+
+This behavior can be changed by setting the variable
+@code{toplevel-book-handler} at toplevel.  The default handler is
+defined in the init file @file{scm/lily.scm}.
+
+
+@item A compound music expression, such as
+@example
+  @{ c'4 d' e'2 @}
+@end example
+
+This will add the piece in a @code{\score}, and formats it into a
+single book together with all other toplevel @code{\score}s and music
+expressions.
+This behavior can be changed by setting the variable
+@code{toplevel-music-handler} at toplevel. The default handler is
+defined in the init file @file{scm/lily.scm}.
+@end itemize
+
+The following example shows three things which may be entered at
+toplevel
+@verbatim
+   \paper  {
+     % movements are non-justified by default    
+     raggedright = ##t
+   }
+
+   \header {
+      title = "Do-re-mi"
+   }
+   
+   { c'4 d' e2 }
+@end verbatim
+
+
+At any point in a file, any of the following lexical instructions can
+be entered:
+
+@itemize @bullet
+@item @code{\version}
+@item @code{\include}
+@item @code{\encoding}
+@item @code{\renameinput}
+@end itemize 
+
index 6115d9cbe39ca9bdb2e6857abb467258496ce4f5..6a2bbae5cfa85e8067293f15d6b5eed0cbc85506 100644 (file)
@@ -170,7 +170,8 @@ this and other documentation.
 * Invoking LilyPond::              Operation.
 * Converting from other formats::  Converting to lilypond source format.
 * Integrating text and music::     Integrating text and music with lilypond-book.
-* Unified index::                  
+* Unified index::
+* Scheme tutorial::
 * Notation manual details::
 * Literature list::
 * Cheat sheet::     
@@ -201,6 +202,7 @@ this and other documentation.
 
 @printindex cp
 
+@include scheme-tutorial.itely
 @include notation-appendices.itely
 
 @include literature.itely
index 3dbff1a2103c536e874873570210951845b0d0d3..85936cec8695c861b9918ea0bc85f710559af1ac 100644 (file)
@@ -7202,7 +7202,7 @@ as numbers, and there is a context called @internalsref{FiguredBass} that
 takes care of making @internalsref{BassFigure} objects.
 
 In figures input mode, a group of bass figures is delimited by
-@code{<} and @code{>}. The duration is entered after the @code{>>}
+@code{<} and @code{>}. The duration is entered after the @code{>}
 @example
 <4 6>
 @end example
@@ -7257,11 +7257,12 @@ Slash notation for alterations is not supported.
 
 In the 20th century, composers have greatly expanded the musical
 vocabulary. With this expansion, many innovations in musical notation
-have been tried. The book by Stone (1980) gives a comprehensive
-overview (see @ref{Literature list}). In general, the use of new,
-innovative notation makes a piece harder to understand and perform and
-its use should therefore be avoided if possible.  For this reason,
-support for contemporary notation in LilyPond is limited.
+have been tried. The book ``Music Notation in the 20th century'' by
+Kurt Stone gives a comprehensive overview (see @ref{Literature
+list}). In general, the use of new, innovative notation makes a piece
+harder to understand and perform and its use should therefore be
+avoided.  For this reason, support for contemporary notation in
+LilyPond is limited.
 
 
 @menu
@@ -7424,8 +7425,9 @@ can be denoted as the envelope of a set of notes.  They are entered by
 applying the function @code{makeClusters} to a sequence of
 chords, e.g.
 @c
-@lilypond[quote,relative=2,verbatim]
-\makeClusters {  <c e > <b f'>  }
+@lilypond[quote,verbatim]
+\relative c'' 
+  \makeClusters { <c e > <b f'> }
 @end lilypond
 
 The following example (from
diff --git a/Documentation/user/scheme-tutorial.itely b/Documentation/user/scheme-tutorial.itely
new file mode 100644 (file)
index 0000000..bc3c2b3
--- /dev/null
@@ -0,0 +1,194 @@
+
+
+@node Scheme tutorial
+@appendix Scheme tutorial
+
+@cindex @code{#}
+@cindex Scheme
+@cindex GUILE
+@cindex Scheme, in-line code
+@cindex accessing Scheme
+@cindex evaluating Scheme
+@cindex LISP
+
+LilyPond uses the Scheme programming language, both as part of the
+input syntax, and as internal mechanism to glue together modules of
+the program. This section is a very brief overview of entering data in
+Scheme.@footnote{If you want to know more about Scheme, see
+@uref{http://www.schemers.org}.}
+
+The most basic thing of a language is data: numbers, character
+strings, lists, etc. Here is a list of data types that are relevant to
+LilyPond input.
+
+@table @asis
+@item Booleans
+  Boolean values are True or False. The Scheme for True is @code{#t}
+  and False is @code{#f}.
+@cindex @code{##t}
+@cindex @code{##f}
+@item Numbers
+  Numbers are entered in the standard fashion,
+  @code{1} is the (integer) number one, while @code{-1.5} is a
+  floating point number (a non-integer number). 
+@item Strings
+  Strings are enclosed in double quotes,
+  @example
+    "this is a string"
+  @end example
+
+  Strings may span several lines
+  @example
+    "this
+    is
+    a string"
+  @end example
+
+  Quotation marks and newlines can also be added with so-called escape
+  sequences. The string @code{a said "b"} is entered as
+  @example
+    "a said \"b\""
+  @end example
+
+  Newlines and backslashes are escaped with @code{\n} and @code{\\}
+respectively.
+@end table
+
+
+In a music file, snippets of Scheme code are introduced with the hash
+mark @code{#}. So, the previous examples translated in LilyPond are
+
+@example
+  ##t ##f 
+  #1 #-1.5
+  #"this is a string"
+  #"this
+  is
+  a string"
+@end example
+
+For the rest of this section, we will assume that the data is entered
+in a music file, so we add @code{#}s everywhere.
+
+Scheme can be used to do calculations. It uses @emph{prefix}
+syntax. Adding 1 and 2 is written as @code{(+ 1 2)} rather than the
+traditional 1+2.
+
+@lisp
+  #(+ 1 2)
+   @result{} #3 
+@end lisp
+
+The arrow @result{} shows that the result of evaluating @code{(+ 1 2)}
+is @code{3}.  Calculations may be nested; the result of a function may
+be used for another calculation.
+
+@lisp
+  #(+ 1 (* 3 4))
+   @result{} #(+ 1 12) 
+   @result{} #13
+@end lisp
+
+These calculations are examples of evaluations; an expression like
+@code{(* 3 4)} is replaced by its value @code{12}. A similar thing
+happens with variables. After defining a variable  
+
+@example
+  twelve = #12 
+@end example
+
+@noindent
+variables can also be used in expressions, here
+
+@example
+  twentyFour = #(* 2 twelve) 
+@end example 
+
+@noindent
+the number 24 is stored in the variable @code{twentyFour}.
+The same assignment can be done in completely in Scheme as well,
+
+@example
+  #(define twentyFour (* twelve))
+@end example
+
+The @emph{name} of a variable is also an expression, similar to a
+number or a string. It is entered as
+
+@example
+  #'twentyFour
+@end example
+
+@cindex @code{#'symbol}
+@cindex quoting in Scheme
+
+The quote mark @code{'} prevents Scheme interpreter from substituting
+@code{24} for the @code{twentyFour}. Instead, we get the name
+@code{twentyFour}.
+
+This syntax will be used very frequently, since many of the layout
+tweaks involve assigning (Scheme) values to internal variables, for
+example
+
+@example
+  \override Stem #'thickness = #2.6
+@end example
+
+This instruction adjusts the appearance of stems. The value @code{2.6}
+is put into a the @code{thickness} variable of a @code{Stem}
+object. This makes stems almost twice as thick as their normal size.
+To distinguish between variables defined in input files (like
+@code{twentyFour} in the example above) and variables of internal
+objects, we will call the latter ``properties'' and the former
+``identifiers.'' So, the stem object has a @code{thickness} property,
+while @code{twentyFour} is an identifier.
+
+@cindex properties vs. identifiers
+@cindex identifiers vs. properties 
+
+Two-dimensional offsets (X and Y coordinates) as well as object sizes
+(intervals with a left and right point) are entered as @code{pairs}. A
+pair@footnote{In Scheme terminology, the pair is called @code{cons},
+and its two elements are called @code{car} and @code{cdr} respectively.}  is entered
+as @code{(first . second)} and, like symbols, they must be quoted,
+
+@example
+  \override TextScript #'extra-offset = #'(1 . 2)  
+@end example 
+
+This assigns the pair (1, 2) to the @code{extra-offset} property of the
+TextScript object. This moves the object 1 staff space to the right,
+and 2 spaces up.
+
+The two elements of a pair may be arbitrary values, for example
+
+@example
+  #'(1 . 2)
+  #'(#t . #f)
+  #'("blah-blah" . 3.14159265)
+@end example
+
+A list is entered by enclosing its elements in parentheses, and adding
+a quote. For example,
+@example
+  #'(1 2 3)
+  #'(1 2 "string" #f)
+@end example
+
+We have been using lists all along.  A calculation, like @code{(+ 1
+2)} is also a list (containing the symbol @code{+} and the numbers 1
+and 2). Normally lists are interpreted as calculations, and the Scheme
+interpreter substitutes the outcome of the calculation. To enter a
+list, we stop evaluation. This is done by quoting the list with a
+quote @code{'} symbol.  So, for calculations do not use a quote.
+
+Inside a quoted list or pair, there is no need to quote anymore.  The
+following is a pair of symbols, a list of symbols and a list of lists
+respectively,
+
+@example
+  #'(stem . head)
+  #'(staff clef key-signature)
+  #'((1) (2))
+@end example
+
index b01db3f5581ed6d2a4481c48062760cb9870adcc..7db056c0923fa8363164737d8b5457da47cb4758 100644 (file)
@@ -1,3 +1,53 @@
+lilypond (2.2.6-1) unstable; urgency=high
+
+  * New upstream stable release.  (Closes: Bug#264263)
+  * urgency=high to ensure entrance into Debian Sarge.
+  * Special thanks to Daniel Burrows for the previous NMUs!  :-)
+    (Closes: #257335, #261861)
+  * Added patch by Werner Lemberg to lilypond.py so that Asian scripts
+    may be used with LilyPond.  Need to "apt-get install latex-ucs"!  See
+    http://lists.gnu.org/archive/html/lilypond-devel/2004-07/msg00071.html
+  * Thanks to Ferenc Wagner for letting me know of some packaging bugs
+    that I have introduced over the years:
+     - Removed obsolete MAKE_PFA_FILES=1 from "make" invocations.
+     - s/--enable-optimise/--enable-optimising/;
+     - Removed Build-Depends: autotrace; mftrace prefers potrace.
+  * Let's follow Han-wen's Red Hat SPECS file too: --disable-checking.
+
+ -- Anthony Fok <foka@debian.org>  Thu, 26 Aug 2004 02:30:04 +0800
+
+lilypond (2.2.3-1.3) unstable; urgency=low
+
+  * The doc-base file was coming from upstream!  Kill it dead in
+    debian/rules clean so that it doesn't keep coming back from
+    the grave to haunt me. (Closes: #261861)
+
+ -- Daniel Burrows <dburrows@debian.org>  Mon,  2 Aug 2004 16:03:32 -0400
+
+lilypond (2.2.3-1.2) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Added Replaces: lilypond (<= 2.2.3-1), lilypond-data (<= 2.2.3-1) to
+    lilypond-doc. (Closes: #261861)
+
+ -- Daniel Burrows <dburrows@debian.org>  Wed, 28 Jul 2004 13:08:57 -0400
+
+lilypond (2.2.3-1.1) unstable; urgency=low
+
+  * Non-maintainer upload
+  * Removed doc-base files for the lilypond and lilypond-data packages;
+    moved the description of the info files to the doc-base file of the
+    lilypond-doc package, which actually contains them; corrected the
+    location of the info files in the doc-base file. (Closes: #257335)
+
+ -- Daniel Burrows <dburrows@debian.org>  Sat, 17 Jul 2004 12:55:57 -0400
+
+lilypond (2.2.3-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Anthony Fok <foka@debian.org>  Sun, 27 Jun 2004 16:53:06 +0800
+
 lilypond (2.2.2-2) unstable; urgency=low
 
   * New upstream release.  (Closes: Bug#242861)
@@ -149,7 +199,7 @@ lilypond (1.6.0-1) unstable; urgency=medium
 
   * New upstream release.
   * binary-arch: Changed "DH_OPTIONS=-a" to "DH_OPTIONS=-s" so that
-    dpkg-gencontrol would not 't choke on lilypond1.3 for unlisted
+    dpkg-gencontrol would not choke on lilypond1.3 for unlisted
     architectures.  Thanks to Ryan Murray for the report and suggested
     fix.  (Closes: Bug#157766)
 
index c09439f1a61d12b786e4b2c3b25fae18051be915..5cccf89d89572ad428709f29c3f022202c4f3a6f 100644 (file)
@@ -1,5 +1,5 @@
 Source: lilypond
-Build-Depends: debhelper (>= 4.0.0), binutils (>= 2.11.92.0.10-2), libc6-dev (>= 2.2.4-6) | libc6.1-dev (>= 2.2.4-6) | libc0.2-dev (>= 2.2.4-6), python-dev, guile-1.6-dev | libguile-dev, tetex-bin, libkpathsea-dev, tetex-extra, flex (>= 2.5.4a-14) | flex-old, bison (<< 1:1.50) | bison (>> 1:1.75-1), texinfo (>= 4.6-1), groff, m4, gettext (>= 0.10.36-1), mftrace (>= 1.0.17-1), fontforge | pfaedit (>= 0.0.20031020-3), autotrace (>= 0.29), t1utils, imagemagick (>= 5.4.4.5)
+Build-Depends: debhelper (>= 4.0.0), binutils (>= 2.11.92.0.10-2), libc6-dev (>= 2.2.4-6) | libc6.1-dev (>= 2.2.4-6) | libc0.2-dev (>= 2.2.4-6), python-dev, guile-1.6-dev | libguile-dev, tetex-bin, libkpathsea-dev, tetex-extra, flex (>= 2.5.4a-14) | flex-old, bison (<< 1:1.50) | bison (>> 1:1.75-1), texinfo (>= 4.6-1), groff, m4, gettext (>= 0.10.36-1), mftrace (>= 1.0.17-1), fontforge | pfaedit (>= 0.0.20031020-3), t1utils, imagemagick (>= 5.4.4.5)
 Build-Depends-Indep: gs-esp | gs (<= 7.07-1), netpbm (>= 2:9.10-1)
 Build-Conflicts-Indep: gs-gpl (>= 8.01) | gs-afpl
 Section: tex
@@ -55,6 +55,7 @@ Package: lilypond-doc
 Section: doc
 Architecture: all
 Suggests: lilypond (>= ${Source-Version}), gv | postscript-viewer, mozilla-browser | www-browser
+Replaces: lilypond (<= 2.2.3-1), lilypond-data (<= 2.2.3-1)
 Description: LilyPond Documentation in HTML, PS and DVI formats
  This package contains the HTML, PostScript and DVI documentation for the
  LilyPond music typesetting software.
index e31177e6790a51da60c7ea8f481c6928ab506e71..709d1e6aa5a3e378a119d094ab44218297f9ebb4 100644 (file)
@@ -1,4 +1,4 @@
-Document: lilypond-doc
+Document: lilypond
 Title: GNU LilyPond, the music typesetter
 Author: Various
 Abstract: This documentation describes LilyPond (the GNU Project music
@@ -9,3 +9,7 @@ Section: Apps/Music
 Format: HTML
 Index: /usr/share/doc/lilypond/html/index.html
 Files: /usr/share/doc/lilypond/html/*.html /usr/share/doc/lilypond/html/Documentation/out-www/*.html  /usr/share/doc/lilypond/html/Documentation/*/out-www/*.html
+
+Format: info
+Index: /usr/share/info/lilypond/lilypond.info.gz
+Files: /usr/share/info/lilypond/lilypond.info* /usr/share/info/lilypond/lilypond-internals.info* /usr/share/info/lilypond/music-glossary.info.gz
index 04b677b0852383bd698634588020c42cd9afec4f..51df150a5b7500153b0785a166c28dfb0d839f72 100644 (file)
@@ -41,11 +41,11 @@ build: build-stamp
 build-stamp:
        dh_testdir
 
-       ./configure --enable-checking --enable-debugging \
-               --prefix=/usr --enable-optimise \
+       ./configure --disable-checking --enable-debugging \
+               --prefix=/usr --enable-optimising \
                --infodir='$${prefix}/share/info' \
                --mandir='$${prefix}/share/man'
-       $(MAKE) MAKE_PFA_FILES=1
+       $(MAKE)
 
        touch build-stamp
 
@@ -75,6 +75,7 @@ clean:
        rm -f debian/emacsen-startup
        rm -f debian/lilypond1.7*.dirs debian/lilypond.dirs
        rm -f debian/postinst debian/prerm debian/postrm
+       rm -f debian/lilypond-data.doc-base debian/lilypond.doc-base
 
        dh_clean
 
@@ -86,7 +87,7 @@ install: build
        dh_installdirs
 
        # Add here commands to install the package into debian/tmp.
-       $(MAKE) install prefix=$(CURDIR)/debian/tmp/usr MAKE_PFA_FILES=1
+       $(MAKE) install prefix=$(CURDIR)/debian/tmp/usr
 
        dh_install --sourcedir=debian/tmp --list-missing
 
index c334a6514b0cc8badd6391967aa954621dd69a79..69da77fe4f68a8bae6cdf441f54161cf5e2f67f6 100644 (file)
@@ -37,7 +37,8 @@
     (interpret-markup paper props str))
 
 (def-markup-command (encoded-simple paper props sym str) (symbol? string?)
-  "A text string, encoded with encoding @var{sym}. "
+  "A text string, encoded with encoding @var{sym}. See
+@usermanref{Text encoding} for more information."
   (Text_item::interpret_string paper
                               props sym str))
 
@@ -175,7 +176,7 @@ Use @code{\\fontsize} otherwise."
   (interpret-markup paper (prepend-alist-chain 'font-series 'bold props) arg))
 
 (def-markup-command (sans paper props arg) (markup?)
-  "Switch to the sans-serif family"
+  "Switch to the sans serif family"
   (interpret-markup paper (prepend-alist-chain 'font-family 'sans props) arg))
 
 (def-markup-command (number paper props arg) (markup?)
@@ -213,12 +214,12 @@ some punctuation. It doesn't have any letters.  "
   (interpret-markup paper (prepend-alist-chain 'font-size -3 props) arg))
 
 (def-markup-command (caps paper props arg) (markup?)
-  "Set font shape to @code{caps}."
+  "Set @code{font-shape} to @code{caps}."
   (interpret-markup paper (prepend-alist-chain 'font-shape 'caps props) arg))
 
-(def-markup-command (latin-i paper props arg) (markup?)
-  "TEST latin1 encoding."
-  (interpret-markup paper (prepend-alist-chain 'font-shape 'latin1 props) arg))
+;(def-markup-command (latin-i paper props arg) (markup?)
+;  "TEST latin1 encoding."
+;  (interpret-markup paper (prepend-alist-chain 'font-shape 'latin1 props) arg))
 
 (def-markup-command (dynamic paper props arg) (markup?)
   "Use the dynamic font.  This font only contains @b{s}, @b{f}, @b{m},
@@ -326,9 +327,9 @@ of the @code{#'direction} layout property."
   ))
 
 (def-markup-command (halign paper props dir arg) (number? markup?)
-  "Set horizontal alignment. If @var{dir} is -1, then it is
-left-aligned, while+1 is right. Values in between interpolate alignment
-accordingly."
+  "Set horizontal alignment. If @var{dir} is @code{-1}, then it is
+left-aligned, while @code{+1} is right. Values in between interpolate
+alignment accordingly."
 
   
   (let* ((m (interpret-markup paper props arg)))
@@ -352,7 +353,7 @@ See @usermanref{The Feta font} for  a complete listing of the possible glyphs.
                          glyph-name))
 
 (def-markup-command (char paper props num) (integer?)
-  "This produces a single character, e.g. @code{\\char #65} produces the 
+  "Produce a single character, e.g. @code{\\char #65} produces the 
 letter 'A'."
   (ly:get-glyph (ly:paper-get-font paper props) num))
 
@@ -483,7 +484,7 @@ a shortened down stem."
     (note-by-number-markup paper props (car parsed) (cadr parsed) dir)))
 
 (def-markup-command (normal-size-super paper props arg) (markup?)
-  "A superscript which does not use a smaller font."
+  "Set @var{arg} in superscript with a normal font size."
   
   (ly:stencil-translate-axis (interpret-markup
                                paper
@@ -528,7 +529,8 @@ surroundings. This command cannot be used to move isolated scripts
 vertically, for the same reason that @code{\\raise} cannot be used for
 that.
 
-. "
+"
+  
   (ly:stencil-translate (interpret-markup  paper props arg)
                          offset))
 
@@ -614,16 +616,17 @@ markup."
         (m (interpret-markup paper props arg)))
     (box-stencil m th pad)))
 
-(def-markup-command (strut paper props) ()
-  
-  "Create a box of the same height as the space in the current font.
+(if #f
+    (def-markup-command (strut paper props) ()
+      
+      "Create a box of the same height as the space in the current font.
 
 FIXME: is this working? 
 "
-  
-  (let ((m (Text_item::interpret_markup paper props " ")))
-    (ly:stencil-set-extent! m X '(1000 . -1000))
-    m))
+      
+      (let ((m (Text_item::interpret_markup paper props " ")))
+       (ly:stencil-set-extent! m X '(1000 . -1000))
+       m)))
 
 (define number->mark-letter-vector (make-vector 25 #\A))
 
index 6b9a7ad3e4f3eaabf9b56f64c813ca95ed906d0f..82a7ffdea6696f5c4f1e402b699621267635764c 100644 (file)
@@ -303,8 +303,6 @@ with magnification @varr{mag} of the string @var{text}."
   (list?)
   "Make a fret diagram containing the symbols indicated in @var{marking-list}
   
-  Syntax: \\fret-diagram   marking-list
-  
   For example,
   
 @example
@@ -391,9 +389,12 @@ part of the place-fret element is present, @var{finger-value} will be displayed
          
 (def-markup-command (fret-diagram paper props definition-string)
   (string?)
-  "Syntax: \\fret-diagram definition-string
-  
-eg: \\markup \\fret-diagram #\"s:0.75;6-x;5-x;4-o;3-2;2-3;1-2;\"
+  "  
+Example
+
+@example
+ \\markup \\fret-diagram #\"s:0.75;6-x;5-x;4-o;3-2;2-3;1-2;\"
+@end example
 
 for fret spacing 3/4 of staff space, D chord diagram
 
@@ -521,9 +522,11 @@ Note:  There is no limit to the number of fret indications per string.
   (string?)
   "Make a fret diagram markup using terse string-based syntax.
 
-Syntax: \\fret-diagram-terse definition-string
-
-eg: \\markup \\fret-diagram #\"x;x;o;2;3;2;\" for a D chord diagram.
+Example
+@example
+ \\markup \\fret-diagram #\"x;x;o;2;3;2;\" 
+@end example
+for a D chord diagram.
 
 Syntax rules for @var{definition-string}:
 @itemize @bullet