]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/invoking.itexi
* lily/music-output-def.cc (Music_output_def): remove separate
[lilypond.git] / Documentation / user / invoking.itexi
index cc7079a4f4f31ca69d255128fd5e4244a2c75a94..3fdebf1ae0d2a553e2825a08c3dbd9efaa37f509 100644 (file)
@@ -10,6 +10,7 @@ This chapter details the technicalities of running LilyPond.
 * Invoking the lilypond binary::  
 * Error messages::              
 * Reporting bugs::              
+* Editor support::              
 * Point and click::             
 @end menu
 
@@ -26,16 +27,13 @@ format.
         @code{lilypond} [@var{option}]@dots{} @var{file}@dots{}
 @end example
 
-To have @code{lilypond} read from stdin, use a dash @code{-} for @var{file}.
-
-The @code{lilypond} program supports the following options:
+To have @code{lilypond} read from stdin, use a dash @code{-} for
+@var{file}.  The program supports the following options.
 
 @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 -d,--dependencies
-    Write @code{Makefile} dependencies for every input file.
 @item -h,--help
     Print usage help.
 @item -I,--include=@var{dir}
@@ -52,13 +50,6 @@ files. The temporary directory is created in the current directory as @code{@cod
 @cindex PDF
 @cindex Scalable fonts
     
-@c why is this comment here? --hwn
-
-        If you use lilypond-book or your own wrapper files, do not use
-@code{\usepackage[[T1]@{fontenc@}} in the file header but do not forget
-@code{\usepackage[latin1]@{inputenc@}} if you use any other
-non-anglosaxian characters.
-
 @item --png
     Also generate pictures of each page, in PNG format. 
 @item --psgz
@@ -73,7 +64,7 @@ non-anglosaxian characters.
 @cindex bitmap
 @cindex pixmap
 @cindex thumbnail
-@cindex screenshot
+@cindex screen shot
     
 @item -s,--set=@var{key}=@var{val}
     Add @var{key}= @var{val} to the settings, overriding those specified
@@ -87,7 +78,7 @@ Show version information.
 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 bugreports.
+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}!)
@@ -125,12 +116,15 @@ to generate titling; an example demonstrating all these fields is in
 @code{header}, because @code{\header} is a reserved word in LilyPond.
 @item copyright
     A text to print in the footer of the first page. Default is to 
-    print the standard footer also on the first page.
+    print the standard footer also on the first page. Note that if the
+    score consists of only a single page, the first page is also the
+    last page, and in this case, the tagline is printed instead of the
+    copyright.
 @item footer
     A text to print in the footer of all but the last page.
 @item tagline
-    Line to print at the bottom of last page. The default text is ``Lily
-was here, @var{version-number}''.
+    Line to print at the bottom of last page. The default text is ``Engraved
+by LilyPond @var{version-number}''.
 @end table
 
 
@@ -169,7 +163,7 @@ so you can add multiple packages using multiple @code{-s=latexpackages} options.
     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 pagenumbers on alternating sides. To
+paper, with balanced margins and page numbers on alternating sides. To
 achieve this specify @code{twoside}.
 
 @item orientation
@@ -208,12 +202,12 @@ positive integer, start with this value as the first page number.
 @cindex switches
 
 
-The LilyPond system consists of two parts: a binary executable, which
-is responsible for the formatting functionality, and support scripts,
-which post-process the resulting output. Normally, the support scripts
-are called, which in turn invoke the @code{lilypond-bin}
-binary. However, @code{lilypond-bin} may be called directly as
-follows.
+The formatting system consists of two parts: a binary executable
+(@file{lilypond-bin}), which is responsible for the formatting
+functionality, and support scripts, which post-process the resulting
+output. Normally, the support scripts are called, which in turn invoke
+the @code{lilypond-bin} binary. However, @code{lilypond-bin} may be
+called directly as follows.
 
 @example
         lilypond-bin [@var{option}]@dots{} @var{file}@dots{}
@@ -233,6 +227,20 @@ they will each be processed independently.  @footnote{The status of
   GUILE is not reset across invocations, so be careful not to change any
   system defaults from within Scheme.}
 
+We strongly advise against making LilyPond formatting available
+through a web server. That is, processing input from untrusted users,
+and returning the resulting PDF file. LilyPond is a big and complex
+program. It was not written with security in mind. Making it available
+to the outside world is a huge risk; consider the security
+implications of
+
+@verbatim
+  #(system "rm -rf /")
+  \score {
+    c4^#(ly:export (ly:gulp-file "/etc/passwd"))
+  }
+@end verbatim
+
 
 @section Command line options
 
@@ -244,17 +252,16 @@ The following options are supported:
 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
+some internal variables.  Use @code{-e '(ly:option-usage)'} for more
 information.
 
 @item -f,--format=@var{format}
 @c
 @c
 Output format for sheet music. Choices are @code{tex} (for @TeX{}
-output, to be processed with plain @TeX{}, or through @code{lilypond}),
+output, to be processed with La@TeX{}, or through @code{lilypond}),
 @code{pdftex} for PDF@TeX{} input, @code{ps} (for PostScript),
-@code{scm} (for a Scheme dump), @code{sk} (for Sketch) and @code{as}
-(for ASCII-art).
+@code{scm} (for a Scheme dump), @code{sk} (for Sketch).
 
 @strong{This option is only for developers}. Only the @TeX{} output of
 these is usable for real work.
@@ -262,7 +269,6 @@ these is usable for real work.
 
 @cindex output format, setting
 @cindex Sketch output
-@cindex ASCII-art output
 @cindex PDFTeX output
 @cindex PostScript output
 @cindex Scheme dump
@@ -279,20 +285,12 @@ Set init file to @var{file} (default: @file{init.ly}).
 @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}.
 
-@ignore
 @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.
-@end ignore
+Disallow untrusted @code{\include} directives, limit available in-line
+Scheme function, disable backslashes in @TeX{}, code.
 
 @item -v,--version
 Show version information.
@@ -413,6 +411,7 @@ be skipped.
 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
@@ -426,7 +425,13 @@ function call.
 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, a bug-report should be filed.
+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
 
@@ -465,9 +470,57 @@ problem. Don't forget to tell which version you use, and on which
 platform you run it.  Send the report to
 @email{bug-lilypond@@gnu.org}.
 
+@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 lilypond-mode is not installed on your
+platform, then refer to the installation instructions for more
+information.
+
+@item VIM
+
+For @uref{http://www.vim.org,VIM}, a 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
+
+
+For both 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}.
+
+@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
+
 @node Point and click
 @section Point and click
-@cindex poind and click
+@cindex point and click
+
+@cindex source specials
+@cindex specials, source
 
 Point and click lets you find notes in the input by clicking on them in
 the Xdvi window. This makes it easier to find input that causes some
@@ -480,9 +533,9 @@ To use it, you need the following software:
 @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}.
 
-   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}.
+   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.  Enable option @emph{Inverse search} in the menu @emph{Settings}.
 
@@ -508,12 +561,6 @@ column location.
 
 @c move this elsewhere?
 
-There is also support for Emacs: lilypond-mode for Emacs provides
-keyword autocompletion, indentation, LilyPond specific parenthesis
-matching and syntax coloring, handy compile short-cuts and reading
-LilyPond manuals using Info.  If lilypond-mode is not installed on
-your platform, then refer to the installation instructions for more
-information.
 
 @cindex Emacs
 @cindex Emacs mode
@@ -588,17 +635,8 @@ with the following line:
 @example
 #(ly:set-point-and-click 'line-column)
 @end example
-@cindex line-colomn-location
+@cindex line-column-location
 and set @code{XEDITOR} to @code{emacsclient --no-wait +%l:%c %f}.  Vim
 users can set @var{XEDITOR} to @code{gvim --remote +:%l:norm%c| %f}.
 
 
-
-@refbugs
-
-When you convert the @TeX{} file to PostScript using @code{dvips}, it
-will complain about not finding @code{src:X:Y} files. These complaints
-are harmless, and can be ignored.
-
-
-