]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/refman.itely
* Documentation/user/lilypond-book.itely: small cleanups
[lilypond.git] / Documentation / user / refman.itely
index e1066287e30552c91186011a9ad9b01f7227cdbe..aa864ff09675a1e3807a30ed5d558b441091a113 100644 (file)
@@ -296,6 +296,14 @@ Durations can also be produced through GUILE extension mechanism.
 @end lilypond
 
 
+@refbugs
+
+Dot placement for chords is not perfect.  In some cases, dots overlap:
+@lilypond[]
+ \context Voice { <f,4. c'' d e f> }
+@end lilypond
+
+
 @node Ties
 @subsection Ties
 
@@ -344,6 +352,8 @@ of a chord is not supported in a simple way.  It can be achieved by
 moving the tie-engraver into the Thread context and turning on and off
 ties per Thread.
 
+Switching staffs when a tie is active will not work.
+
 @node Automatic note splitting 
 @subsection Automatic note splitting
 @c FIXME: This subsection doesn't belong in @ref{Note entry}.
@@ -451,7 +461,7 @@ readable.
 @cindex ghostscript
 
 If you view the result with Xdvi, then staff lines will show through
-the letters.  Printing the postscript file obtained with ly2dvi does
+the letters.  Printing the PostScript file obtained with ly2dvi does
 produce the correct result.
 
 
@@ -481,27 +491,39 @@ find and correct mistakes.
 @cindex NoteEdit
 @cindex MIDI
 
-One way to avoid entering notes using the keyboard, is to use  a
+One way to avoid entering notes using the keyboard is to use a
 graphical user interface.  The following programs are known to have
 a lilypond export option:
 
 @itemize @bullet
 @item
-@uref{http://denemo.sourceforge.net/, Denemo}, was once intended as
-LilyPond graphical user interface.  It run on Gnome/GTK.
+Denemo was once intended as
+a LilyPond graphical user interface.  It run on Gnome/GTK.
+
+@quotation
+@uref{http://denemo.sourceforge.net/}
+@end  quotation
+
 @item
-@uref{http://rnvs.informatik.tu-chemnitz.de/~jan/noteedit/noteedit.html,noteedit}
-NoteEdit is a graphical score editor that runs under KDE/Qt.
+ Noteedit, a graphical score editor that runs under KDE/Qt.
+@quotation
+@uref{http://rnvs.informatik.tu-chemnitz.de/~jan/noteedit/noteedit.html,}
+@end quotation
+
 @item
-@uref{http://rosegarden.sf.net/,RoseGarden}
-once was an inspiration for naming LilyPond. Nowadays, it has been
-rewritten from scratch, and supports LilyPond export as of version
-0.1.6.
+RoseGarden was once the inspiration for naming LilyPond.  Nowadays it
+has been rewritten from scratch and supports LilyPond export as of
+version 0.1.6.
+
+@quotation
+@uref{http://rosegarden.sf.net/}
+@end quotation
 @end itemize
 
 Another option is to enter the music using your favorite MIDI
 sequencer, and then import it using midi2ly. midi2ly is described in
-@ref{Importing MIDI}.
+@ref{Invoking midi2ly}.
+
 
 @c .  {Relative}
 @node Relative octaves
@@ -569,7 +591,7 @@ want to use relative within transposed music, you must place an
 additional @code{\relative} inside the @code{\transpose}.
 
 
-@c .  {Bar check}
+@c . {Bar check}
 @node Bar check
 @subsection Bar check
 @cindex Bar check
@@ -614,24 +636,59 @@ To use it, you need the following software
 @itemize @bullet
 @item A dvi viewer that supports src specials.
 @itemize @bullet
-@item Plain Xdvi, version 22.36 or newer.  Available from
+@item Xdvi, version 22.36 or newer.  Available from
 @uref{ftp://ftp.math.berkeley.edu/pub/Software/TeX/xdvi.tar.gz,ftp.math.berkeley.edu}.
 
-  Note that most @TeX{} distributions ship with xdvik, which is a
-  different and less well maintained program. To find out which xdvi you
-  are running, try @code{xdvi --version} or @code{xdvi.bin --version}.
+  Note that most @TeX{} distributions ship with xdvik, which is always
+  a few versions behind the official Xdvi. To find out which xdvi you
+  are running, try @code{xdvi -version} or @code{xdvi.bin -version}.
 @item KDVI.  A dvi viewer for KDE.  You need KDVI from KDE 3.0 or
-newer.  Enablle the menu Settings -> Inverse search. 
+newer.  Enable option @emph{Inverse search} in the menu @emph{Settings}.
+
+@cindex Xdvi
+@cindex KDVI
+@cindex KDE
+
+
+
 @end itemize
-@item An editor with a client/server interface (or a lightweight GUI editor).
+@item An editor with a client/server interface (or a lightweight GUI
+editor).
+
+@cindex editor
+
 @itemize @bullet
 @item Emacs. Emacs is an extensible text-editor.  It is available from
 @uref{http://www.gnu.org/software/emacs/}.  You need version 21 to use
 column location.
+
+@c move this elsewhere?
+
+LilyPond also comes with support files for emacs: lilypond-mode for
+emacs provides indentation, syntax coloring and handy compile
+short-cuts. If lilypond-mode is not installed on your platform, then
+refer to the installation instructions for more information
+
+@cindex emacs
+@cindex emacs mode
+@cindex lilypond-mode for emacs
+@cindex syntax coloring
+
+@item XEmacs. Xemacs is very similar to emacs.
+
+@cindex XEmacs
+
 @item NEdit.  NEdit runs under Windows, and Unix.
   It is available from @uref{http://www.nedit.org}.
-@item GVim.  GVim is a lightweight GUI variant of VIM, the popular VI
+
+@cindex NEdit
+
+@item GVim.  GVim is a GUI variant of VIM, the popular VI
 clone.  It is available from @uref{http://www.vim.org}.
+
+@cindex GVim
+@cindex Vim
+
 @end itemize
 @end itemize
 
@@ -642,7 +699,7 @@ fonts. Refer to the Xdvi documentation for more information.
 To use point-and-click, add one of these lines to the top of your .ly
 file.
 @example
-#(set! point-and-click line-location)
+#(set-point-and-click! 'line)
 @end example
 @cindex line-location
 
@@ -666,10 +723,13 @@ Make sure that the environment variable @var{XEDITOR} is set to
 emacsclient --no-wait +%l %f
 @end example
 @cindex @var{XEDITOR}
-For using Vim, set @var{XEDITOR} to @code{gvim +%l %f}, or use this
+If you use xemacs instead of emacs, you use @code{(gnuserve-start)} in
+your @file{.emacs}, and set @code{XEDITOR} to @code{gnuclient -q +%l %f}
+
+For using Vim, set @code{XEDITOR} to @code{gvim --remote +%l %f}, or use this
 argument with xdvi's @code{-editor} option.
 @cindex NEdit
-For using NEdit, set @var{XEDITOR} to @code{nc -noask +%l %f}, or
+For using NEdit, set @code{XEDITOR} to @code{nc -noask +%l %f}, or
 use this argument with xdvi's @code{-editor} option.
 
 If can also make your editor jump to the exact location of the note
@@ -679,10 +739,10 @@ apply @file{server.el.patch} (version 21.2 and earlier).  At the top
 of the @code{ly} file, replace the @code{set!} line with the following
 line,
 @example
-#(set! point-and-click line-column-location)
+#(set-point-and-click! 'line-column)
 @end example
 @cindex line-colomn-location
-and set @var{XEDITOR} to @code{emacsclient --no-wait +%l:%c %f}.
+and set @code{XEDITOR} to @code{emacsclient --no-wait +%l:%c %f}.
 
 @refbugs
 
@@ -719,6 +779,7 @@ such as keys, clefs and time signatures.
 @cindex Staff notation
 
 @menu
+* Staff symbol::
 * Key signature::               
 * Clef::                        
 * Time signature::              
@@ -726,6 +787,31 @@ such as keys, clefs and time signatures.
 * Bar lines::                   
 @end menu
 
+@node Staff symbol
+@subsection Staff symbol
+
+
+@cindex adjusting staff symbol
+@cindex StaffSymbol, using \property
+@cindex staff lines, setting number of
+
+
+The lines of the staff symbol are formed by the
+@internalsref{StaffSymbol} grob.  This grob is created at the moment
+that their context is created.  You can not change the appearance of
+the staff symbol by using @code{\override} or @code{\set}.  At the
+moment that @code{\property Staff} is interpreted, a Staff context is
+made, and the StaffSymbol is created before any @code{\override} is
+effective. You can deal with this either overriding properties in a
+@code{\translator} definition, or by using @code{\outputproperty}.
+
+
+@refbugs
+
+If you end a staff half way a piece, the staff symbol may not end
+exactly on the barline.
+
+
 @c .  {Key}
 @node Key signature
 @subsection Key signature
@@ -1150,6 +1236,14 @@ the grob property @code{auto-knee-gap}.
 
 Auto knee beams can not be used together with hara kiri staffs.
 
+[TODO from bugs]
+
+The Automatic beamer does not put @strong{unfinished} beams on the
+last notes of a score.
+
+Formatting of ties is a difficult subject. LilyPond often does not
+give optimal results.
+
 @menu
 * Setting automatic beam behavior ::  
 @end menu
@@ -1256,12 +1350,12 @@ automatic beaming. This is done by setting @code{Voice.autoBeaming} to
 It is not possible to specify beaming parameters for beams with mixed
 durations, that differ from the beaming parameters of all separate
 durations, i.e., you'll have to specify manual beams to get:
-@lilypond[fragment,singleline,relative]
+
+@lilypond[singleline,fragment,relative,noverbatim]
   \property Voice.autoBeamSettings
   \override #'(end * * * *) = #(make-moment 3 8)
   \time 12/8 c'8 c c c16 c c c c c [c c c c] c8 c c4
 @end lilypond
-
 It is not possible to specify beaming parameters that act differently in
 different parts of a measure. This means that it is not possible to use
 automatic beaming in irregular meters such as @code{5/8}.
@@ -1284,7 +1378,8 @@ quite hairy, so non-experts should stick to the macros defined in
 @file{ly/property-init.ly}.
 @cindex @file{property-init.ly}
 
-The normal way of using the macros is to enter the macro name right after the
+The macros operate on the ``Current'' context (see @ref{Context properties}). This
+means that the macros shuold normally be invoked right after the
 creation of the context in which the accidental typesetting described
 by the macro is to take effect. I.e. if you want to use
 piano-accidentals in a pianostaff then you issue
@@ -1695,6 +1790,7 @@ articulation. They are demonstrated here.
       c''4-|_"c-|"      s4
       c''4->_"c->"      s4
       c''4-^_"c-\\^{ }" s4
+      c''4-__"c-\_" s4      
     }
   }
 @end lilypond
@@ -1716,7 +1812,8 @@ using @code{^} and @code{_}.
 @cindex staccatissimo
 @cindex fermata 
 @cindex stopped     
-@cindex staccato     
+@cindex staccato
+@cindex portato
 @cindex tenuto        
 @cindex upbow
 @cindex downbow
@@ -1745,7 +1842,8 @@ using @code{^} and @code{_}.
       \property Score.LyricText \override #'font-shape = #'upright
       \context Staff \notes {
         c''-\accent      c''-\marcato      c''-\staccatissimo c''^\fermata 
-        c''-\stopped     c''-\staccato     c''-\tenuto        c''-\upbow
+        c''-\stopped     c''-\staccato     c''-\tenuto         c''-\portato
+        c''-\upbow
         c''-\downbow     c''^\lheel        c''-\rheel         c''^\ltoe
         c''-\rtoe        c''-\turn         c''-\open          c''-\flageolet
         c''-\reverseturn c''-\trill        c''-\prall         c''-\mordent
@@ -1755,7 +1853,8 @@ using @code{^} and @code{_}.
       }
       \context Lyrics \lyrics {
         accent__      marcato__      staccatissimo__ fermata
-        stopped__     staccato__     tenuto__        upbow
+        stopped__     staccato__     tenuto__        portato
+        upbow
         downbow__     lheel__        rheel__         ltoe
         rtoe__        turn__         open__          flageolet
         reverseturn__ trill__        prall__         mordent
@@ -1820,8 +1919,8 @@ c4^"longtext" \fatText c4_"longlongtext" c4 }
 It is possible to use @TeX{} commands in the strings, but this should be
 avoided because it makes it impossible for LilyPond to compute the
 exact length of the string, which may lead to collisions.  Also, @TeX{}
-commands won't work with direct PostScript output (see @ref{PostScript
-output}).
+commands won't work with direct PostScript output.
+@c (see @ref{PostScript output}).
 
 Text scripts are created in form of @internalsref{TextScript} grobs, in
 @internalsref{Voice} context. 
@@ -1901,6 +2000,17 @@ standard definitions are in @file{ly/grace-init.ly}.
 }
 @end lilypond
 
+If you want to end a note with a grace note, then the standard trick
+is to put the grace notes before a phantom ``space note'', e.g.
+@lilypond[fragment,verbatim, relative=2]
+\context Voice {
+    < { d1^\trill ( }
+     { s2 \grace { [c16 d] } } >
+   )c4
+}
+@end lilypond
+
+
 @refbugs
 
 Grace note synchronization can also lead to surprises. Staff notation,
@@ -2836,7 +2946,6 @@ tuning defaults to the standard guitar tuning (with 6 strings).
   >  
 @end lilypond
 
-
 @node Non-guitar tablatures
 @subsection Non-guitar tablatures
 @cindex Non-guitar tablatures
@@ -2867,12 +2976,14 @@ A common trick for that is to put the notes in a variables, and to hide
 the fingering information (which correspond to the string number) for
 the standard staff.
 
-@lilypond[verbatim]
-  part = \notes {
+@c FIXME
+@c @lily pond[verbatim]
+@example
+  part = \notes @{
     a,4-2 c'-5 a-4 e'-6
     e-3 c'-5 a-4 e'-6
-  }
-  \score{
+  @}
+  \score @{
     \context StaffGroup <
       \context Staff <
         % Hide fingering number
@@ -2886,9 +2997,9 @@ the standard staff.
         \part
       >
     >
-  }
-@end lilypond
-
+  @}
+@end example
+@c @end lilypond
 
 @c . {Chords}
 @node Chords
@@ -3171,7 +3282,6 @@ To print a  rehearsal mark, use the @code{\mark} command.
   c1 \mark \default 
   c1 \mark "12"
   c1 \mark \default
-  c1 \mark #'(music "scripts-segno") 
   c1
 }
 @end lilypond
@@ -3183,6 +3293,28 @@ is @internalsref{RehearsalMark} in @internalsref{Score} context. See
 @code{input/test/boxed-molecule.ly} if you need boxes around the
 marks.
 
+The @code{\mark} command can also be used to put signs like coda,
+segno and fermatas on a barline.  The trick is to use the text markup
+mechanism to access the fermata symbol.
+@lilypond[fragment,verbatim,relative=1]
+  c1 \mark #'(music "scripts-ufermata") 
+  c1
+@end lilypond
+
+The problem is that marks that occur at a line break are typeset only
+at the beginning of the next line, opposite to what you want for the
+fermata. This can be corrected by the following property setting
+@example
+\property Score.RehearsalMark \override
+  #'visibility-lambda = #begin-of-line-invisible
+@end example
+
+@cindex fermatas
+@cindex coda
+@cindex segno
+@cindex barlines, putting symbols on 
+
+
 @node Bar numbers
 @subsection Bar numbers
 
@@ -3802,20 +3934,6 @@ The backend is not very strict in type-checking grob properties. If you
 LilyPond may crash.
 
 
-@cindex adjusting staff symbol
-@cindex StaffSymbol, using \property
-@cindex staff lines, setting number of
-
-Some grobs are created at the moment that their context is created. An
-example of such a grob is the staff itself (i.e. the horizontal lines).
-You can not change the appearance of the staff symbol by manipulating
-@code{\property Staff.StaffSymbol}.  At the moment that @code{\property
-Staff} is interpreted, a Staff context is made, and the StaffSymbol is
-created before any @code{\override} is effective. You can deal with this
-either overriding properties in a @code{\translator} definition, or by
-using @code{\outputproperty}.
-
-
 
 
 @node Tuning per grob 
@@ -4019,7 +4137,7 @@ abbrev: @code{columns lines roman music bold italic named super sub}
 The markup is broken down and converted into a list of grob properties,
 which are prepended to the property list.  The @var{key}-@var{value}
 pair is a grob property. A list of properties available is included in
-the generated documentation for @rint{Text_interface}.
+the generated documentation for @internalsref{text-interface}.
 
 The following abbreviations are defined:
 @table @code
@@ -4083,7 +4201,8 @@ marking:
 
 \score {
   \notes\relative c'' {
-    a1^#`((columns (font-relative-size . -1)) ,dotted-eight-note " = 64")
+    a1^#`((columns (font-relative-size . -1))
+           ,dotted-eight-note " = 64")
   }
   \paper {
     linewidth = -1.
@@ -4100,6 +4219,11 @@ marking:
 The syntax and semantics of markup texts are not clean, and both
 syntax and semantics are slated for a rewrite.
 
+LilyPond does not do kerning, and there generally spaces texts
+slightly too wide.
+
+
+
 @node Global layout
 @section Global layout
 
@@ -4327,6 +4451,10 @@ you can force an invisible bar line by entering @code{\bar
 ""}. Similarly, @code{\noBreak} forbids a line break at a certain
 point.
 
+
+@cindex regular line breaks
+@cindex four bar music. 
+
 If you want linebreaks at regular intervals, you can use the following:
 @example
 <  \repeat 7 unfold @{ s1 * 4 \break  @}
@@ -4368,6 +4496,16 @@ that case @code{interscoreline} specifies the minimum spacing.
 @cindex @code{interscoreline}
 @cindex @code{interscorelinefill}
 
+If the variable @code{lastpagefill} is defined (that is, it gets any
+value assigned in the @code{\paper} block), systems are evenly
+distributed vertically on the last page.  This might produce ugly
+results in case there are not enough systems on the last page.  Note
+that @command{lilypond-book} ignores @code{lastpagefill}.  See
+@ref{lilypond-book: integrating text and music} for
+more information.
+
+@cindex @code{lastpagefill}
+
 Page breaks are normally computed by @TeX{}, so they are not under
 direct control of LilyPond.  However, you can insert a commands into
 the @file{.tex} output to instruct @TeX{} where to break pages. You