From: Han-Wen Nienhuys Date: Sun, 10 Oct 2004 19:55:37 +0000 (+0000) Subject: * Documentation/user/invoking.itely (Reporting bugs): rename. X-Git-Tag: release/2.3.22~3 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=31101e53e0ae7ce209fc1cfef10b202ed496f4df;p=lilypond.git * Documentation/user/invoking.itely (Reporting bugs): rename. * lily/slur-scoring.cc (move_away_from_staffline): new function. (get_base_attachments): move away attachment point for breaks similar to attachment points on slurs (staffline collision, and half a space of padding) --- diff --git a/ChangeLog b/ChangeLog index 08762cc1e5..f8cbc8df83 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2004-10-10 Han-Wen Nienhuys + * Documentation/user/invoking.itely (Reporting bugs): rename. + * lily/lexer.ll (Lily_lexer): bump version req to 2.3.22. * lily/parser.yy (Prefix_composite_music): change no-transposition @@ -7,7 +9,7 @@ * lily/phrasing-slur-engraver.cc (acknowledge_grob): do something with normal slurs too. - + * lily/slur-scoring.cc (move_away_from_staffline): new function. (get_base_attachments): move away attachment point for breaks similar to attachment points on slurs (staffline collision, and diff --git a/Documentation/user/examples.itely b/Documentation/user/examples.itely index aec99a45df..cb36c0c3cf 100644 --- a/Documentation/user/examples.itely +++ b/Documentation/user/examples.itely @@ -39,7 +39,7 @@ problems: @itemize @bullet @item Include @code{\version} numbers in every file. Note that all -templates contain a @code{\version "2.3.16"} string. We +templates contain a @code{\version "2.3.22"} string. We highly recommend that you always include the @code{\version}, no matter how small your file is. Speaking from personal experience, it's quite frustrating to try to remember which version of LilyPond you were @@ -76,7 +76,7 @@ add notes, and you're finished! @lilypond[verbatim,raggedright] -\version "2.3.16" +\version "2.3.22" melody = \relative c' { \clef treble \key c \major @@ -103,7 +103,7 @@ line. @lilypond[verbatim,raggedright] -\version "2.3.16" +\version "2.3.22" melody = \relative c' { \clef treble \key c \major @@ -136,7 +136,7 @@ Want to prepare a lead sheet with a melody and chords? Look no further! @lilypond[verbatim,raggedright] -\version "2.3.16" +\version "2.3.22" melody = \relative c' { \clef treble \key c \major @@ -171,7 +171,7 @@ This template allows you to prepare a song with melody, words, and chords. @lilypond[verbatim,raggedright] -\version "2.3.16" +\version "2.3.22" melody = \relative c' { \clef treble \key c \major @@ -214,7 +214,7 @@ Here is a simple piano staff. @lilypond[verbatim,raggedright] -\version "2.3.16" +\version "2.3.22" upper = \relative c'' { \clef treble \key c \major @@ -250,7 +250,7 @@ piano accompaniment underneath. @lilypond[verbatim,raggedright] -\version "2.3.16" +\version "2.3.22" melody = \relative c'' { \clef treble \key c \major @@ -310,7 +310,7 @@ tweaking yourself. @lilypond[verbatim,raggedright] -\version "2.3.16" +\version "2.3.22" upper = \relative c'' { \clef treble \key c \major @@ -403,7 +403,7 @@ section for time and key signatures. @lilypond[verbatim,raggedright] -\version "2.3.16" +\version "2.3.22" global = { \time 4/4 \key c \major @@ -456,7 +456,7 @@ always the same for all parts. @lilypond[verbatim,raggedright] -\version "2.3.16" +\version "2.3.22" global = { \key c \major \time 4/4 @@ -538,7 +538,7 @@ staves rather than on the staves. @lilypond[verbatim,raggedright] -\version "2.3.16" +\version "2.3.22" global = { % incipit @@ -771,7 +771,7 @@ is within a @code{\transpose} section. @lilypond[verbatim,raggedright] -\version "2.3.16" +\version "2.3.22" \header { title = "Song" subtitle = "(tune)" @@ -1038,7 +1038,7 @@ violin concerto as TchaikovskyPI, whereas perhaps you wish to print @lilypond[verbatim,raggedright] -\version "2.3.16" +\version "2.3.22" \header { dedication = "dedication" title = "Title" diff --git a/Documentation/user/invoking.itely b/Documentation/user/invoking.itely new file mode 100644 index 0000000000..1d0f91e29c --- /dev/null +++ b/Documentation/user/invoking.itely @@ -0,0 +1,484 @@ +@c -*-texinfo-*- +@node Running LilyPond +@chapter Running LilyPond + +This chapter details the technicalities of running LilyPond. + + +@menu +* Invoking lilypond:: +* Error messages:: +* Reporting bugs:: +* Editor support:: +* Invoking lilypond-latex:: +@end menu + +@node Invoking lilypond +@section Invoking lilypond +@cindex Invoking LilyPond +@cindex command line options +@cindex options, command line +@cindex switches + + +The @code{lilypond} may be called as follows from the command line. + +@example + lilypond [@var{option}]@dots{} @var{file}@dots{} +@end example + + +When invoked with a filename that has no extension, the @file{.ly} +extension is tried first. To read input from stdin, use a +dash @code{-} for @var{file}. + +When @file{filename.ly} is processed it will produce +@file{filename.tex} as output (or @file{filename.ps} for PostScript +output). If @file{filename.ly} contains more than one @code{\score} +block, then the rest of the scores will be output in numbered files, +starting with @file{filename-1.tex}. Several files can be specified; +they will each be processed independently. @footnote{The status of +GUILE is not reset after processing a @code{.ly} files, so be careful +not to change any system defaults from within Scheme.} + + +@section Command line options + +The following options are supported: + +@table @code + +@item -e,--evaluate=@var{expr} +Evaluate the Scheme @var{expr} before parsing any @file{.ly} files. +Multiple @code{-e} options may be given, they will be evaluated +sequentially. The function @code{ly:set-option} allows for access to +some internal variables. Use @code{-e '(ly:option-usage)'} for more +information. + +@item -f,--format=@var{format} +@c +@c +A comma separated list of back-end output formats to use. Choices are +@code{tex} (for @TeX{} output, to be processed with La@TeX{}, and +@code{ps} for PostScript. + +There are other output options, but they are intended for developers. + + +@cindex output format, setting +@cindex PostScript output +@cindex Scheme dump + +@item -h,--help +Show a summary of usage. +@item --include, -I=@var{directory} +Add @var{directory} to the search path for input files. +@cindex file searching +@cindex search path +@item -i,--init=@var{file} +Set init file to @var{file} (default: @file{init.ly}). +@item -o,--output=@var{FILE} + Set the default output file to @var{FILE}. +@item --ps + Generate PostScript. +@item --dvi + Generate DVI files. In this case, the @TeX{} backend should be + specified, i.e. @code{-f tex}. +@item --png + Generate pictures of each page, in PNG format. This implies @code{--ps}. +@item --pdf + Generate PDF. This implies @code{--ps}. +@item --preview + Generate an output file containing the titles and the first system +of the score. + +@item -s,--safe +Do not trust the @code{.ly} input. + +When LilyPond formatting is available through a web server, the +@code{--safe} @b{MUST} be passed. This will prevent inline Scheme +code from wreaking havoc, for example + +@verbatim + #(system "rm -rf /") + { + c4^#(ly:export (ly:gulp-file "/etc/passwd")) + } +@end verbatim + +The @code{--safe} option works by evaluating in-line Scheme +expressions in a special safe module. This safe module is derived from +GUILE @file{safe-r5rs} module, but adds a number of functions of the +LilyPond API. These functions are listed in @file{scm/safe-lily.scm}. + +In addition, @code{--safe} disallows @code{\include} directives and +disables the use of backslashes in @TeX{} strings. + +In @code{--safe} mode, it is not possible to import LilyPond variables +into Scheme. + +@item -v,--version +Show version information. +@item -V,--verbose +Be verbose: show full paths of all files read, and give timing +information. + +@item -w,--warranty +Show the warranty with which GNU LilyPond comes. (It comes with +@strong{NO WARRANTY}!) +@end table + +@section Environment variables + + +For processing both the @TeX{} and the PostScript output, the +appropriate environment variables must be set. The following scripts +do this: + +@itemize @bullet +@item @file{buildscripts/out/lilypond-profile} +(for SH shells) +@item @file{buildscripts/out/lilypond-login} (for C-shells) +@end itemize + +They should normally be sourced as part of the login process. If these +scripts are not run from the system wide login process, then you must +run it yourself. + +@cindex installing LilyPond + +If you use sh, bash, or a similar shell, then add the following to +your @file{.profile}: +@example + . @var{/the/path/to/}lilypond-profile +@end example + +If you use csh, tcsh or a similar shell, then add the following to +your @file{~/.login}: +@example + source @var{/the/path/to/}lilypond-login +@end example + +Of course, in both cases, you should substitute the proper location of +either script. + +These scripts set the following variables: +@table @code +@item TEXMF + To make sure that @TeX{} and lilypond find data files (among +others @file{.tex}, @file{.mf} and @file{.tfm}), +you have to set @code{TEXMF} to point to the lilypond data +file tree. A typical setting would be +@example +@{/usr/share/lilypond/1.6.0,@{!!/usr/share/texmf@}@} +@end example + +@end table + + +@cindex PostScript +@cindex TEXMF +@cindex printing postscript + +The binary itself recognizes the following environment variables: +@table @code +@item LILYPONDPREFIX +This specifies a directory where locale messages and +data files will be looked up by default. The directory should contain +subdirectories called @file{ly/}, @file{ps/}, @file{tex/}, etc. + +@item LANG +This selects the language for the warning messages. +@end table + +@cindex LANG +@cindex LILYPONDPREFIX + +@node Error messages +@section Error messages + +@cindex error messages +Different error messages can appear while compiling a file: + +@table @emph +@cindex warning + +@item Warning + Something looks suspect. If you are requesting something out of the +ordinary then you will understand the message, and can ignore it. +However, warnings usually indicate that something is wrong with the +input file. + +@item Error +Something is definitely wrong. The current processing step (parsing, +interpreting, or formatting) will be finished, but the next step will +be skipped. + +@cindex error +@cindex fatal error +@item Fatal error +Something is definitely wrong, and LilyPond cannot continue. This +happens rarely. The most usual cause is misinstalled fonts. + +@cindex trace, Scheme +@cindex call trace +@cindex Scheme error +@item Scheme error +Errors that occur while executing Scheme code are caught by the Scheme +interpreter. If running with the verbose option (@code{-V} or +@code{--verbose}) then a call trace is printed of the offending +function call. + +@cindex Programming error +@item Programming error +There was some internal inconsistency. These error messages are +intended to help the programmers and debuggers. Usually, they can be +ignored. Sometimes, they come in such big quantities that they obscure +other output. In this case, file a bug-report. + +@item Aborted (core dumped) +This signals a serious programming error that caused the program to +crash. Such errors are considered critical. If you stumble on one, +send a bugreport. + + +@end table + +@cindex errors, message format +If warnings and errors can +be linked to some part of the input file, then error messages have the +following form + +@example + @var{filename}:@var{lineno}:@var{columnno}: @var{message} + @var{offending input line} +@end example + +A line-break is inserted in offending line to indicate the column +where the error was found. For example, + +@example +test.ly:2:19: error: not a duration: 5: + @{ c'4 e'5 + g' @} +@end example + +These locations are LilyPond's best guess about where the warning or +error occured, but (by their very nature) warning and errors occur +when something unexpected happens. If you can't see an error in the +indicated line of your input file, try checking one or two lines +above the indicated position. + + +@node Reporting bugs +@section Reporting bugs + +@cindex bugs +@cindex reporting bugs + +If you have input that results in a crash or an erroneous output, then +that is a bug. We try respond to bug-reports promptly, and fix them as +soon as possible. Help us by sending a defective input file, so we can +reproduce the problem. Make it small, so we can easily debug the +problem. Don't forget to tell which version of LilyPond you use! Send +the report to @email{bug-lilypond@@gnu.org}. + +When you've found a bug, have a look at our +@uref{http://lilypond.org/doc/v2.3/bugs/,bug database} to see if it +has already been reported. You could also try doing a few searches +on the mailing list for the bug. Sometimes the bug will have already +been reported and a fix or workaround is already known. + +Here is an example of a good bug report: + +@verbatim + +It seems that placement of accidentals is broken. In the +following example, the accidental touches the note head. + +Using Mac OSX 10.3.5, fink package lilypond-unstable + +\version "2.3.22" +\relative c''{ + a4 b cis d +} +@end verbatim + +@lilypond +\version "2.3.22" +\relative c''{ + \override Accidental #'extra-offset = #'(1.0 . 0) + a4 b cis d +} +@end lilypond + +@node Editor support +@section Editor support + +@cindex editors +@cindex vim +@cindex emacs +@cindex modes, editor +@cindex syntax coloring +@cindex coloring, syntax + +There is support from different editors for LilyPond. + +@table @asis +@item Emacs +Emacs has a @file{lilypond-mode}, which provides keyword +autocompletion, indentation, LilyPond specific parenthesis matching +and syntax coloring, handy compile short-cuts and reading LilyPond +manuals using Info. If @file{lilypond-mode} is not installed on your +platform, then read the +@ifhtml +@uref{../../../topdocs/out-www/INSTALL.html,installation instructions}. +@end ifhtml +@ifnothtml +installation instructions. +@end ifnothtml + +@item VIM + +For @uref{http://www.vim.org,VIM}, a @file{vimrc} is supplied, along with +syntax coloring tools. For more information, refer to the +@ifhtml +@uref{../../../topdocs/out-www/INSTALL.html,installation instructions}. +@end ifhtml +@ifnothtml +installation instructions. +@end ifnothtml + + +@item JEdit + +There exists a plugin for @uref{http://www.jedit.org/,jEdit}. Refer to +the @uref{http://lily4jedit.sourceforge.net,plugin website} for more +information. + +@end table + +For both VIM and Emacs editors, there is also a facility to jump in +the input file to the source of errors in the graphical output. See +@ref{Point and click}. + + + + +@node Invoking lilypond-latex +@section Invoking lilypond-latex + +Before LilyPond 3.0, the @code{lilypond} program only generated music +notation. Titles and page layout was done in a separate wrapper +program. For compatibility with older files, this wrapper program has +been retained as @code{lilypond-latex}. It uses the LilyPond program +and La@TeX{} to create a nicely titled piece of sheet music. Use of +this program is only necessary if the input file contains special +La@TeX{} options or formatting codes in markup texts. + +The @code{lilypond-latex} wrapper is invoked from the command-line as +follows +@example + @code{lilypond-latex} [@var{option}]@dots{} @var{file}@dots{} +@end example + +To have @code{lilypond-latex} read from stdin, use a dash @code{-} for +@var{file}. The program supports the following options. + +@cindex stdin, reading + +@table @code +@item -k,--keep + Keep the temporary directory with all output +files. The temporary directory is created in the current directory as @code{@code{lilypond}.dir}. +@item -h,--help + Print usage help. +@item -I,--include=@var{dir} + Add @var{dir} to LilyPond's include path. +@item -o,--output=@var{file} + Generate output to @var{file}. The extension of @var{file} is ignored. +@item --png + Also generate pictures of each page, in PNG format. +@item --preview + Also generate a picture of the first system of the score. + +@cindex preview +@cindex picture +@cindex bitmap +@cindex pixmap +@cindex thumbnail +@cindex screen shot + +@item -s,--set=@var{key}=@var{val} + Add @var{key}= @var{val} to the settings, overriding those specified +in the files. Possible keys: @code{language}, @code{latexheaders}, +@code{latexpackages}, @code{latexoptions}, @code{papersize}, +@code{linewidth}, @code{orientation}, +@code{textheight}. +@item -v,--version +Show version information. +@item -V,--verbose +Be verbose. This prints out commands as they are executed, and more +information about the formatting process is printed. +@item --debug +Print even more information. This is useful when generating bug reports. +@item -w,--warranty +Show the warranty with which GNU LilyPond comes. (It comes with +@strong{NO WARRANTY}!) +@end table + + + +@subsection Additional parameters + +The @code{lilypond} program responds to several parameters specified +in a @code{\layout} section of the input file. They can be overridden +by supplying a @code{--set} command line option. + +@table @code +@item language + Specify La@TeX{} language: the @code{babel} package will be +included. Default: unset. + + Read from the @code{\header} block. + +@item latexheaders + Specify additional La@TeX{} headers file. + Normally read from the @code{\header} block. Default value: empty. + +@item latexpackages + Specify additional La@TeX{} packages file. This works cumulative, +so you can add multiple packages using multiple @code{-s=latexpackages} options. + Normally read from the @code{\header} block. Default value: +@code{geometry}. + +@item latexoptions + Specify additional options for the La@TeX{} +@code{\documentclass}. You can put any valid value here. This was +designed to allow @code{lilypond} to produce output for double-sided +paper, with balanced margins and page numbers on alternating sides. To +achieve this specify @code{twoside}. + +@item orientation + Set orientation. Choices are @code{portrait} or @code{landscape}. Is +read from the @code{\layout} block, if set. + +@item textheight + The vertical extension of the music on the page. It is normally + calculated automatically, based on the paper size. + +@item linewidth + The music line width. It is normally read from the @code{\layout} +block. + +@item papersize + The paper size (as a name, e.g. @code{a4}). It is normally read from +the @code{\layout} block. + +@item fontenc + The font encoding, should be set identical to the @code{font-encoding} + property in the score. +@end table + + + diff --git a/Documentation/user/invoking.itexi b/Documentation/user/invoking.itexi deleted file mode 100644 index 9cb51848b7..0000000000 --- a/Documentation/user/invoking.itexi +++ /dev/null @@ -1,484 +0,0 @@ -@c -*-texinfo-*- -@node Running LilyPond -@chapter Running LilyPond - -This chapter details the technicalities of running LilyPond. - - -@menu -* Invoking lilypond:: -* Error messages:: -* Reporting bugs:: -* Editor support:: -* Invoking lilypond-latex:: -@end menu - -@node Invoking lilypond -@section Invoking lilypond -@cindex Invoking LilyPond -@cindex command line options -@cindex options, command line -@cindex switches - - -The @code{lilypond} may be called as follows from the command line. - -@example - lilypond [@var{option}]@dots{} @var{file}@dots{} -@end example - - -When invoked with a filename that has no extension, the @file{.ly} -extension is tried first. To read input from stdin, use a -dash @code{-} for @var{file}. - -When @file{filename.ly} is processed it will produce -@file{filename.tex} as output (or @file{filename.ps} for PostScript -output). If @file{filename.ly} contains more than one @code{\score} -block, then the rest of the scores will be output in numbered files, -starting with @file{filename-1.tex}. Several files can be specified; -they will each be processed independently. @footnote{The status of -GUILE is not reset after processing a @code{.ly} files, so be careful -not to change any system defaults from within Scheme.} - - -@section Command line options - -The following options are supported: - -@table @code - -@item -e,--evaluate=@var{expr} -Evaluate the Scheme @var{expr} before parsing any @file{.ly} files. -Multiple @code{-e} options may be given, they will be evaluated -sequentially. The function @code{ly:set-option} allows for access to -some internal variables. Use @code{-e '(ly:option-usage)'} for more -information. - -@item -f,--format=@var{format} -@c -@c -A comma separated list of back-end output formats to use. Choices are -@code{tex} (for @TeX{} output, to be processed with La@TeX{}, and -@code{ps} for PostScript. - -There are other output options, but they are intended for developers. - - -@cindex output format, setting -@cindex PostScript output -@cindex Scheme dump - -@item -h,--help -Show a summary of usage. -@item --include, -I=@var{directory} -Add @var{directory} to the search path for input files. -@cindex file searching -@cindex search path -@item -i,--init=@var{file} -Set init file to @var{file} (default: @file{init.ly}). -@item -o,--output=@var{FILE} - Set the default output file to @var{FILE}. -@item --ps - Generate PostScript. -@item --dvi - Generate DVI files. In this case, the @TeX{} backend should be - specified, i.e. @code{-f tex}. -@item --png - Generate pictures of each page, in PNG format. This implies @code{--ps}. -@item --pdf - Generate PDF. This implies @code{--ps}. -@item --preview - Generate an output file containing the titles and the first system -of the score. - -@item -s,--safe -Do not trust the @code{.ly} input. - -When LilyPond formatting is available through a web server, the -@code{--safe} @b{MUST} be passed. This will prevent inline Scheme -code from wreaking havoc, for example - -@verbatim - #(system "rm -rf /") - { - c4^#(ly:export (ly:gulp-file "/etc/passwd")) - } -@end verbatim - -The @code{--safe} option works by evaluating in-line Scheme -expressions in a special safe module. This safe module is derived from -GUILE @file{safe-r5rs} module, but adds a number of functions of the -LilyPond API. These functions are listed in @file{scm/safe-lily.scm}. - -In addition, @code{--safe} disallows @code{\include} directives and -disables the use of backslashes in @TeX{} strings. - -In @code{--safe} mode, it is not possible to import LilyPond variables -into Scheme. - -@item -v,--version -Show version information. -@item -V,--verbose -Be verbose: show full paths of all files read, and give timing -information. - -@item -w,--warranty -Show the warranty with which GNU LilyPond comes. (It comes with -@strong{NO WARRANTY}!) -@end table - -@section Environment variables - - -For processing both the @TeX{} and the PostScript output, the -appropriate environment variables must be set. The following scripts -do this: - -@itemize @bullet -@item @file{buildscripts/out/lilypond-profile} -(for SH shells) -@item @file{buildscripts/out/lilypond-login} (for C-shells) -@end itemize - -They should normally be sourced as part of the login process. If these -scripts are not run from the system wide login process, then you must -run it yourself. - -@cindex installing LilyPond - -If you use sh, bash, or a similar shell, then add the following to -your @file{.profile}: -@example - . @var{/the/path/to/}lilypond-profile -@end example - -If you use csh, tcsh or a similar shell, then add the following to -your @file{~/.login}: -@example - source @var{/the/path/to/}lilypond-login -@end example - -Of course, in both cases, you should substitute the proper location of -either script. - -These scripts set the following variables: -@table @code -@item TEXMF - To make sure that @TeX{} and lilypond find data files (among -others @file{.tex}, @file{.mf} and @file{.tfm}), -you have to set @code{TEXMF} to point to the lilypond data -file tree. A typical setting would be -@example -@{/usr/share/lilypond/1.6.0,@{!!/usr/share/texmf@}@} -@end example - -@end table - - -@cindex PostScript -@cindex TEXMF -@cindex printing postscript - -The binary itself recognizes the following environment variables: -@table @code -@item LILYPONDPREFIX -This specifies a directory where locale messages and -data files will be looked up by default. The directory should contain -subdirectories called @file{ly/}, @file{ps/}, @file{tex/}, etc. - -@item LANG -This selects the language for the warning messages. -@end table - -@cindex LANG -@cindex LILYPONDPREFIX - -@node Error messages -@section Error messages - -@cindex error messages -Different error messages can appear while compiling a file: - -@table @emph -@cindex warning - -@item Warning - Something looks suspect. If you are requesting something out of the -ordinary then you will understand the message, and can ignore it. -However, warnings usually indicate that something is wrong with the -input file. - -@item Error -Something is definitely wrong. The current processing step (parsing, -interpreting, or formatting) will be finished, but the next step will -be skipped. - -@cindex error -@cindex fatal error -@item Fatal error -Something is definitely wrong, and LilyPond cannot continue. This -happens rarely. The most usual cause is misinstalled fonts. - -@cindex trace, Scheme -@cindex call trace -@cindex Scheme error -@item Scheme error -Errors that occur while executing Scheme code are caught by the Scheme -interpreter. If running with the verbose option (@code{-V} or -@code{--verbose}) then a call trace is printed of the offending -function call. - -@cindex Programming error -@item Programming error -There was some internal inconsistency. These error messages are -intended to help the programmers and debuggers. Usually, they can be -ignored. Sometimes, they come in such big quantities that they obscure -other output. In this case, file a bug-report. - -@item Aborted (core dumped) -This signals a serious programming error that caused the program to -crash. Such errors are considered critical. If you stumble on one, -send a bugreport. - - -@end table - -@cindex errors, message format -If warnings and errors can -be linked to some part of the input file, then error messages have the -following form - -@example - @var{filename}:@var{lineno}:@var{columnno}: @var{message} - @var{offending input line} -@end example - -A line-break is inserted in offending line to indicate the column -where the error was found. For example, - -@example -test.ly:2:19: error: not a duration: 5: - @{ c'4 e'5 - g' @} -@end example - -These locations are LilyPond's best guess about where the warning or -error occured, but (by their very nature) warning and errors occur -when something unexpected happens. If you can't see an error in the -indicated line of your input file, try checking one or two lines -above the indicated position. - - -@node Reporting bugs -@section Reporting bugs - -@cindex bugs -@cindex reporting bugs - -If you have input that results in a crash or an erroneous output, then -that is a bug. We try respond to bug-reports promptly, and fix them as -soon as possible. Help us by sending a defective input file, so we can -reproduce the problem. Make it small, so we can easily debug the -problem. Don't forget to tell which version of LilyPond you use! Send -the report to @email{bug-lilypond@@gnu.org}. - -When you've found a bug, have a look at our -@uref{http://lilypond.org/doc/v2.3/bugs/,bug database} to see if it -has already been reported. You could also try doing a few searches -on the mailing list for the bug. Sometimes the bug will have already -been reported and a fix or workaround is already known. - -Here is an example of a good bug report: - -@verbatim - -It seems that placement of accidentals is broken. In the -following example, the accidental touches the note head. - -Using Mac OSX 10.3.5, fink package lilypond-unstable - -\version "2.3.16" -\relative c''{ - a4 b cis d -} -@end verbatim - -@lilypond -\version "2.3.16" -\relative c''{ - \override Accidental #'extra-offset = #'(1.0 . 0) - a4 b cis d -} -@end lilypond - -@node Editor support -@section Editor support - -@cindex editors -@cindex vim -@cindex emacs -@cindex modes, editor -@cindex syntax coloring -@cindex coloring, syntax - -There is support from different editors for LilyPond. - -@table @asis -@item Emacs -Emacs has a @file{lilypond-mode}, which provides keyword -autocompletion, indentation, LilyPond specific parenthesis matching -and syntax coloring, handy compile short-cuts and reading LilyPond -manuals using Info. If @file{lilypond-mode} is not installed on your -platform, then read the -@ifhtml -@uref{../../../topdocs/out-www/INSTALL.html,installation instructions}. -@end ifhtml -@ifnothtml -installation instructions. -@end ifnothtml - -@item VIM - -For @uref{http://www.vim.org,VIM}, a @file{vimrc} is supplied, along with -syntax coloring tools. For more information, refer to the -@ifhtml -@uref{../../../topdocs/out-www/INSTALL.html,installation instructions}. -@end ifhtml -@ifnothtml -installation instructions. -@end ifnothtml - - -@item JEdit - -There exists a plugin for @uref{http://www.jedit.org/,jEdit}. Refer to -the @uref{http://lily4jedit.sourceforge.net,plugin website} for more -information. - -@end table - -For both VIM and Emacs editors, there is also a facility to jump in -the input file to the source of errors in the graphical output. See -@ref{Point and click}. - - - - -@node Invoking lilypond-latex -@section Invoking lilypond-latex - -Before LilyPond 3.0, the @code{lilypond} program only generated music -notation. Titles and page layout was done in a separate wrapper -program. For compatibility with older files, this wrapper program has -been retained as @code{lilypond-latex}. It uses the LilyPond program -and La@TeX{} to create a nicely titled piece of sheet music. Use of -this program is only necessary if the input file contains special -La@TeX{} options or formatting codes in markup texts. - -The @code{lilypond-latex} wrapper is invoked from the command-line as -follows -@example - @code{lilypond-latex} [@var{option}]@dots{} @var{file}@dots{} -@end example - -To have @code{lilypond-latex} read from stdin, use a dash @code{-} for -@var{file}. The program supports the following options. - -@cindex stdin, reading - -@table @code -@item -k,--keep - Keep the temporary directory with all output -files. The temporary directory is created in the current directory as @code{@code{lilypond}.dir}. -@item -h,--help - Print usage help. -@item -I,--include=@var{dir} - Add @var{dir} to LilyPond's include path. -@item -o,--output=@var{file} - Generate output to @var{file}. The extension of @var{file} is ignored. -@item --png - Also generate pictures of each page, in PNG format. -@item --preview - Also generate a picture of the first system of the score. - -@cindex preview -@cindex picture -@cindex bitmap -@cindex pixmap -@cindex thumbnail -@cindex screen shot - -@item -s,--set=@var{key}=@var{val} - Add @var{key}= @var{val} to the settings, overriding those specified -in the files. Possible keys: @code{language}, @code{latexheaders}, -@code{latexpackages}, @code{latexoptions}, @code{papersize}, -@code{linewidth}, @code{orientation}, -@code{textheight}. -@item -v,--version -Show version information. -@item -V,--verbose -Be verbose. This prints out commands as they are executed, and more -information about the formatting process is printed. -@item --debug -Print even more information. This is useful when generating bug reports. -@item -w,--warranty -Show the warranty with which GNU LilyPond comes. (It comes with -@strong{NO WARRANTY}!) -@end table - - - -@subsection Additional parameters - -The @code{lilypond} program responds to several parameters specified -in a @code{\layout} section of the input file. They can be overridden -by supplying a @code{--set} command line option. - -@table @code -@item language - Specify La@TeX{} language: the @code{babel} package will be -included. Default: unset. - - Read from the @code{\header} block. - -@item latexheaders - Specify additional La@TeX{} headers file. - Normally read from the @code{\header} block. Default value: empty. - -@item latexpackages - Specify additional La@TeX{} packages file. This works cumulative, -so you can add multiple packages using multiple @code{-s=latexpackages} options. - Normally read from the @code{\header} block. Default value: -@code{geometry}. - -@item latexoptions - Specify additional options for the La@TeX{} -@code{\documentclass}. You can put any valid value here. This was -designed to allow @code{lilypond} to produce output for double-sided -paper, with balanced margins and page numbers on alternating sides. To -achieve this specify @code{twoside}. - -@item orientation - Set orientation. Choices are @code{portrait} or @code{landscape}. Is -read from the @code{\layout} block, if set. - -@item textheight - The vertical extension of the music on the page. It is normally - calculated automatically, based on the paper size. - -@item linewidth - The music line width. It is normally read from the @code{\layout} -block. - -@item papersize - The paper size (as a name, e.g. @code{a4}). It is normally read from -the @code{\layout} block. - -@item fontenc - The font encoding, should be set identical to the @code{font-encoding} - property in the score. -@end table - - - diff --git a/Documentation/user/lilypond.tely b/Documentation/user/lilypond.tely index 04f8dfe5a0..26c5a43c55 100644 --- a/Documentation/user/lilypond.tely +++ b/Documentation/user/lilypond.tely @@ -189,7 +189,7 @@ this and other documentation. @include introduction.itely @include tutorial.itely @include examples.itely -@include invoking.itexi +@include invoking.itely @include notation.itely @include sound-output.itexi @include changing-defaults.itely diff --git a/ly/accordion-defs-init.ly b/ly/accordion-defs-init.ly index a87e1bdc3b..9884005595 100644 --- a/ly/accordion-defs-init.ly +++ b/ly/accordion-defs-init.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" % Symbols needed to print accordion music % % 2' = T diff --git a/ly/chord-modifiers-init.ly b/ly/chord-modifiers-init.ly index 131f49715f..b3a69abdb0 100644 --- a/ly/chord-modifiers-init.ly +++ b/ly/chord-modifiers-init.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" chordmodifiers = #default-chord-modifier-list diff --git a/ly/declarations-init.ly b/ly/declarations-init.ly index 37df2db9df..48e0301b68 100644 --- a/ly/declarations-init.ly +++ b/ly/declarations-init.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" %% < 1.8 compatibility switch #(ly:set-option 'old-relative) diff --git a/ly/deutsch.ly b/ly/deutsch.ly index c8cd4a41fe..82857d5462 100644 --- a/ly/deutsch.ly +++ b/ly/deutsch.ly @@ -49,6 +49,6 @@ pitchnamesDeutsch = #`( pitchnames = \pitchnamesDeutsch -\version "2.3.16" +\version "2.3.22" #(ly:parser-set-note-names parser pitchnames) diff --git a/ly/drumpitch-init.ly b/ly/drumpitch-init.ly index 47da8922f3..ff8c518756 100644 --- a/ly/drumpitch-init.ly +++ b/ly/drumpitch-init.ly @@ -1,5 +1,5 @@ -\version "2.3.16" +\version "2.3.22" drumPitchNames = #'((acousticbassdrum . acousticbassdrum) diff --git a/ly/dynamic-scripts-init.ly b/ly/dynamic-scripts-init.ly index 410d34e98d..01e69b4cc0 100644 --- a/ly/dynamic-scripts-init.ly +++ b/ly/dynamic-scripts-init.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" % % declare the standard dynamic identifiers. diff --git a/ly/english.ly b/ly/english.ly index d9a79175ac..373fa0bdf3 100644 --- a/ly/english.ly +++ b/ly/english.ly @@ -87,7 +87,7 @@ pitchnamesEnglish = #`( pitchnames = \pitchnamesEnglish -\version "2.3.16" +\version "2.3.22" #(ly:parser-set-note-names parser pitchnames) diff --git a/ly/engraver-init.ly b/ly/engraver-init.ly index 7ba26f4944..9e205f9bd2 100644 --- a/ly/engraver-init.ly +++ b/ly/engraver-init.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" \context { \name Global diff --git a/ly/espanol.ly b/ly/espanol.ly index f1c6293455..cec7e19af7 100644 --- a/ly/espanol.ly +++ b/ly/espanol.ly @@ -58,6 +58,6 @@ pitchnamesEspanol = #`( pitchnames = \pitchnamesEspanol -\version "2.3.16" +\version "2.3.22" #(ly:parser-set-note-names parser pitchnames) diff --git a/ly/generate-documentation.ly b/ly/generate-documentation.ly index ba124b7971..c71f4a9ae7 100644 --- a/ly/generate-documentation.ly +++ b/ly/generate-documentation.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" % % Running LilyPond on this file generates the documentation diff --git a/ly/generate-interface-doc-init.ly b/ly/generate-interface-doc-init.ly index 92584dcc5b..18a5ae8652 100644 --- a/ly/generate-interface-doc-init.ly +++ b/ly/generate-interface-doc-init.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" % % Running LilyPond on this file generates the short interface doc diff --git a/ly/grace-init.ly b/ly/grace-init.ly index 776ce21a74..50df361420 100644 --- a/ly/grace-init.ly +++ b/ly/grace-init.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" startGraceMusic = { diff --git a/ly/gregorian-init.ly b/ly/gregorian-init.ly index be626b2999..c393ddda4f 100644 --- a/ly/gregorian-init.ly +++ b/ly/gregorian-init.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" %%%%%%%% %%%%%%%% shortcuts common for all styles of gregorian chant notation diff --git a/ly/init.ly b/ly/init.ly index 2e3e849bd9..41a04e6427 100644 --- a/ly/init.ly +++ b/ly/init.ly @@ -4,7 +4,7 @@ #(define-public midi-debug #f) -\version "2.3.16" +\version "2.3.22" \include "declarations-init.ly" diff --git a/ly/italiano.ly b/ly/italiano.ly index 23a17a0cf5..845d45f69b 100644 --- a/ly/italiano.ly +++ b/ly/italiano.ly @@ -86,6 +86,6 @@ pitchnamesItaliano = #`( pitchnames = \pitchnamesItaliano -\version "2.3.16" +\version "2.3.22" #(ly:parser-set-note-names parser pitchnames) diff --git a/ly/midi-init.ly b/ly/midi-init.ly index be96c71fb1..10dbb5fc2e 100644 --- a/ly/midi-init.ly +++ b/ly/midi-init.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" \midi { \tempo 4=60 \include "performer-init.ly" diff --git a/ly/music-functions-init.ly b/ly/music-functions-init.ly index 07802d74b2..5c745a810a 100644 --- a/ly/music-functions-init.ly +++ b/ly/music-functions-init.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" applymusic = #(def-music-function (location func music) (procedure? ly:music?) diff --git a/ly/nederlands.ly b/ly/nederlands.ly index b3684d8719..0392e43d08 100644 --- a/ly/nederlands.ly +++ b/ly/nederlands.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" %{ common dutch names for notes. es means flat, is means sharp diff --git a/ly/norsk.ly b/ly/norsk.ly index b96c0bd8db..3e707dfdc2 100644 --- a/ly/norsk.ly +++ b/ly/norsk.ly @@ -105,6 +105,6 @@ pitchnamesNorsk = #`( pitchnames =\pitchnamesNorsk -\version "2.3.16" +\version "2.3.22" #(ly:parser-set-note-names parser pitchnames) diff --git a/ly/paper-defaults.ly b/ly/paper-defaults.ly index 2302613c19..d1c57f3d72 100644 --- a/ly/paper-defaults.ly +++ b/ly/paper-defaults.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" \paper { diff --git a/ly/params-init.ly b/ly/params-init.ly index a2c44b7028..99249eb83b 100644 --- a/ly/params-init.ly +++ b/ly/params-init.ly @@ -1,2 +1,2 @@ -\version "2.3.16" +\version "2.3.22" diff --git a/ly/performer-init.ly b/ly/performer-init.ly index db32ae9287..42fa0780c9 100644 --- a/ly/performer-init.ly +++ b/ly/performer-init.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" % % setup for Request->Element conversion. Guru-only diff --git a/ly/portugues.ly b/ly/portugues.ly index 4031a076ec..06fa38c2c3 100644 --- a/ly/portugues.ly +++ b/ly/portugues.ly @@ -86,6 +86,6 @@ pitchnamesPortuguese = #`( pitchnames = \pitchnamesPortuguese -\version "2.3.16" +\version "2.3.22" #(ly:parser-set-note-names parser pitchnames) diff --git a/ly/property-init.ly b/ly/property-init.ly index 0aac4d576c..486c5bc67b 100644 --- a/ly/property-init.ly +++ b/ly/property-init.ly @@ -1,6 +1,6 @@ % property-init.ly -\version "2.3.17" +\version "2.3.22" stemUp = \override Stem #'direction = #1 stemDown = \override Stem #'direction = #-1 diff --git a/ly/scale-definitions-init.ly b/ly/scale-definitions-init.ly index 8f29fad387..6c99f506a2 100644 --- a/ly/scale-definitions-init.ly +++ b/ly/scale-definitions-init.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" major = #`( diff --git a/ly/script-init.ly b/ly/script-init.ly index 496dcc0ee2..bbc8e83bc4 100644 --- a/ly/script-init.ly +++ b/ly/script-init.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" % code char abbreviations diff --git a/ly/spanners-init.ly b/ly/spanners-init.ly index f6149f2a79..1fab8d9763 100644 --- a/ly/spanners-init.ly +++ b/ly/spanners-init.ly @@ -1,4 +1,4 @@ -\version "2.3.16" +\version "2.3.22" startGroup = #(make-span-event 'NoteGroupingEvent START) stopGroup = #(make-span-event 'NoteGroupingEvent STOP) diff --git a/ly/suomi.ly b/ly/suomi.ly index 69ea3a726e..d162479a3d 100644 --- a/ly/suomi.ly +++ b/ly/suomi.ly @@ -48,6 +48,6 @@ pitchnamesSuomi = #`( pitchnames = \pitchnamesSuomi -\version "2.3.16" +\version "2.3.22" #(ly:parser-set-note-names parser pitchnames) diff --git a/ly/svenska.ly b/ly/svenska.ly index dc956ad07b..4a63dfba33 100644 --- a/ly/svenska.ly +++ b/ly/svenska.ly @@ -42,6 +42,6 @@ pitchnamesSvenska = #`( ) pitchnames = \pitchnamesSvenska -\version "2.3.16" +\version "2.3.22" #(ly:parser-set-note-names parser pitchnames) diff --git a/ly/vlaams.ly b/ly/vlaams.ly index 858385d658..5f8dcc25eb 100644 --- a/ly/vlaams.ly +++ b/ly/vlaams.ly @@ -1,4 +1,4 @@ -\version "2.3.16" %hier stond 2.1.36, mocht ik dat wel veranderen? +\version "2.3.22" %hier stond 2.1.36, mocht ik dat wel veranderen? %{