version that you are working on. See TRANSLATION for details.
@end ignore
+@c \version "2.12.0"
+
@node Running LilyPond
@chapter Running LilyPond
This chapter details the technicalities of running LilyPond.
@menu
-* Normal usage::
-* Command-line usage::
-* Error messages::
-* Updating files with convert-ly::
-* Reporting bugs::
+* Normal usage::
+* Command-line usage::
+* Error messages::
+* Updating files with convert-ly::
+* Reporting bugs::
@end menu
@node Normal usage
@section Normal usage
-Most users run LilyPond through a GUI; see @ruser{First steps} if
+Most users run LilyPond through a GUI; see @rlearning{First steps} if
you have not read this already.
By @q{command-line}, we mean the command line in the operating system.
Windows users might be more familiar with the terms @q{DOS shell} or
-@q{command shell}; OSX users might be more familiar with the terms
-@q{terminal} or @q{console}. OSX users should also consult @ref{MacOS X
-on the command-line}.
+@q{command shell}; MacOS@tie{}X users might be more familiar with the terms
+@q{terminal} or @q{console}. They should also consult @ref{Setup
+for MacOS X}.
Describing how to use this part of an operating system is outside the
scope of this manual; please consult other documentation on this topic
if you are unfamiliar with the command-line.
+@menu
+* Invoking lilypond::
+* Command line options for lilypond::
+* Environment variables::
+@end menu
-@subsection Invoking lilypond
+@node Invoking lilypond
+@subsection Invoking @command{lilypond}
-@cindex Invoking LilyPond
-@cindex command line options
+@cindex Invoking @command{lilypond}
+@cindex command line options for @command{lilypond}
@cindex options, command line
@cindex switches
-The @code{lilypond} executable may be called as follows from the command line.
+The @command{lilypond} executable may be called as follows from the command line.
@example
lilypond [@var{option}]@dots{} @var{file}@dots{}
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;
+When @file{filename.ly} is processed it will produce @file{filename.ps}
+and @file{filename.pdf} as output. Several files can be specified;
they will each be processed independently. @footnote{The status of
GUILE is not reset after processing a @code{.ly} file, so be careful
not to change any system defaults from within Scheme.}
-In addition, the value of @code{output-suffix} will be inserted between
-the basename and the number. An input file containing
+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.pdf}. In addition, the value of
+@code{output-suffix} will be inserted between the basename and the
+number. An input file containing
@example
#(define output-suffix "violin")
-\book @{ @dots{} @}
+\score @{ @dots{} @}
#(define output-suffix "cello")
-\book @{ @dots{} @}
+\score @{ @dots{} @}
@end example
@noindent
-will output @var{base}@file{-violin.ps} and
-@var{base}@file{-cello-1.ps}.
-
+will output @var{base}@file{-violin.pdf} and
+@var{base}@file{-cello-1.pdf}.
-@subsection Command line options
+@node Command line options for lilypond
+@subsection Command line options for @command{lilypond}
The following options are supported:
@item -f,--format=@var{format}
which formats should be written. Choices for @code{format} are
-@code{svg}, @code{ps}, @code{pdf}, @code{png}, @code{tex}, @code{dvi}.
+@code{svg}, @code{ps}, @code{pdf}, and @code{png}.
-Example: @code{lilypond -fpng filename.ly}
+Example: @code{lilypond -fpng @var{filename}.ly}
available.
@item paper-size
-This option sets the default paper-size,
+This option sets the default paper-size,
@example
-dpaper-size=\"letter\"
@end example
@noindent
Note that the string must be enclosed in escaped quotes ( @code{\"} ).
-
+@c Match " in previous line to help context-sensitive editors
@item safe
Do not trust the @code{.ly} input.
In safe mode, it is not possible to import LilyPond variables
into Scheme.
-safe does @emph{not} detect resource overuse. It is still possible to
+@code{-dsafe} does @emph{not} detect resource overuse. It is still possible to
make the program hang indefinitely, for example by feeding cyclic data
structures into the backend. Therefore, if using LilyPond on a
publicly accessible webserver, the process should be limited in both
compiled. The @code{--jail} is a more secure alternative, but
requires more work to set up.
+@cindex output format, setting
@item backend
the output format to use for the back-end. Choices for @code{format} are
@table @code
-@item tex
-for @TeX{} output, to be processed with La@TeX{}. If present, the file
-@file{file.textmetrics} is read to determine text extents.
-@item texstr
-dump text strings to @file{.texstr} file, which can be run through
-(La)@TeX{}, resulting in a @code{.textmetrics} file, which contains the
-extents of strings of text. @strong{Warning:} this functionality is
-currently missing due to heavy restructuring of the source code.
@item ps
- for PostScript.
@cindex PostScript output
+ for PostScript.
Postscript files include TTF, Type1 and OTF fonts. No subsetting of
these fonts is done. When using oriental character sets, this can
@file{EPS} file, without fonts, and as one collated @file{EPS} file with
all pages (systems) including fonts.
-This mode is used by default by lilypond-book.
+This mode is used by default by @command{lilypond-book}.
@item svg
+@cindex SVG (Scalable Vector Graphics)
for SVG (Scalable Vector Graphics). This dumps every page as a separate
@file{SVG} file, with embedded fonts.
-@cindex SVG (Scalable Vector Graphics)
You need a SVG viewer which supports embedded fonts, or a SVG
viewer which is able to replace the embedded fonts with OTF fonts.
- Under Unix, you may use @uref{http://www.inkscape.org,Inkscape}
- (version 0.42 or later), after copying the OTF fonts in directory
- @file{PATH/TO/share/lilypond/VERSION/fonts/otf/} to @file{~/.fonts/}.
+ Under UNIX, you may use @uref{http://www.inkscape.org,Inkscape}
+ (version 0.42 or later), after copying the OTF fonts from the LilyPond directory
+ (typically @file{/usr/share/lilypond/VERSION/fonts/otf/}) to @file{~/.fonts/}.
@item scm
- for a dump of the raw, internal Scheme-based drawing commands.
@cindex Scheme dump
-@end table
+ for a dump of the raw, internal Scheme-based drawing commands.
-Example: @code{lilypond -dbackend=svg filename.ly}
+@item null
+ do not output a printed score; has the same effect as @code{-dno-print-pages}.
+@end table
-@cindex output format, setting
+Example: @code{lilypond -dbackend=svg @var{filename}.ly}
@item preview
Generate an output file containing the titles and the first system
@item -h,--help
Show a summary of usage.
-@item -H,--header=FIELD
-Dump a header field to file BASENAME.FIELD
+@item -H,--header=@var{FIELD}
+Dump a header field to file @file{BASENAME.@var{FIELD}}.
@item --include, -I=@var{directory}
Add @var{directory} to the search path for input files.
@item -o,--output=@var{FILE}
Set the default output file to @var{FILE}. The appropriate
-suffix will be added (ie @code{.pdf} for pdf, @code{.tex}
-for tex, etc).
+suffix will be added (e.g. @code{.pdf} for pdf)
@item --ps
Generate PostScript.
-@item --dvi
-Generate DVI files. In this case, the @TeX{} backend should be
-specified, i.e., @code{-dbackend=tex}.
-
@item --png
Generate pictures of each page, in PNG format. This implies
@code{--ps}. The resolution in DPI of the image may be set with
@item -j,--jail=@var{user},@var{group},@var{jail},@var{dir}
-Run LilyPond in a chroot jail.
+Run @command{lilypond} in a chroot jail.
The @code{--jail} option provides a more flexible alternative to
@code{--safe} when LilyPond formatting is available through a web
server or whenever LilyPond executes externally provided
sources.
-The @code{--jail} option works by changing the root of LilyPond to
+The @code{--jail} option works by changing the root of @command{lilypond} to
@var{jail} just before starting the actual compilation process. The user
and group are then changed to match those provided, and the current
directory is changed to @var{dir}. This setup guarantees that it is not
possible (at least in theory) to escape from the jail. Note that for
-@code{--jail} to work LilyPond must be run as root, which is usually
+@code{--jail} to work @command{lilypond} must be run as root, which is usually
accomplished in a safe way using @command{sudo}.
Setting up a jail is a slightly delicate matter, as we must be sure that
@strong{NO WARRANTY}!)
@end table
-
+@node Environment variables
@subsection Environment variables
@cindex LANG
@cindex LILYPOND_DATADIR
-@code{Lilypond} recognizes the following environment variables:
+@command{lilypond} recognizes the following environment variables:
@table @code
@item LILYPOND_DATADIR
This specifies a directory where locale messages and
where the error was found. For example,
@example
-test.ly:2:19: error: not a duration: 5:
- @{ c'4 e'5
- g' @}
+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
@node Updating files with convert-ly
-@section Updating with @command{convert-ly}
+@section Updating files with @command{convert-ly}
@cindex Updating a LilyPond file
@cindex convert-ly
@end example
@noindent
-MacOS X users may execute this command under the menu entry
+MacOS@tie{}X users may execute this command under the menu entry
@code{Compile > Update syntax}.
If there are no changes to myfile.ly and file called myfile.ly.NEW
is created, then myfile.ly is already updated.
-@subsection Command line options
+@menu
+* Command line options for convert-ly::
+* Problems with convert-ly::
+@end menu
+
+@node Command line options for convert-ly
+@subsection Command line options for @command{convert-ly}
@command{convert-ly} always converts up to the last syntax change handled by
it. This means that the @code{\version} number left in the file is
@end example
To upgrade many files at once, combine @code{convert-ly} with
-standard unix commands. This example will upgrade all @code{.ly}
+standard UNIX commands. This example will upgrade all @code{.ly}
files in the current directory
@example
@end table
-@menu
-* Problems with convert-ly::
-@end menu
-
-
@node Problems with convert-ly
@subsection Problems with @code{convert-ly}
Not all language changes are handled. Only one output option can be
-specified. Automatically updating scheme and lilypond scheme
+specified. Automatically updating scheme and LilyPond scheme
interfaces is quite unlikely; be prepared to tweak scheme code
manually.
@uref{http://lilypond.org/web/devel/participating/bugs}
-Please construct submit @ruser{Minimal examples}, of bug reports. We do not
+Please construct and submit minimal examples of bugs in reports. We do not
have the resources to investigate reports which are not as small as possible.