@node Invoking LilyPond @chapter Invoking LilyPond @cindex Invoking LilyPond @cindex command line options @cindex options, command line @cindex switches Usage: @example lilypond [@var{OPTION}@dots{} @var{FILE}@dots{} @end example To have LilyPond read from stdin, use a dash @code{-} for @var{FILE}. @unnumberedsec Options @table @code @item -e,--evaluate=@var{code} Evaluates the Scheme @var{code} before parsing @file{.ly} files. Multiple @code{-e} options may be given. They will be evaluated sequentially. @item -f,--format=@var{format} Output format for sheet music. Choices are @code{tex} (for @TeX{} output), @code{pdftex} for PDF@TeX{} input, @code{ps} (for PostScript), @code{scm} (for a Scheme dump), and @code{as} (for ASCII-art). Unless you have special requirements, you should use @TeX{} output. All other options are experimental. @c TODO: TFMFONTS For processing both the @TeX{} and the PostScript output, you must have appropriate environment variables set. For @TeX{}, you have to set @code{MFINPUTS} and @code{TEXINPUTS} to point to the directory containing LilyPond metafont and @file{.tex} files. For processing PostScript output with Ghostscript you have to set @code{GS_FONTPATH} to point to the directory containing LilyPond PFA files. When you print direct PS output, remember to send the PFA files to the printer as well. Scripts to do this are included in @file{buildscripts/out/lilypond-profile} (for sh shells) and @file{buildscripts/out/lilypond-login} (for C-shells), and should normally be run as part of your login process. @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 -m,--no-paper @cindex MIDI Disable @TeX{} output. If you have a @code{\midi} definition midi output will be generated. @item -M,--dependencies Output rules to be included in Makefile. @item -o,--output=@var{FILE} Set the default output file to @var{FILE}. @item -s,--safe Disallow untrusted @code{\include} directives, in-line Scheme evaluation, backslashes in @TeX{}, code. @strong{WARNING}: the @code{--safe} option has not been reviewed for a long time; do not rely on it for automatic invocation (e.g. over the web). Volunteers are welcome to do a new audit. @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 When invoked with a filename that has no extension, LilyPond will try to add @file{.ly} as an extension first. When LilyPond processes @file{filename.ly} 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 LilyPond will output the rest 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 across invocations, so be careful not to change any default settings from within Scheme .} @section 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 selects the language for the warning messages of LilyPond. @end table